こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

エクセルでマクロを作成しました。マクロを実行させる為に「コントロールツールボックス」にある「コマンドボタン」で作ったボタンに登録をしたいのですがうまくいきません。

以前はコマンドボタンを作ったら、自動的に「マクロの登録」ダイアログボックスが出てきたのですが、何故か出なくなってしまいました。オートシェイプで作成したボタンなら、右クリックすると「マクロの登録」があるのですが、コマンドボタンを右クリックしても「マクロの登録」がありません。以前のように、自動的に「マクロの登録」ダイアログボックスを表示させる方法があったら教えてください。

また、ボタンをダブルクリックするとVBAが開いて以下のようなコードの記載がありますが、ここにコードを記載すればボタンをクリックしたときにマクロが実行されるのでしょうか?VBAはまったく解りませんので、どのように記載したらいいのかわかりません。実際に記入して教えてください。お願いします。マクロ名は、日本語で「結果一覧」としました。(「Private Sub CommandButton1_Click()」と「End Sub」の間に、マクロの記述部分をコピーして、貼り付けたら、ボタンをクリックしたときにマクロは実行できたのですが、もっと簡単にマクロ名を記述したら実行できるような気がするのですが、簡単に記述して実行できる方法があったら教えてください。)
OSはWindows ME、Excelは2002 です。よろしくお願いします。

コマンドボタンをダブルクリックしたときのコードです。

Private Sub CommandButton1_Click()

End Sub

投稿日時 - 2004-01-31 15:23:13

QNo.766117

すぐに回答ほしいです

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

最初からボタンを作り直した方がいいかもしれませんね。

表示メニュー→ツールバー→コントロールツールボックスを表示させた後、
青い三角定規を押してそのボタンを削除してください。

次に同じようにたどり、フォームツールバーを出してボタンを押し、
シートをワンクリックしてください。
マクロの登録ダイアログが開きます。

見かけは同じでもコントロールツールボックスのコマンドボタンと、フォームのボタンでは違いますので。

投稿日時 - 2004-01-31 16:31:45

お礼

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

投稿日時 - 2004-01-31 19:18:30

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.3

2種類あるのです。

ActiveXコントロールのCommandButtonへの割り当ては他の方の回答で出来ます。

表示-ツールバー-フォームにあるコマンドボタンだとマクロ登録が出ると思います。

投稿日時 - 2004-01-31 16:08:22

お礼

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

投稿日時 - 2004-01-31 19:19:05

ANo.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 結果一覧」で探した方が、余計な物が検索にヒットしないので楽です。

投稿日時 - 2004-01-31 15:50:40

お礼

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

投稿日時 - 2004-01-31 19:17:54

ANo.1

Private Sub CommandButton1_Click()
結果一覧
End Sub

投稿日時 - 2004-01-31 15:28:04

お礼

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

投稿日時 - 2004-01-31 19:17:07

あなたにオススメの質問