|
過去ログ等も調べたのですが、オリジナルツールバーへのマクロの登録方法が分かりません。
Excel 2000です。
「確認.xls」bookの標準モジュールに「バッチ処理」というモジュールがあり、
「Sub aバッチ処理マクロ()」
「Sub 検算()」
「Sub 色塗()」など5つのマクロが書き込まれています。
一方、同じ「確認.xls」bookの「sheet2(結果一覧)」には、
「Private Sub Worksheet_BeforeDoubleClick」があり
セルに書き込まれているパスとファイルネームを参照して
ダブルクリックしたときに、セルに書かれているファイルを開きます。
コードは次のようなものです
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
記入内容 = ActiveCell.Value
Workbooks.Open Filename:=記入内容
'コマンドボタンの作成
'既に「検算ボタン」があるとエラーするので削除しておく
'逆に「検算ボタン」が無いのに削除使用とするとエラーするので、オンエラー処理しておく
On Error Resume Next
CommandBars("検算ボタン").Delete
On Error GoTo 0
'検算ボタンの設定
Set newBar = CommandBars.Add(Name:="検算ボタン", Position:=msoBarFloating, Temporary:=True)
'検算ボタンの表示
newBar.Visible = True
'目玉アイコンに変える
Set con = newBar.Controls.Add(Type:=msoControlButton, ID:=23)
con.FaceId = 2174 '2174は目玉です
ここまでは順調で、目玉のコマンドボタンができあがります。
その後、コマンドボタンをクリックしたときに、
標準モジュールにある「Sub 検算()」マクロを実行したいので
newBar.OnAction = ThisWorkbook.Name & "!.検算"
や
newBar.OnAction = 確認.xls & ".検算"
等いろいろ試していますが、うまくいきません。
正しい、書き方をご教示ねがえれば幸いです。
なお、「Sub 検算()」は、「Sub aバッチ処理マクロ()」からも
Private Sub Worksheet_BeforeDoubleClickもcallしています。
|
|