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

下記「シートの右クリックメニュー追加」+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

A 回答 (3件)

>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]
これで使えるはずです。
    • good
    • 0
この回答へのお礼

回答有難うございます。
処理は少し勘違いしていましたが、ご指摘の通りで実現出来ました。
アドインへ組み込みについて、丁寧に説明して頂き重ねてお礼申し上げます。
なお、(Temporary:=True)は、どんな意味があるのか教えて貰えないでしょうか。(無くても同じように動作します。)

お礼日時:2009/08/19 22:58

>、(Temporary:=True)は、どんな意味があるのか教えて貰えないでしょうか。

(無くても同じように動作します。)
コマンドバーなど作成した場合、Excelを閉じてもコマンドバーは登録されたまま残ります。
次にExcelを起動した時、Workbook_Openイベントで新たに作成され二重に登録されることになります。
引数TemporaryにTrueを指定するとブックを閉じる時に自動的に削除されます
>(無くても同じように動作します。)
今回のメニュー項目の追加はExcelを閉じると残らないようですね
二重に登録されることがなければ引数Temporaryは必要ありません
    • good
    • 0
この回答へのお礼

重ねての回答有難うございました。
Addinstallイベントに組み込んだので、同じ動作だったのだと思います。
色々と教えて頂き、お礼申し上げます。

お礼日時:2009/08/21 23:34

とりあえず下記のようにすればエラーは出なくなります。


やりたいことがこれで実現できるかは不明です。

[ ThisWorkbook ]
Private Sub Workbook_AddinInstall()

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

End Sub
    • good
    • 0
この回答へのお礼

回答有難うございます。
ご指摘の通りで、エラーは無くなりました。
処理は少し勘違いしていましたが、何とか実現出来ました。

お礼日時:2009/08/19 22:51

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