| 
    
     |  | ▼猫おじさん さん: こんばんは。
 
 > 過去ログ等も調べたのですが、オリジナルツールバーへのマクロの登録方法が分かりません。
 > 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は目玉です
 '   ↑ ここで、コマンドボタンをconにセットしていますよね?
 >
 > ここまでは順調で、目玉のコマンドボタンができあがります。
 >
 > その後、コマンドボタンをクリックしたときに、
 >標準モジュールにある「Sub 検算()」マクロを実行したいので
 >
 > newBar.OnAction = ThisWorkbook.Name & "!.検算"
 ' よって、マクロの登録は、変数newBarではなく、conに対して行って下さい
 ' con.OnAction = ThisWorkbook.Name & "!.検算"
 
 >や
 > newBar.OnAction = 確認.xls & ".検算"
 >等いろいろ試していますが、うまくいきません。
 >
 > 正しい、書き方をご教示ねがえれば幸いです。
 >
 > なお、「Sub 検算()」は、「Sub aバッチ処理マクロ()」からも
 >Private Sub Worksheet_BeforeDoubleClickもcallしています。
 
 試してみて下さい。
 
 
 |  |