プロが教える店舗&オフィスのセキュリティ対策術

bonaronさんありがとうございます。

以下のコードで、ツールバーの非表示→表示がOKになったのですが、ファイル起動時にツールバーを非表示にして、ファイル終了時にツールバーを元に戻したいと思っています。よって、以下のコードを非表示にするコード、元にもどすコードの二つに分けたいのですができません。

非表示にするためには、
.CommandBars(i).Visible = False
End If
Next i
End With
End Sub
で閉じればできるのですが、元に戻すコードの方はどのように書いたら良いのでしょうか?ご教授願います。


//////////////////////////////////////////////

Sub Test()
Dim i, p(50), ToolCount

With Application
MsgBox "ツールバーを非表示にします。"

'カウンター変数の初期化
ToolCount = 0 '<------

For i = .CommandBars.Count To 2 Step -1

If .CommandBars(i).Visible = True Then

' カウンター変数1UP
ToolCount = ToolCount + 1 '<--- この位置

'表示されていたら配列pにインデックスを書き込んで
'そのコマンドバーを非表示にする。
p(ToolCount) = i
.CommandBars(i).Visible = False

End If
Next i


MsgBox "ツールバーを元に戻します。"

For i = 1 To ToolCount

'配列pに書き込まれたインデックスを読み込んで
'そのコマンドバーを表示する。
.CommandBars(p(i)).Visible = True '<---

Next i

End With
End Sub

A 回答 (1件)

こんばんは。



Visible プロパティは表示/非表示をコントロールしますが、
元々どのツールバーが表示されていたのかを覚えておく必要があり
面倒です。
そこで、Enabled プロパティを使用します。False(使用不可)に
設定すると表示もされなくなります。
例えばこんな↓コードでいかがでしょうか?
起動時にすべてのツールバーを使用不可にし、終了時にすべての
ツールバーを使用可能にします。
Visible は変更しないので実行前の状態に戻すことが出来ます。
(標準モジュールに記述します。)

Public Sub Auto_Open()
'ツールバーを非表示
Dim MyCommandBar As CommandBar
For Each MyCommandBar In CommandBars
MyCommandBar.Enabled = False
Next
End Sub

Public Sub Auto_Close()
'ツールバーを再表示
Dim MyCommandBar As CommandBar
For Each MyCommandBar In CommandBars
MyCommandBar.Enabled = True
Next
End Sub
    • good
    • 0
この回答へのお礼

なるほど・・・・
こういう考え方があるとは全く思いもつきませんでした。
ありがとうございました。

お礼日時:2006/04/15 16:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!