-PR-
pegasusv

下記「シートの右クリックメニュー追加」+BBBマクロをアドインへ組み込み、皆さんへ配布して、自動的に右クリックメニューに組み込んでBBBマクロを動作させたいのですが、やり方を教えて下さい。
PERSONAL.XLSのThisWorkbookにAddinstallイベントプロシージャーで下記のように記述しましたがエラーが出ます。
どのように修正すれば良いか、教えて下さい。
また、やり方はこれでOKでしょうか。
なお、標準モジュールに登録して実行すると動きます。
宜しく、お願いします。

「エラー内容」
実行時エラー’91’
オブジェクト変数またはWithプロック変数が設定されていません。

Sub シートの右クリックメニュー追加()
 With CommandBars("Cell").Controls.Add
 .Caption = "AAA(メニューの表示文字)"
 .OnAction = "BBB(実行するマクロ名)"
 .BeginGroup = True
 End With
End Sub
  • 回答数3
  • 気になる数0

Aみんなの回答(全3件)

質問者が選んだベストアンサー

  • 2009-08-19 09:45:40
  • 回答No.2
>PERSONAL.XLSのThisWorkbookにAddinstallイベントプロシージャーで下記のように記述しましたが
PERSONAL.XLSに記述するのではなく新たに新規ブックで作成します。
'ThisWorkbookモジュールに
Private Sub Workbook_Open()
  With Application.CommandBars("Cell").Controls.Add(Temporary:=True)
    .Caption = "AAA"
    .OnAction = "BBB"
    .BeginGroup = True
  End With
End Sub
'標準モジュールに
Sub BBB()
  '○×△・・・
End Sub
このブックをアドインファイルとして保存する
メニューから[ファイル]-[名前を付けて保存]-[ファイルの種類]-Microsoft Excel アドイン(*.xla)を選択しファイル名を入力して保存
つぎに作成したアドインを使えるようにします。
メニューから[ツール]-[アドイン]-で使えるアドインの一覧が出ますので先ほど保存したアドインにチェックを入れて[OK]
これで使えるはずです。
お礼コメント
回答有難うございます。
処理は少し勘違いしていましたが、ご指摘の通りで実現出来ました。
アドインへ組み込みについて、丁寧に説明して頂き重ねてお礼申し上げます。
なお、(Temporary:=True)は、どんな意味があるのか教えて貰えないでしょうか。(無くても同じように動作します。)
投稿日時 - 2009-08-19 22:58:15
  • 同意数0(0-0)
  • ありがとう数0
-PR-
-PR-

その他の回答 (全2件)

  • 2009-08-20 07:20:58
  • 回答No.3
>、(Temporary:=True)は、どんな意味があるのか教えて貰えないでしょうか。(無くても同じように動作します。) コマンドバーなど作成した場合、Excelを閉じてもコマンドバーは登録されたまま残ります。 次にExcelを起動した時、Workbook_Openイベントで新たに作成され二重に登録されることになります。 引数TemporaryにTrueを指定するとブックを閉じる時に自動的に ...続きを読む
>、(Temporary:=True)は、どんな意味があるのか教えて貰えないでしょうか。(無くても同じように動作します。)
コマンドバーなど作成した場合、Excelを閉じてもコマンドバーは登録されたまま残ります。
次にExcelを起動した時、Workbook_Openイベントで新たに作成され二重に登録されることになります。
引数TemporaryにTrueを指定するとブックを閉じる時に自動的に削除されます
>(無くても同じように動作します。)
今回のメニュー項目の追加はExcelを閉じると残らないようですね
二重に登録されることがなければ引数Temporaryは必要ありません
お礼コメント
重ねての回答有難うございました。
Addinstallイベントに組み込んだので、同じ動作だったのだと思います。
色々と教えて頂き、お礼申し上げます。
投稿日時 - 2009-08-21 23:34:01
  • 同意数0(0-0)
  • ありがとう数0
なるほどぉ、役に立ったなど
感じた思いを「ありがとう」で
伝えてください
  • 2009-08-18 23:09:17
  • 回答No.1
とりあえず下記のようにすればエラーは出なくなります。 やりたいことがこれで実現できるかは不明です。 [ ThisWorkbook ] Private Sub Workbook_AddinInstall() With Application.CommandBars("Cell").Controls.Add .Caption = "AAA(メニューの表 ...続きを読む
とりあえず下記のようにすればエラーは出なくなります。
やりたいことがこれで実現できるかは不明です。

[ ThisWorkbook ]
Private Sub Workbook_AddinInstall()

With Application.CommandBars("Cell").Controls.Add
.Caption = "AAA(メニューの表示文字)"
.OnAction = "BBB(実行するマクロ名)"
.BeginGroup = True
End With

End Sub
お礼コメント
回答有難うございます。
ご指摘の通りで、エラーは無くなりました。
処理は少し勘違いしていましたが、何とか実現出来ました。
投稿日時 - 2009-08-19 22:51:25
  • 同意数0(0-0)
  • ありがとう数0
なるほどぉ、役に立ったなど
感じた思いを「ありがとう」で
伝えてください
  • 回答数3
  • 気になる数0
  • ありがとう数0
  • ありがとう
  • なるほど、役に立ったなど
    感じた思いを「ありがとう」で
    伝えてください

関連するQ&A

-PR-
-PR-

その他の関連するQ&Aをキーワードで探す

別のキーワードで再検索する

あなたの悩みをみんなに解決してもらいましょう

  • 質問する
  • 知りたいこと、悩んでいることを
    投稿してみましょう
-PR-
-PR-
-PR-

特集


士業をはじめとする専門家が回答するQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