Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


10367 / 13644 ツリー ←次へ | 前へ→

【22267】複数のマクロボタンを1つのマクロで実行したい ハヤブサ 05/2/14(月) 12:49 質問[未読]
【22268】Re:複数のマクロボタンを1つのマクロで実行... Jaka 05/2/14(月) 13:01 回答[未読]
【22273】Re:複数のマクロボタンを1つのマクロで実行... ハヤブサ 05/2/14(月) 14:02 質問[未読]
【22275】Re:複数のマクロボタンを1つのマクロで実行... IROC 05/2/14(月) 14:16 回答[未読]
【22276】Re:複数のマクロボタンを1つのマクロで実行... ハヤブサ 05/2/14(月) 14:26 質問[未読]
【22277】Re:複数のマクロボタンを1つのマクロで実行... IROC 05/2/14(月) 14:45 回答[未読]
【22278】Re:複数のマクロボタンを1つのマクロで実行... つん 05/2/14(月) 14:46 回答[未読]
【22280】Re:複数のマクロボタンを1つのマクロで実行... ハヤブサ 05/2/14(月) 16:03 お礼[未読]

【22267】複数のマクロボタンを1つのマクロで実行...
質問  ハヤブサ  - 05/2/14(月) 12:49 -

引用なし
パスワード
   こんにちは、VBA初心者です。
ユーザーフォームを使わずに、複数のマクロボタンを作りそれぞれの処理を実行させたいのですが、似たような処理なのでそれぞれ対応するマクロを作らず1つのマクロで全てを実行することは可能でしょうか?


    --------   --------    --------
    - A -   - B -    - C -
    --------   --------    --------

 A,B,Cのボタンを作り、1つのマクロで実行させたい。

【22268】Re:複数のマクロボタンを1つのマクロで実...
回答  Jaka  - 05/2/14(月) 13:01 -

引用なし
パスワード
   こんにちは。

ちょっと解りにくいですけど、
シート上フォームのボタンだったら、全てのボタンに下記マクロ登録させて、ボタン名で振り分けるとか?

Sub ああああ()
  MsgBox Application.Caller & "が、押されました。"
End Sub

【22273】Re:複数のマクロボタンを1つのマクロで実...
質問  ハヤブサ  - 05/2/14(月) 14:02 -

引用なし
パスワード
   ▼Jaka さんありがとうございます。
  マクロ登録して実行してみたら、確かに「ボタン1が押されました」「ボタン 2が押されました」というようにそれぞれのボタンでメッセージがでましたが、
 そのあと、それぞれの処理に振り分けることができませんでした。
 どうしたらいいでしょうか?

>こんにちは。
>
>ちょっと解りにくいですけど、
>シート上フォームのボタンだったら、全てのボタンに下記マクロ登録させて、ボタン名で振り分けるとか?
>
>Sub ああああ()
>  MsgBox Application.Caller & "が、押されました。"
>End Sub

【22275】Re:複数のマクロボタンを1つのマクロで実...
回答  IROC  - 05/2/14(月) 14:16 -

引用なし
パスワード
   select case を使って分ければよいかと?

【22276】Re:複数のマクロボタンを1つのマクロで実...
質問  ハヤブサ  - 05/2/14(月) 14:26 -

引用なし
パスワード
   ▼IROC さんありがとうございます。
>select case を使って分ければよいかと?

 select case を使ってやってみましたがうまくいきませんでした。
 「ボタン1が押されました」と表示されたので

  Select Case Application.Caller
      Case is = "ボタン1" Msg "処理1"
    ・
    ・
    ・
  End Select
 のようにして実行してみましたが、「処理1」という表示はでませんでした。
  Application.callerには、どんな値が入ってくるのでしょうか?

【22277】Re:複数のマクロボタンを1つのマクロで実...
回答  IROC  - 05/2/14(月) 14:45 -

引用なし
パスワード
   >Msg "処理1"
これでコンパイルエラーにならないということは、
Option Explicitを宣言していないですか?
オプションで「変数の宣言は強制」に設定してください。

>Application.callerには、どんな値が入ってくるのでしょうか?
Msgboxで表示される文字です。
Debug.Print で確認してみては?


数字が半角で、半角スペースも必要。

Case "ボタン 1"
 MsgBox "処理1"

【22278】Re:複数のマクロボタンを1つのマクロで実...
回答  つん E-MAIL  - 05/2/14(月) 14:46 -

引用なし
パスワード
   横から失礼します。

>>select case を使って分ければよいかと?
>
> select case を使ってやってみましたがうまくいきませんでした。
> 「ボタン1が押されました」と表示されたので
>
>  Select Case Application.Caller
>      Case is = "ボタン1" Msg "処理1"
>    ・
>    ・
>    ・
>  End Select

  Select Case Application.Caller
    Case "ボタン 1": MsgBox "処理1"
    Case "ボタン 2": MsgBox "処理2"
  End Select

こんな感じでしょうか?
ヘルプでよく調べてください。

>  Application.callerには、どんな値が入ってくるのでしょうか?

こういう場合は

 MsgBoxで表示してみるのが一番かと・・・・

【22280】Re:複数のマクロボタンを1つのマクロで実...
お礼  ハヤブサ  - 05/2/14(月) 16:03 -

引用なし
パスワード
   IROCさん、つんさんありがとうございました。
解決しました。

10367 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free