• ベストアンサー

既存のマクロをコンボボックスのプルダウンで選択できるようにしたいです。

マクロ1、マクロ2、マクロ3を コンボボックスのプルダウンで選択できるようにしたいです。 ユーザーフォーム上でコンボボックスの三角の矢印を選択したら 下の白い部分にマクロ1、マクロ2、マクロ3を選択できて 選んだマクロを実行できるようにしたいです。 よろしくお願い致します。

noname#150498
noname#150498

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

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

エクセルVBAでやりました。 VBでも大筋変わらないでしょう。 ーー ユーザーフォームを挿入 ユーザーフォームに1つコンボボックスを張り付け フォームモジュールに Private Sub ComboBox1_Change() MsgBox UserForm1.ComboBox1.Text x = UserForm1.ComboBox1.Text Select Case x Case "マクロ1を選択" macro1 Case "マクロ2を選択" macro2 Case "マクロ3を選択" macro3 End Select End Sub Private Sub UserForm_Initialize() UserForm1.ComboBox1.AddItem "マクロ1" UserForm1.ComboBox1.AddItem "マクロ2" UserForm1.ComboBox1.AddItem "マクロ3" End Sub エクセルならRowSourceに項目内容の入った番地(例F1:F3)をで項目を指定する方法でもできる ーー 標準モジュールに Sub macro1() MsgBox "マクロ1実行" End Sub Sub macro2() MsgBox "マクロ2実行" End Sub Sub macro3() MsgBox "マクロ3実行" End Sub ーー 実際の処理は、「MsgBox "マクロ3実行」のところへ入れること。 以上テスト済み

noname#150498
質問者

お礼

大変参考になりました。ご回答ありがとうございます。

その他の回答 (2)

回答No.2

コンボボックスの返り値を利用(取得して) Select Case 返り値  Case 1 マクロ1  Case2   マクロ2  Case3   マクロ3 End Select 上記マクロをコンボボックスに登録すれば可能だと思います。

noname#150498
質問者

お礼

返り値。。。? 勉強して出なおします。 大変参考になりました。ご回答ありがとうございます。

  • pbforce
  • ベストアンサー率22% (379/1719)
回答No.1

コンボボックスに入力した文字を取得して、IF文や、Select文で条件選択して、Callすれば良いでしょう。

noname#150498
質問者

お礼

難しそうです。。。大変参考になりました。ご回答ありがとうございます。

