• ベストアンサー

コンボボックスの値に応じてブック内クロを実行したい

マクロ初心者です。 シート1にコンボボックスを用意しています。 コンボボックスの入力範囲で指定している値が複数の年月 (例2022/11,2022/12…) リンクするセルがA1としました。 A1に表示されている値は、1です。 標準モジュールに、Macro1、Macro2、Macro3…と作りました。 セルA1値が2022/11の場合はMacro1を実行、 2022/12の場合はMacro2を実行する場合のマクロを教えてください。 よろしくお願いいたします。

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

  • ベストアンサー
  • SI299792
  • ベストアンサー率48% (720/1490)
回答No.2

フォームコントロールのコンボボックスでいいですが。 A1が1 Macro1実行 A1が2 Macro2実行 A1が3 Macro3実行 Macro1~3 の中は変更して下さい。 ' Sub Macro0() '   Run "Macro" & [A1] End Sub ' Sub Macro1() '   MsgBox "Macro1" End Sub ' Sub Macro2() '   MsgBox "Macro2" End Sub ' Sub Macro3() '   MsgBox "Macro3" End Sub

tjsm0028
質問者

お礼

質問状況が解らないのに解答頂きありがとうございました。 お陰様で、やりたいことが出来ました。 自身も、質問の内容を把握出来ないまま投稿してしまい反省しています。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

下記は質問者独特の話だ。この説明では、状況を知らないから、よく判らん。 >コンボボックスの入力範囲で指定している値が複数の年月 (例2022/11,2022/12…) リンクするセルがA1としました。 A1に表示されている値は、1です。 ーーー 上記は省略して、 下記を参考にすれば、できるだろう Sheet1にActiveXのコンボボックスを1つ貼り付け。 コンボボックスのItemを3つ作る(例)。 標準モジュールに Private Sub shori1() With Worksheets("Sheet1") .ComboBox1.AddItem "AA" .ComboBox1.AddItem "BB" .ComboBox1.AddItem "CC" End With End Sub これでテスト。 Sheet1(シートモジュールの)のComboBox1の_Changeイベントに Private Sub ComboBox1_Change() MsgBox ComboBox1.Value Select Case ComboBox1.Value Case "AA" MsgBox "AAの処理" Case "BB" MsgBox "BBの処理" Case "CC" MsgBox "CCの処理" End Select End Sub このMsgBox "AAの処理"のところに、やりたい処理のVBAコードを入れる。それだけ。 これだけ納得すれば、自分の場合への、拡張や類推は可能だろう。

tjsm0028
質問者

