|
▼猫おじさん さん:
こんばんは。
> 過去ログ等も調べたのですが、オリジナルツールバーへのマクロの登録方法が分かりません。
> 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しています。
試してみて下さい。
|
|