• 締切済み

複数マクロの選択実行方法を教えて下さい

VBA初心者です。 現在2つのマクロがあります。 イメージとしては、 コンボボックスのようなドロップダウンリストから、 1つのマクロを選択したら、そのマクロを実行できるというものです。 (※2つ同時とか、2つ連続して、マクロの実行と言う意味ではありません) 今後マクロが増えることも加味して、 ・フォームでもActivXでも、 ・コンボボックスでもボタンでもリストボックスでも、 方法は問わないので、出来る方法があれば教えて頂きたいです。 色々検索してみましたが探しきれなかったので、宜しくお願いします。

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

あらっ、ゴメンナサイ。application.runの行も直してたのね。 んじゃますます、アナタが実際にやったことを漏れなく情報提供してもらわないと、「具体的に」どこを間違っているのか指摘なんてできませんデス。

ichigo999
質問者

補足

ありがとうございます。 今日は遅いので、明日もう一度やってみます。 また分からなければ質問させて頂きますので、 その際は、宜しくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

まず。回答で寄せられた手順の「その通りに」実施して、確かに実現できることを確認してください。 次に。上手くいかないなら、あなたが実際にやったこと(=実際に書いて動かなかったマクロ)を、手抜きせず漏れなく情報提供するようにしてみて下さい。 もう少し放置しておけば。 寄せられた回答マクロが何やってるのかキチンと理解をしようとしていれば、遠からずご自分でも気が付いたハズですが。 ここが: application.run "Module1."&range("A1") こうでしょ: application.run "Module1."&range("B3") 「ほかの方法(コンボボックスでもリストボックスでもコマンドボタンでも)」でも全く同じとお話ししたのは、正にこの部分です。

全文を見る
すると、全ての回答が全文表示されます。
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

作成例: 任意のセル(仮にA1セル)に入力規則のリストから macro1,macro2,macro3 を選択できるようにする 標準モジュール(Module1)にそれぞれのマクロを用意しておく シート名タブを右クリックしてコードの表示を選ぶ 現れたシートに下記をコピー貼り付ける private sub Worksheet_Change(byval target as excel.range) if target.address <> "$A$1" then exit sub on error resume next application.run "Module1."&range("A1") end sub ファイルメニューから終了してエクセルに戻り、A1セルでマクロ名を選ぶ。 何から起動するにしても、手順は殆ど同じです #参考 Module1に Sub Macro1() MsgBox "M1" End Sub Sub Macro2() MsgBox "M2" End Sub Sub Macro3() MsgBox "M3" End Sub を用意しておくという意味ですよ?

ichigo999
質問者

補足

早速の回答、ありがとうございます。 書いて頂いたのを貼りつけてみたんですが、 やり方がいけないのか、うまくいきません。 1.A1だと見にくかったので、B3とC3を結合させて、 下記の部分を変更しました。 (1)if target.address <> "$B$3" then exit sub (2)application.run "Module1."&range("B3") 2.#参考で書いて頂いたところがよく分からず、 各マクロのEnd Subの直前に、 (1)MsgBox "M1" (2)MsgBox "M2" と入れただけです。 すみませんが、 間違っている個所を、教えて頂けないでしょうか? ※Vistaで2007を使って作ってますが、 XPで2003、7で2010でも使えるようにもしたいのですが・・・。 宜しくお願い致します。

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

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

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

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

  • コンボボックスのドロップダウンリストの設定

    Excelのコントロールツールボックスからコンボボックスを作成したのですが、マウスのホイールをスクロールするとドロップダウンリストがコンボボックスの頭から離れてしまいます。 フォームツールバーから作成すれば離れないのですが、VBAでリンクを設定する関係でコントロールツールボックスから作成したいのです。 離れないように設定するにはどうしたらいいのでしょうか。 教えてください。宜しくお願いいたします。

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

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

  • エクセル マクロ 時間

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

  • コンボボックスにキー入力をさせない方法(ACCESS VBA)

    ACCESS VBAでコンボボックスを使ったプログラムを作成しています。 コンボボックスにキー入力(特にdelete、BackSpaceキー)をさせたくありません。 VBではSTYLEプロパティをドロップダウンリストにすれば 可能ですが、VBAで同じようにするプロパティが見つかりません。どなたかご存知でしたら教えてください。 それとも、そもそもそのようなプロパティは用意されていないのでしょうか? そのような場合も考えて、コンボボックスのKeydownイベントでキーコードを拾ってdelete、backspaceキーを無効にしようとも思いましたが、どうしたら無効になるのかわからず、できませんでした。 どなたかよい方法をご存知でしたら教えてください。

  • コンボボックスのドロップダウンリストが表示されない

    MFCでアプリを作成、アプリの画面上にコンボボックスのリソースを貼り付け、アプリ起動直後は、コンボボックスのドロップダウンリストを表示できています。 しかし、アプリ画面のサイズを変更すると、▼ボタンを押下しても、ドロップダウンリストが表示されなくなってしまいます。 アプリ画面のサイズを変更後も、コンボボックスのドロップダウンリストを表示できるようにする方法を教えてください。

  • Accessのマクロの実行

    いつもお世話になっております。 現在、Access2003で顧客管理の アプリケーションを作成しています。 フォームなどを開く時にマクロを2つ実行したのですが、 フォームの「プロパティ」の「開く」の欄に2つ入力することは 可能なのでしょうか? それともVBAでマクロを実行させるのでしょうか? どなたかご教授よろしくお願いします。

  • Accessマクロでパラメータークエリ実行

    Microsoft Accessのマクロでパラメータークエリを実行する方法を調べると、VBAで実行する方法しか出てきませんが、マクロではできないでしょうか。 検索フォームに条件を入力して検索するマクロを作りたいです。

  • Excel ComboBox.List設定

    「フォーム」メニューから配置したコンボボックス(ドロップ1)のリストにマクロから文字列を設定する事ができるでしょうか? 「コントロールツールボックス」メニューから配置するコンボボックス(ComboBox1)は分かります。

専門家に質問してみよう