お礼

ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VBA コンボボックスで選んだ値を取得するには

    ユーザーフォーム上のコンボボックスから値を選択し、その値を変数として使いたいのですが、うまくいきません。 コンボボックスのコードで Private Sub ComboBox1_Change() moji1 = ComboBox1.Text Range("A1").Value = moji1 のようにすれば、コンボボックスから値を選んだ時点でA1セルにその値をコピーできるのですが、同じユーザーフォーム上にあるコマンドボタンをクリックして実行する「マクロ1」にてこのmoji1という変数を使いたいのです。 マクロ1にて、上記と同じ Range("A1").Value = moji1 というコードを記述しても、ユーザーフォームで選択した値が消えており、empty値となってしまいます。 原因をご存知の方はお教えください。

  • Excelで、コンボボックスで選択したとき特定のマクロを動かす

    1つのシートにコンボボックス(フォームコントロール)を2つ並べてあります。  コンボボックス”ドロップ1”   コンボボックス”ドロップ2”  【選択肢】             【選択肢】  ・1回                ・A  ・2回                ・B  ・3回 とあります。それぞれのコンボボックスの選択肢は、別のシートに名前を定義して表示するようにしてあります。 その際、上の例だとマクロを6種類用意してあります。  (1) 1回A  (2) 1回B  (3) 2回A  (4) 2回B  (5) 3回A  (6) 4回B とあり、1つ目のコンボボックスで「2回」を、2つ目のコンボボックスで「B」を選んだ場合、 (4)のマクロを実行するようにするにはどのようにしたらよいでしょうか? ※ コンボボックスは両方選ばない限りはマクロを実行させません。 また、両方既に選択してあり、そのマクロが一度実行させた後、一方だけ変更しても他のマクロを実行させたいです。 また、本件とは別の内容となっていまいますが、コンボボックスなどが”フォームコントロール”と”ActiveX コントロール”と2種類あるのですが、どのように違うのでしょうか? ちなみにExcelは2007です。ご教授よろしくお願いします。

  • コンボボックスへの値の編集方法について

    ACCESSで複数のフォームにコンボボックスを配置しています。どのフォームのコンボボックスにも同じようにコンボボックスの値を設定します。それぞれプロパティの値リストを設定することなく、共通のモジュールを作成してそこでADDITEMできるようにしたいと考えています。 モジュールにどのようにコンボボックスを引数として渡したらよいか、またモジュールではどのように引数を受け取り、どのようにadditemしたらよいか教えていただけないでしょうか。 よろしくお願いします。

  • Excel コンボボックスの値参照

    シート上に配置したコンボボックスの選択されている値を マクロの中で参照するにはどうすればよいのでしょうか?

  • エクセル:シート1のセルA1が0でなければ任意のマクロを実行したい

    エクセルマクロ(VBA)初心者です。よろしくお願いします。 (1)エクセルのsheet1のセルA1の値が”0(ゼロ)”でなければ、そのシート上で任意のマクロを実行し、ゼロであれば実行せずにsheet2へとぶ (2)同じようにsheet2のセルA1がゼロでなければ実効し、ゼロでなければsheet3へとぶ・・・の繰り返し(sheet50まであります。) このようなマクロ(標準モジュール)の書き方を教えてください。 よろしくお願いいたします。

  • コンボボックスの値が消えてしまいます。

    コンボボックスの値が消えてしまいます。 フォーム(1)にコンボボックスA(値集合ソースはテーブル1)があります、この リスト外入力時で別フォーム(2)(レコード追加用)を開きテーブル1にレコードを追加、 フォーム(2)を閉じる時にコンボボックスAをリクエリかけてフォーム(1)に戻るとコンボボックスAが空になっているのでリストを開き選択し直さなければいけません! フォーム(1)に戻った時コンボボックスAに入力した値を選択させておくにはどの様にすれば良いか アドバイスよろしくお願いいたします。 WIN XP ACCESS 2003で作成しています。

  • コンボボックスを複数のセルにコピーする方法

    交通費清算表を作成しています。 種別の欄をコンボボックスを使用して選択できるようにしました。 これを、複数行にコピーしたいのですが、 ドラック&ドロップでコピーすると、"リンクするセル"の値が切り替わらずすべてのセルでコピー元の値を反映してしまいます。 -------------------------------------- 【コピー前】 入力範囲 Sheet1!$A$2:$A$7 リンクするセル Sheet2!$A$2 【コピー後】 入力範囲 Sheet1!$A$2:$A$7 リンクするセル Sheet2!$A$3←ここを切り替えたい。 -------------------------------------- 上のような結果になるよう簡単にコピーする方法は ないでしょうか? 以上ご教授のほど宜しくお願いします。 参考までに現在の設定を記載しておきます。 【コンボボックス】 入力範囲 Sheet1!$A$2:$A$7 リンクするセル Sheet2!$A$2 【Sheet2/セルA1】 =INDEX(Sheet1!$A$2:$A$7,A2)

  • コンボボックス全ての値を取得させるには

    アクセスでクエリの抽出条件にコンボボックスで取得した値を反映させ、テーブルを 作成しエクスポートさせるマクロを組んでいるのですが、 ひとつひとつ実行させるのが手間なので、コンボボックス全ての値を取得させ クエリの抽出条件にひとつひとつ反映させてテーブル作成・エクスポート というマクロを組みたいのですが可能でしょうか?

  • エクセルのマクロのコンボボックスへ入力した

    エクセルのマクロのコンボボックスへ入力した値をセルに表示する際のことで質問があります。 ABCDEという5つのコンボボックスから、A1、A2、A3,A4、A5のセルへ入力していますが、時々CやDの値がなくてEの値を左詰めするというか空白のセルを作らずに入力したいです。 例えばAのコンボボックスには入力でA1、Bのコンボボックスは未入力でCのコンボボックスに入力した値をA2のセルへ入力といった具合にしたいです。 コンボボックスBが未入力なら、 ・コンボボックスCの値をBへ ・コンボボックスDの値をCへ ・コンボボックスEの値をDへ ・コンボボックスEは空白に コンボボックスCが未入力なら、 ・コンボボックスDの値をCへ ・コンボボックスEの値をDへ ・コンボボックスEは空白に コンボボックスDが未入力なら、 ・コンボボックスEの値をDへ ・コンボボックスEの値を入力 という手順を挿入。 で本来のやりたいことの コンボボックスA~EをセルA1:A5の範囲へ入力。 と教えてもらったんですが、それを生かせず、自分なりに考えてみて IF Then Else を使ってA3まではやれたんですが、A4、A5がうまくできなくて挫折しています。 http://www.max.hi-ho.ne.jp/happy/YNxv233.htmlを参考にしてくださいと教わったのですがどれが使えるのかもわからず・・・・。 わかんないことばかりですいません。

  • コンボボックスで選択した値をシートに転記する

    エクセルを使用して表を作成していますが、うまくいきません。 作りたいのは下記のものです。 sheet1にリストを作成  (リストはA-F列で300行程、また先頭A列は任意の不連続番号) sheet2に表を作成 sheet2のA1にコンボボックスを作成 コンボボックスにはsheet1のリストのA,B列を表示させたい またコンボボックスで選択した行のデータをsheet2にコピーさせる。 と、なるようにしたいのですが、どのようにしたら良いのでしょうか? コンボボックスのリンクから参照したVLOOKUPだとセルのデータを上書きされると、式がなくなってしまうので、VBAで作成したいです。