ここから本文です

Excel VBA ボタンに情報を埋め込む方法

fag********さん

2012/7/2911:31:03

Excel VBA ボタンに情報を埋め込む方法

Excel シート上に複数のボタン(ボタン1、ボタン2、ボタン3)を造り、

同一のマクロ(プロシージャ)を登録します。

どのボタンを押すかによってプロシージャ内の処理を変えたいのですが、どのようにすればよいでしょうか?

ボタンにi=1、i=2、i=3という情報を埋め込むことができれば

If i=1 Then
MsgBox "hoge1"
Else If i=2 Then
MsgBox "hoge2"
Else If i=3 Then
MsgBox "hoge3"
End If

という具合に処理をしたいのです。

Excelシート上の図形には名前がついていると聞いたことがあるのですが、
ボタンを押したときにそれをマクロに送ることはできるのでしょうか?

実はボタンが30個ほどあり、この方法でなければそれぞれのボタンに別のマクロを登録するという
恐ろしいことになります。

お詳しい方どうかアドバイスお願い致します。

補足dono_denoさん早々のご回答ありがとうございます。Private Sub CommandButton1_Click() (2,3) と Sub 処理(i)はそれぞれMicrosoft Excel Objects と 標準モジュールに記述すればよろしいのでしょうか?初心者のためそのあたりもご指導頂けると本当に助かります。お手数をおかけしてすいません。よろしくお願いします。

Else If i,MsgBox,プロシージャ,hoge2&quot,hoge3&quot,End Sub,ElseIf i

閲覧数:
1,605
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

don********さん

編集あり2012/7/2912:53:09

挿入する、ボタンは、開発リボンの挿入から、ActiveX コントロールにあるボタンを登録するのか
一番簡単です。
デザインモードで、クリックすると各シートに、
Private Sub CommandButton1_Click()

End Sub
が出来ますので、そこに
処理 (1)
を記述します。

フォームコントロールのボタンを挿入した場合は、マクロの登録から、新規作成で作成します
Sub ボタン1_Click()
処理 (1) 'これを張り付けます
End Sub
が、標準モジュールに記載されますので、そこに張り付ければよいでしょう

Sub 処理(i)
・・・・・ 下の処理を入れてください
End Sub
も下に張ります

こんな感じでいかがですか?
SUB で 処理を定義します。

Private Sub CommandButton1_Click()
処理 (1)
End Sub

Private Sub CommandButton2_Click()
処理 (2)
End Sub

Private Sub CommandButton3_Click()
処理 (3)
End Sub

Sub 処理(i)
If i = 1 Then
MsgBox "hoge1"
ElseIf i = 2 Then
MsgBox "hoge2"
ElseIf i = 3 Then
MsgBox "hoge3"
End If
End Sub

この回答は投票によってベストアンサーに選ばれました!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる