• 締切済み

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

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 私は、今のところ、2007 Office を購入する予定はないので、2003で回答させていただきます。 最初に、 >コンボボックスなどが”フォームコントロール”と”ActiveX コントロール”と2種類あるのですが、どのように違うのでしょうか? フォームコントロールというのは、アプリケーションの中に組み込まれてあるもので、「軽い」「速い」の特徴があるのですが、フォームコントロールの細かな仕様は、もう探してもないわけです。いわゆる、「隠しオブジェクト」の分類でヘルプにも出てきません。 ActiveX コントロールは、外部ツールです。つけたしも利くわけで、Excel専用もあれば、汎用性のあるものもあります。表現力は豊かです、プロパティも豊富なのです。MS側では、フォームとは縁を切りたいところだろうとは思うのですが、過去の遺産(レガシー)としての互換性で、なかなか捨てることも出来ないわけです。コントロールツール側で行ったほうがいろいろな面で便利だとは思います。 今回のコードは、双方向で実行ということですから、このようなコードでよいかと思います。 標準モジュール 'Option Explicit Dim a As Variant Dim b As Variant Sub ComboBox1_Click()  a = Sheet1.DropDowns(1).Value  b = Sheet1.DropDowns(2).Value  Call SelectMacro End Sub Sub ComboBox2_Click()  a = Sheet1.DropDowns(1).Value  b = Sheet1.DropDowns(2).Value  Call SelectMacro End Sub Private Sub SelectMacro() Dim c As String  c = a & b  Select Case c   Case "11": Call macro1   Case "12": Call macro2   Case "21": Call macro3   Case "22": Call macro4   Case "31": Call macro5   Case "32": Call macro6  End Select End Sub

関連するQ&A

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

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

  • エクセル マクロ コンボボックスリスト

    sheet1の場所でボタンクリックでフォーム表示。その中でコンボボックスリストを作成。 sheet3にデーターをA列に作りました。 1)フォームの中のコンボボックスをクリックしてリスト表示させた い。マクロの記述を教えてください。 2)コンボボックスリストに表示した文字をsheet2に記録するボタンを作ったがマクロの記述を教えてください。

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

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

  • エクセルのコンボボックスについて

    シート「データ」に   A  B 1 い  東京 2 ろ  千葉 3 は  埼玉 上記内容が記載されています。 それを別のシートで参照できるようにリストを作って入力規則でコンボボックスを作りました。 しかし、コンボボックスには選択肢がひとつしか表示されません。 「い、ろ、は」だけが表示されています。 でも本当は「東京、千葉、埼玉」をコンボボックスで表示し、セルには「い、ろ、は」のどれかを表示するようにしたいのです。 これをマクロを使わないでできるでしょうか?

  • Excelマクロのコンボボックスに関して

    マクロを初めて扱います。 どなたか詳しい方、ご教授ください。 Excelのシート上にActiveXのコンボボックスを作成しました。 このコンボボックスに同じブックの別シートのA列のX行目からY行目までを格納したいと考えております。 どうかコードの書き方をお教えいただけませんでしょうか?

  • エクセルのシートにコンボボックスを配置しようとしています。

    エクセルのシートにコンボボックスを配置しようとしています。 コントロールツールボックスのコンボボックスは、見た目があまりよくないところが 気になります。 ドロップダウンのボタンのデザインが角ばってることや シートのフォントと同一のフォントに設定してもちょっと違う(なぜ?)とこなど、 気にいりません。 フォームのコントロールは名前が変更できず、VBの関数がドロップ1_Change()などとなるため、 後に管理しづらそうで心配しています。 コントロールツールボックスのコンボボックスの見た目を改善する方法、または、 フォームのコントロールの名前を変更する方法がありましたら、 教えてください!!

  • エクセル マクロ 時間

    1)フォームにて時間を表示する。コンボボックス2つ作る。コマンドボタン(記録)を1つ作る。 2)1つのコンボボックスには時を選択させる。リストはリストはSheet2に01・02・03・・・とA列に00まで作る。 3)もう1つのコンボボックスには分を選択させる。リストはSheet2に01・02・03・・・とB列に00まで作る。 4)フォームの記録ボタンを押すと、sheet1のA2に(例 23:34)と表示させたい。 マクロの記述を教えてください。

  • エクセルのコンボボックスの内容にリンクをはるには?

    お世話になります。 エクセルにフォームを置いています。 そのフォームにはコンボボックスがあります。 コンボボックスの内容は別シートより読み込んでいます。 コンボボックスである内容が選択されたときに、 その選択内容にリンクを貼り、別シートにあるリンク先へ 飛ぶようにするにはどのような仕組みが必要でしょうか。 よろしくお願いします。

  • ユーザーフォームのコンボボックス

    エクセルのユーザーフォームでの質問です。 コンボボックスの項目についてsheet2のB2~B10を選択したいのですが、このユーザーフォームはsheet1で使うもので、プロパティのrowsource欄にセルを選択できません(やり方が分かりません)。 どう入力したら別シートのセルをコンボボックスに反映出来るのでしょうか??

  • Excel VBA コンボボックスについて

    はじめまして、エクセルVBAの超初心者です。 コンボボックスを使ってマクロを組みたいのですが、どうしてで良いか分からず教えていただければと思います。 エクセルのシートに下のようなデータがあるとします A       B りんご     あおもり りんご     ながの みかん     わかやま バナナ     フィリピン コンボボックス1にAセルを重複しないようにセットして コンボボックス2に1で選択されたものをセットしたいのですが。 プロパティのListFillRangeでAの範囲を選択しても、重複してしまい、それからどうして良いのかわかりません。 どなたか教えて頂けませんか?

専門家に質問してみよう