• ベストアンサー

コマンドボタンにマクロを登録させる方法

エクセルでマクロを作成しました。マクロを実行させる為に「コントロールツールボックス」にある「コマンドボタン」で作ったボタンに登録をしたいのですがうまくいきません。 以前はコマンドボタンを作ったら、自動的に「マクロの登録」ダイアログボックスが出てきたのですが、何故か出なくなってしまいました。オートシェイプで作成したボタンなら、右クリックすると「マクロの登録」があるのですが、コマンドボタンを右クリックしても「マクロの登録」がありません。以前のように、自動的に「マクロの登録」ダイアログボックスを表示させる方法があったら教えてください。 また、ボタンをダブルクリックするとVBAが開いて以下のようなコードの記載がありますが、ここにコードを記載すればボタンをクリックしたときにマクロが実行されるのでしょうか?VBAはまったく解りませんので、どのように記載したらいいのかわかりません。実際に記入して教えてください。お願いします。マクロ名は、日本語で「結果一覧」としました。(「Private Sub CommandButton1_Click()」と「End Sub」の間に、マクロの記述部分をコピーして、貼り付けたら、ボタンをクリックしたときにマクロは実行できたのですが、もっと簡単にマクロ名を記述したら実行できるような気がするのですが、簡単に記述して実行できる方法があったら教えてください。) OSはWindows ME、Excelは2002 です。よろしくお願いします。 コマンドボタンをダブルクリックしたときのコードです。 Private Sub CommandButton1_Click() End Sub

質問者が選んだベストアンサー

  • ベストアンサー
noname#9284
noname#9284
回答No.4

最初からボタンを作り直した方がいいかもしれませんね。 表示メニュー→ツールバー→コントロールツールボックスを表示させた後、 青い三角定規を押してそのボタンを削除してください。 次に同じようにたどり、フォームツールバーを出してボタンを押し、 シートをワンクリックしてください。 マクロの登録ダイアログが開きます。 見かけは同じでもコントロールツールボックスのコマンドボタンと、フォームのボタンでは違いますので。

pupuko
質問者

お礼

ありがとうございます。疑問が解決できて感激です。何故、前はできたのに出来なくなったのか?とっても不思議だったのですが、同じようなボタンでもコントロールツールボックスのコマンドボタンと、フォームのボタンとでは違うんですね。試してみたらちゃんとできました。ありがとうございました。

その他の回答 (3)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.3

2種類あるのです。 ActiveXコントロールのCommandButtonへの割り当ては他の方の回答で出来ます。 表示-ツールバー-フォームにあるコマンドボタンだとマクロ登録が出ると思います。

pupuko
質問者

お礼

ありがとうございます。使うボタンを間違っているということなんですね。もう一度やり直します。

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.2

「新しいマクロの記録」などでマクロが作成済みであれば、以下のようにして下さい。 Private Sub CommandButton1_Click() Call 作成したマクロの名前 End Sub 作成済みマクロの名前が「結果一覧」であれば Private Sub CommandButton1_Click() Call 結果一覧 End Sub となります。 当然ですが、マクロ「結果一覧」の内容を書き替えると、コマンドボタンを押した時に実行される内容も変わります。 なお、Call文を省略して Private Sub CommandButton1_Click() 結果一覧 End Sub と書いてもOKですが、こう書くと忘れた頃に「これって何やってるんだっけ?どう言う意味?」って事になるので、明示的に呼び出しているのが判るように「Call 結果一覧」と書いた方が良いです。 それに、後からマクロの名前を変更したくなった時に、Call文が付いていた方が変更し易くなりますから。 例えば、「結果一覧」をVBエディタの文字列検索で探して書き替える時に「結果一覧」で探すより「Call 結果一覧」で探した方が、余計な物が検索にヒットしないので楽です。

pupuko
質問者

お礼

詳しく教えていただきありがとうございます。Call文をつけておくといいんですね。後でわからなくなって困らないように、Call文をつけるようにします。ありがとうございました。

回答No.1

Private Sub CommandButton1_Click() 結果一覧 End Sub

pupuko
質問者

お礼

早々に教えていただきありがとうございました。マクロ名をそのまま記載するだけでいいんですね。試してみたらできました。ありがとうございました。

関連するQ&A