アプリ版:「スタンプのみでお礼する」機能のリリースについて

word2003で、常にデザインモードオフにしようとしています。

マクロを有効にしないで開くと、デザインモードで開かれてしまい、
チェックボックスが押せません。
VBEにて、Normalの標準モジュールに以下のコードを記述しましたが、
セキュリティレベルを最高状態でファイルを開いても実行され、
デザインモードのボタンが押せることに気づきました。

Sub AutoOpen()
Application.CommandBars.FindControl(ID:=1605).Execute
End Sub

どなたか、現状がデザインモードTrueなのかFalseなのかを検知するコードを知りませんでしょうか?
よろしくお願いします。

A 回答 (1件)

>現状がデザインモードTrueなのかFalseなのかを検知する...



Office.CommandBarButtonオブジェクトのStateプロパティで判断できます。
msoButtonUp、msoButtonDown、msoButtonMixed の定数があります。
ヘルプ参照してください。(値の取得のみ可能)

目的のオブジェクトがどんなプロパティを持っているか調べるには、
Dim x As Object
Set x = Application.CommandBars.FindControl(ID:=1605)
Stop
'ここで[ローカルウィンドウ]の x を展開して探ってみる。
Set x = Nothing
こんな感じで調べると手っ取り早いです。

それに一旦Object型に格納して[ローカルウィンドウ]をチェックすると
型がCommandBarButtonである事もわかります。
Dim c As CommandBarButton
Set c = Application.CommandBars.FindControl(ID:=1605)
としてCommandBarButton型にちゃんと格納してあげると
c.
の後で[入力候補]にStateが表示されるようになります。

Dim c As CommandBarButton
Set c = Application.CommandBars.FindControl(ID:=1605)
If c.State = msoButtonDown Then
  c.Execute
End If
Set c = Nothing
    • good
    • 0
この回答へのお礼

バッチリです!ありがとうございます。
また、プロパティの調べ方等も教えていただきありがとうございます。
これから重宝します。

お礼日時:2010/03/01 11:38

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