関連するQ&A

  • 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です。ご教授よろしくお願いします。

  • エクセルで2段階コンボボックスを作成

    エクセルのシート上にコンボボックスを2つ作成して Aのコンボボックスの内容を選択するとBのコンボボックスの値が変わるというものを作成したいです。 エクセルのプルダウンで最初は考えていましたが、プルダウンだと三角の矢印が常に表示されない為あきらめました。 なのでコンボボックスの作成の仕方を教えて下さい。 例として野菜とくだものをあげます コンボボックスAで選択するもの→ 野菜、くだもの コンボボックスBで選択するもの→  【野菜の場合】キャベツ、にんじん、トマト 【くだものの場合」バナナ、りんご、みかん 以上です。よろしくお願いいたします。

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

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

  • ExcelVBA コンボボックスリストのリセット

    4月からマクロを勉強し始めて、壁にぶつかっています。 ユーザーフォームでオプションボタンの下にコンボボックス(1)を、そのさらに下にもうひとつコンボボックス(2)をレイアウトしました。 コンボボックス(1)は選ばれたオプションボタンによって、異なるリストを表示させるようにしてあります。 わからないのは、コンボボックス(2)のリストをコンボボックス(1)で選ばれた文字によって変えたいのです。 たとえば、コンボボックス(1)で"A"と選択されたら、コンボボックス(2)にはリストA'が、(1)で"B"と選択されたら、(2)にはりすとB'が…、というように、場合分けさせたいのです。 方法をご存知の方がいらっしゃいましたら、ご教示ください。よろしくお願いいたします。

  • コンボボックスに付いて

    エクセル2000を使用しています。コンボボックスに付いて教えて下さい。 今コンボボックス(ユーザーフォーム使用)を12個一組 計5組 にて簡単な選択データを作っています。 コンボボックスの値はシートより読み出し値を表示させているのですが、この12個のコンボボックス1~12みたいな感じで 簡単に一まとめ出来ないでしょうか? 12個一組は内容は同じです。とりあえず一つ一つのコンボボックスに対してシートを参照するようにしましたが、 もっと簡単に簡略化出来ないものなのでしょうか? ご教示お願い致します。初心者ですので例などで教えて頂ければ幸いです。

  • accessコンボボックスで今日の日付のみ選択

    accessのフォームにあるコンボボックスで今日の日付のみ選択できるようにしたいです。 コンボボックスの右端の三角の記号をクリックすると今日の日付のみが候補としてでてくるような 設定の方法を教えてください。 値集合ソースには関数を入れることができなくて困っています。 ネットや本でいろいろ調べてみましたが、今日の日付前後3日を表示する方法はあっても 今日の日付のみを選択の候補として設定する方法がわかりませんでした。 また、フォームを開いたときにコンボボックスに今日の日付が自動で出てくる状態にする方法は わかったのですが、常時(コンボボックスの右端の三角をクリックしなくても)今日の日付が見えてしまいます。 コンボボックスの右端の三角をクリックして初めて今日の日付が選択できるようにしたいです。 access初心者です。宜しくお願いします。

  • Excel ユーザーフォームのコンボボックスについて

    始めまして、マクロに関してはまだまだ勉強中なのですが、ユーザーフォームのコンボボックスについてつまづいてしまい、皆さんにご教授頂ければと思います。 一つユーザーフォームを作成後、そのフォーム内にコンボボックスを配置し、リストから項目を選択できるようにしたいと考え下記のように記述したのですが、ユーザーフォームを実行してもフォームは表示されてきますが、ボックスを選択してもリストに項目が表示されてきません。 Private Sub cmd入力_Click() End Sub Private Sub 選択グループCombo_Change() With 選択グループCombo .AddItem "初級" .AddItem "中級" .AddItem "上級" Private Sub cmd閉じる_Click() Unload Me End Sub この記述自体が間違っているのでしょうか。 宜しくお願いします。

  • 【Excel・マクロ】コンボボックス・テキストボックスからのデータの入力について

    教えて下さい! 今シートにはA列に日付(2003/1/1~2010/12/31)、B列からI列の1行目には項目名が入っています。 これから行いたいことは、別マクロで表示させたフォームのコンボボックスから日付を選択し、同じフォーム上にある項目名に沿った8つのテキストボックスにデータを入力することにより、そのデータがシートに反映されるというものを作成したいのです。 データが入力される部分は選択された日付の行の、各項目名と交わる部分となります。 (例)        |あああ|いいい|ううう・・・ 2003/1/1 |    |    | 2003/1/2 |    |    | 2003/1/3 |    |    | ※上の表だとコンボボックスから2003/1/2を選択し、テキストボックス「いいい」部分にデータを入力するとC3セルにデータが入力されます。 コンボボックスにデータを表示させることは出来るのですが、そこから先(この日付を選んでテキストに入力して・・・)が出来ません。 よろしければ、記述を教えて頂きたいと思います。 宜しくお願い致します。

  • コンボボックスからコンボへ

    私はホームページを黙過、勉強中のものです。 いま、ホームページ上に上下の所にコンボボックスを設置し、コンボボックスから選択肢を選ぶと下のコンボボックスが上のコンボボックスの選択肢によって選択する値を変える仕組みを作っています。 ほぼ完成しました。ただ一つだけ問題解決できません。それは選択をしてもらい画面が切り替わった時に入力ミスをしてしまった人は前の画面に戻ります。その時に上と下のコンボボックスのうち下のコンボボックスに入れてもらった値が消えてしまう事です。更に下のコンボボックスを選択しようとすると値が全て消えてしまっているので選択できません。もう一度上のコンボに値を入れ直すとまた下のコンボも値をかえすのですが、それでは入力者にだいぶ手間をかけてしまう事になります。 どうか教えて頂けないでしょうか。 この仕組みはすべてジャバで作りました。 お願します。

  • Excelマクロのコンボボックスについて

    初めてマクロを扱います。 マクロに詳しい方、コードをご教授ください。 Excelマクロを使い下記の機能をシートに盛り込みたいと考えております。 【実現したいこと】 ・シート上にコンボボックスを作成し、コンボボックスで選択した項目で絞り込めるようにする。 ・コンボボックスに格納される項目は、A列の重複を除外し、昇順で並べ替えたもの。 ・またコンボボックスに格納する項目は日々レコード追加されるため、コンボボックスの中身にも随時反映するようにしたい。 ・コンボボックスには「全て表示」というアイテムを追加し、「全て表示」を選択すると、フィルターが解除される。 わかりにくいかもしれませんが上記のことを実現したいと考えております。 どうかお知恵をお貸しください!! よろしくお願いします!!

専門家に質問してみよう