|
はじめまして。
お分かりの方がいらっしゃいましたらご教示をお願いいたします。
文書をテンプレート化する為、AutoOpenにおいてCommandbarの
表示制御を行っています。
1.現在表示中の全てのCommandbarをVisible=Falseとする。
2.ユーザー独自のCommandbarをVisible=Trueにする。
ただしこの状態で文書を終了してしまうと、
次の別のWord文書を開いた際に、Commandbarが全て非表示の状態になってしまいます。
その為、1の前に一旦Commandbarの情報を退避(ファイルまたはバッファに保持)し、
AutoCloseまたはAutoExitにて戻すVBAを組みました。(以下、参考)
+---------------------------------------------------+
Sub AutoOpen()
On Error Resume Next
' Commandbar情報をグローバル変数にバックアップ
Dim i As Integer
For i = 1 To ThisDocument.CommandBars.Count
ReDim Preserve pub_Cmdbar(i - 1)
pub_Cmdbar(i - 1) = ThisDocument.CommandBars(i).Visible
Next i
End Sub
-----------------------------------------------------
Sub AutoClose()
On Error Resume Next
' ツールバーを起動前の表示設定情報に戻す
Dim i As Integer
For i = 1 To CommandBars.Count
ThisDocument.CommandBars(i).Visible = pub_Cmdbar(i - 1)
Next i
End Sub
+---------------------------------------------------+
この方法だと上手くいくのですが、
文書に変更があった場合、AutoCloseだと保存確認メッセージが
表示され、その前に上記が実行されてしまうため、
メッセージをキャンセルすると、Commandbarがそのまま復元されてしまいます。
この状態は本来用途からすると望ましくありません。
そこでAutoCloseからAutoExitに変更をしてみましたが、
AutoExitでは上手く動作しません。(Commandbarが復元されない)
AutoCloseでは上記の問題があるため、可能であれば
AutoExit内で制御できる事が望ましいのですが、どうぞご教示をお願いいたします。
|
|