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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
つい集めてしまうものはなんですか?
人間誰もは1つ「やたらこればかり集めてしまう」というものがあるもの。 あなたにとって、つい集めてしまうものはなんですか?
-
大人になっても苦手な食べ物、ありますか?
大人になっても、我慢してもどうしても食べれないほど苦手なものってありますよね。 あなたにとっての今でもどうしても苦手なものはなんですか?
-
とっておきの手土産を教えて
お呼ばれの時や、ちょっとした頂き物のお礼にと何かと必要なのに 自分のセレクトだとついマンネリ化してしまう手土産。 ¥5,000以内で手土産を用意するとしたらあなたは何を用意しますか??
-
あなたは何にトキメキますか?
「きゅんとした〜♪」 と思う瞬間ってありますよね。 それは恋愛だったり、推し活だったり、映画のワンシーンだったり……。
-
【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
【お題】 ・急に朝起こしてきた母親に言われた一言とは?
-
【Excel VBA】マクロをボタンに登録したがエラーで実行できない
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
コマンドボタンやイメージにマ...
-
40秒毎にセルの値を1ずつ上げたい
-
ユーザーフォームに別シートか...
-
セルをマクロのボタンにしたい。
-
VB.net でトグルボタンを実現し...
-
フォームの再読み込み
-
アイコンとボタンの違い
-
ボタンをマウスで押し続けたと...
-
Vba 電卓 一文字消すボタン
-
+ボタンの名称は?
-
チェックボックスで指定出来る...
-
閉じると「+」になり開くと「-...
-
VBでのエラー音の消し方
-
[Excel VBA]コマンドボタンの入...
-
Excel VBA Application.caller...
-
VBAで多数のプログラムを一つの...
-
button をクリックしてもへこま...
-
[VB.net] ボタン(Flat)のEnable...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
ユーザーフォームに別シートか...
-
VBA CommandButtonの文字ずれ
-
フォームの再読み込み
-
コマンドボタンやイメージにマ...
-
Excel VBA Application.caller...
-
アイコンとボタンの違い
-
ボタンをマウスで押し続けたと...
-
閉じると「+」になり開くと「-...
-
セルをマクロのボタンにしたい。
-
VBA マクロでの網掛けについて
-
VB.net でトグルボタンを実現し...
-
VBAのボタンの位置が変わって困...
-
Access VBA でデータペーストを...
-
VBAで多数のプログラムを一つの...
-
プロシージャからイベントをコ...
-
VBA でのボタンの移動について
-
VBAでオプションボタンによって...
-
[Excel VBA]コマンドボタンの入...
おすすめ情報