Excelマクロ初心者です。
Excelマクロにて下記のコードを実行してみました。
ツールバーは出たのですがツールバーのボタンをクリックすると、
エラーメッセージが出てしまいます。
例
更新ボタンをクリック
マクロ 'xxx.xls!BTN_TOUROKU'が見つかりません
と出てしまいます。
OnActionが旨く動きません。どうして動かないのでしょうか?
---------------------------------------------------------------
Option Explicit
Private Const g_cnsTITLE = "更新ツールバー"
' 立ち上げ時自動実行処理
Sub Workbook_Open()
Dim xlAPP As Application
Dim objBar As CommandBar
Dim objCont As CommandBarControl
Dim objBtn As CommandBarButton
Dim vntCaption As Variant
Dim vntTipText As Variant
Dim vntOnAction As Variant
Dim IX As Integer
Dim blnTRUE As Boolean
Set xlAPP = Application
' ボタンのタイトルを設定
vntCaption = Array("登録(&A)", "更新(&U)", "削除(&X)") ' (1)
' ボタンにマウスを当てた時に表示されるテキストを設定
vntTipText = Array("登録を行ないます", "更新を行ないます", "削除を行ないます")
' ボタンの動作マクロを指定
vntOnAction = Array("BTN_TOUROKU", "BTN_KOUSHIN", "BTN_SAKUJO")
' ツールバーを追加する ' (2)
Set objBar = xlAPP.CommandBars.Add(Name:=g_cnsTITLE, Position:=msoBarTop)
' 1番目はボタンの境界をなしにする
blnTRUE = False
' ボタンを3つ追加する
For IX = 0 To 2
' まずボタンを指定してコントロールを追加
Set objCont = objBar.Controls.Add(Type:=msoControlButton) ' (3)
' ボタンの境界を設定
objCont.BeginGroup = blnTRUE ' (4)
' CommandBarButtonオブジェクトを取得
Set objBtn = objCont ' (5)
objBtn.Style = msoButtonCaption ' ボタン名を表示 ' (6)
objBtn.Caption = vntCaption(IX) ' 表示名を設定
objBtn.TooltipText = vntTipText(IX) ' マウスを当てた時のツールチップテキスト
'objBtn.OnAction = vntOnAction(IX) ' 動作マクロを設定
objBtn.OnAction = vntOnAction(IX)
' 2番目以降はボタンの境界を設定
blnTRUE = True
Next IX
' ツールバーを表示する
objBar.Visible = True ' ツールバーを表示
' ツールバーを非表示にできなくする
objBar.Protection = msoBarNoChangeVisible ' ツールバーをマウスで引き出したり右クリックした時に「閉じる」の操作ができないようにする
ActiveWindow.ScrollRow = 1
' オブジェクトを廃棄
Set objBtn = Nothing
Set objCont = Nothing
Set objBar = Nothing
End Sub
' 閉じる時の自動実行処理
Sub Workbook_BeforeClose(Cancel As Boolean)
Dim xlAPP As Application
Dim objBar As CommandBar
Set xlAPP = Application
' ツールバーオブジェクトを取得する
Set objBar = xlAPP.CommandBars(g_cnsTITLE)
' ツールバーを削除する
objBar.Delete
' オブジェクトを廃棄
Set objBar = Nothing
End Sub
' 「登録」ボタンがクリックされた時の処理
Sub BTN_TOUROKU()
MsgBox "「登録」が押されました"
End Sub
' 「更新」ボタンがクリックされた時の処理
Sub BTN_KOUSHIN()
MsgBox "「更新」が押されました"
End Sub
' 「削除」ボタンがクリックされた時の処理
Sub BTN_SAKUJO()
MsgBox "「削除」が押されました"
End Sub
---------------------------------------------------------------
No.1ベストアンサー
- 回答日時:
'--------------------------------------------
' 「登録」ボタンがクリックされた時の処理
Sub BTN_TOUROKU()
MsgBox "「登録」が押されました"
End Sub
' 「更新」ボタンがクリックされた時の処理
Sub BTN_KOUSHIN()
MsgBox "「更新」が押されました"
End Sub
' 「削除」ボタンがクリックされた時の処理
Sub BTN_SAKUJO()
MsgBox "「削除」が押されました"
End Sub
'-----------------------------------------------
●上記3つのプロシージャを標準モジュールに移動して実行してみてください。
ワークシート全体にかかるものなのでThisWorkbookに記述していました。
標準モジュールに記述したところ動かす事が出来ました。
勉強不足でした。ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
Access VBA でデータペーストを...
-
回数のカウント
-
コントロールの背景色を
-
VBAでオプションボタンによって...
-
VBAのボタンの位置が変わって困...
-
ボタンをクリックした回数を記...
-
VBA CommandButtonの文字ずれ
-
ユーザーフォームに別シートか...
-
セルをマクロのボタンにしたい。
-
C#で動的に作ったtextboxを消す。
-
ボタンをクリックするとエラー...
-
[Excel VBA]コマンドボタンの入...
-
ダウンロードダイアログをVB...
-
アイコンとボタンの違い
-
コマンドボタンの長押し
-
ユーザーフォームのインスタンス
-
プロシージャからイベントをコ...
-
VBAで多数のプログラムを一つの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
フォームの再読み込み
-
VBA CommandButtonの文字ずれ
-
ユーザーフォームに別シートか...
-
VBAのボタンの位置が変わって困...
-
Access VBA でデータペーストを...
-
Excel VBA Application.caller...
-
セルをマクロのボタンにしたい。
-
コマンドボタンやイメージにマ...
-
ボタン
-
プロシージャからイベントをコ...
-
ボタンをマウスで押し続けたと...
-
VBA でのボタンの移動について
-
C#で動的に作ったtextboxを消す。
-
バックスペース機能の作り方
-
VBAで多数のプログラムを一つの...
-
アイコンとボタンの違い
-
TextBoxでEnterキーを押すと、...
-
VBA IE ダウンロード ダイアロ...
おすすめ情報