
下記「シートの右クリックメニュー追加」+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
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)は、どんな意味があるのか教えて貰えないでしょうか。(無くても同じように動作します。)
No.3
- 回答日時:
>、(Temporary:=True)は、どんな意味があるのか教えて貰えないでしょうか。
(無くても同じように動作します。)コマンドバーなど作成した場合、Excelを閉じてもコマンドバーは登録されたまま残ります。
次にExcelを起動した時、Workbook_Openイベントで新たに作成され二重に登録されることになります。
引数TemporaryにTrueを指定するとブックを閉じる時に自動的に削除されます
>(無くても同じように動作します。)
今回のメニュー項目の追加はExcelを閉じると残らないようですね
二重に登録されることがなければ引数Temporaryは必要ありません
重ねての回答有難うございました。
Addinstallイベントに組み込んだので、同じ動作だったのだと思います。
色々と教えて頂き、お礼申し上げます。
No.1
- 回答日時:
とりあえず下記のようにすればエラーは出なくなります。
やりたいことがこれで実現できるかは不明です。
[ ThisWorkbook ]
Private Sub Workbook_AddinInstall()
With Application.CommandBars("Cell").Controls.Add
.Caption = "AAA(メニューの表示文字)"
.OnAction = "BBB(実行するマクロ名)"
.BeginGroup = True
End With
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォルダ内の全ブックのシート...
-
ExcelVBAで今開いているユーザ...
-
excelでハイパーリンク 別ブッ...
-
すでに開いているブックのマク...
-
excelマクロ、任意セルの値で名...
-
エクセルVBAでブックを開くと処...
-
VBAでEXCELのワークシートを削...
-
EXCELマクロでxlsとxlsxを開く方法
-
VBAを一度起動するとずっと出て...
-
Wordで貼り付け(ペースト)機能...
-
Windows10のクイックアクセスと...
-
昨日まで動いていたエクセルの...
-
エクセルでツールバーに「縮小...
-
複数のデータ系列の線の太さを...
-
excelファイルに使われているVB...
-
Excel VBAで、実行時にsheet上...
-
個人用マクロブックにマクロを...
-
コピーしたファイルのマクロを...
-
アクセスでファイルを開いたと...
-
VBA[Private Sub]のコードをシ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAで今開いているユーザ...
-
フォルダ内の全ブックのシート...
-
VB2010でExcelの行をコピーして...
-
フォルダ内の全ブックのシート...
-
エクセルVBA Workbook変数に変...
-
【Excel VBA】ブックを複数開い...
-
【ExcelVBA】指定の書式で、マ...
-
フォルダ内の全てのBookに同じ...
-
VBAでEXCELのワークシートを削...
-
excelマクロ、任意セルの値で名...
-
他のBookのユーザー定義関数を使う
-
VBA セル入力された日付データ...
-
エクセルのマクロについて教え...
-
すでに開いているブックのマク...
-
[Excel VBA] フォルダ内の複数...
-
EXCELマクロでxlsとxlsxを開く方法
-
マクロでログ抽出し、日付ごと...
-
excelでハイパーリンク 別ブッ...
-
VBA、Excelのworkbook.open に...
-
Excelの一括印刷で通し番号をつ...
おすすめ情報