• ベストアンサー

excelのマクロ選択用マクロ

お世話になります。 excelで分からない事があるので答えていただけたら幸いです。 質問の内容ですが、 同じシート内に、A,B,C,D,Eのマクロがあります。 これらのマクロを,プルダウンから選んで実行する為のマクロを作りたいのですが、可能でしょうか? よろしくお願い致します。

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

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

こんばんは。 ComboBox (名前はComboBox1)を設けて、以下の、EntryCombo(Auto_Openなどに設置) のように登録しておけば、動きます。ただし、こんなマクロは、ナンセンスだというのは言うまでもありません。マクロというものは、一定の時間を使い作業するものですから、ComboBox 等のドロップダウンのように速い動きには相応しくありません。マクロは基本的には不可逆ですから、確実な作業の意図を持って作動させるという意味を持たせなくてはなりません。したがって、マクロを設置するのは、コマンドボタンが最適です。 A,B,CC,D,E のそれぞれのマクロは、標準モジュールにおいてあります。 Private Sub ComboBox1_Change()  Application.Run ComboBox1.Value End Sub Sub EntryCombo() 'Cという名称のマクロは、使えませんから、CCにします。 For Each v In Array("A", "B", "CC", "D", "E")  ComboBox1.AddItem v Next v End Sub たぶん、「いじらず」という言葉から、#2様のアドバイスが理解できていないような気がします。「いじる」とか「いじらない」という範疇にはないように思います。 >でも出来る事ならツールバーはいじらずにおきたいので、他に方法は無いでしょうか?? #2様の考え方は、私も経験的にベストです。ツールバーは、ツールバーの中で処理できます。一種のコンテナの役目をしますから、別のPCに移しやすいし、ブックが変わっても使えます。 簡単にユーザー設定のツールバーは出来ます。必要なければ、ツールバーをオフにすると、そのツールバーだけ出てきません。何度もマクロを失ったりした失敗から、やっと今のスタイルに落ち着きました。(Excel 2007 では、残念ながら、別の格好になってしまいます。) #1様のアドバイスは、入力規則から実行する方法で、私には、すぐに意味が分かります。しかし、その意味がご理解出来ていないようです。元々無理な相談をあえて実行する方法ですから、そうしたイレギュラーな方法は、かなり難しいのではないでしょうか。

akito-1
質問者

補足

回答ありがとうございます。 Wendy02様の言う事ももっともだと思うのですが、やらなくてはいけなくなってしまったのです。 こちらのマクロは、ユーザーフォームのコンボボックスを使えば良いのでしょうか??

その他の回答 (5)

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

こんばんは。 >こちらのマクロは、ユーザーフォームのコンボボックスを使えば良いのでしょうか?? コンボボックスは、どのコントロールでもよいと思います。 ただ、ユーザーフォームのコンボボックスでは、もったいないというか、わざわざユーザーフォームを作ることもないでしょう。 >やらなくてはいけなくなってしまったのです。 他の方の方法でもよいと思いますが・・・。しなくてはならない事情というものは、こちらには伝わってこないので、#3様の「話が噛み合わない」ということになるのだろうと思います。 他の方のアドバイスは、それぞれ一家言の理屈が通っています。 理屈や論理を飛躍してまで、人は回答するようには出来ていないとも言えますね。それは、また逆も真ですが。

akito-1
質問者

お礼

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

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

#4の修正 #1様に誤解されそうな文章ですので、訂正します。 #元々無理な相談をあえて実行する方法ですから、そうしたイレギュラーな方法は、かなり難しいのではないでしょうか。 元々無理な相談をあえて実行する方法ですから、ドロップダウンで設定するような方法はイレギュラーですから、ご自身が設定するのは、かなり難しいのではないでしょうか。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.3

話が噛み合わないので確認なのですが、 >同じシート内に、A,B,C,D,Eのマクロがあります。 ここでシートといっているのは、実はブックのことではないですか? てっきり入力規則のリストボックスから選択したものによって実行する マクロを変えたい、と読めたものですから。 >プルダウンから選んで実行する これは入力規則のドロップダウンリストのことでしょうか? フォームのコンボボックスでしょうか? コントロールツールボックスのコンボボックスでしょうか? ユーザーフォームのコンボボックスでしょうか? はたまたコンボボックスではなく、リストボックスのことでしょうか?

akito-1
質問者

補足

返信ありがとうございます。 やっと上記マクロの意味がある程度わかりました。 マクロは最近触り始めたばっかりなので・・・ 申し訳ありません。 marbinさんが理解された様に、入力規則のリストボックスで構わないです。あとブックではなくシートです。 マクロを実行しようとすると、Call testAの部分で 「コンパイルエラー SubまたはFunctionが定義されていません。」 と出ます。 どうすれば良いのでしょうか??

  • noah7150
  • ベストアンサー率46% (116/251)
回答No.2

ツールバーを利用したほうが早いかも ツール->ユーザー設定 コマンドタブの分類一覧一番最後の新しいメニューをドラッグしてツールバーに配置 出来ればユーザーツールバーを作ってそこに配置したほうが良いかも でもユーザーツールバーにするならブルダウンからせずとも並べてもかまわないかな? ツールバータブの添付にすれば作成ブックにツールバーを添付できるので他マシンに持っていって使えます。

akito-1
質問者

補足

回答ありがとうございます。 これも一つの方法ですね。 でも出来る事ならツールバーはいじらずにおきたいので、他に方法は無いでしょうか??

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

入力規則のリストの選択は選択したものが前回と同じでも シートのChangeイベントで捕捉できます。 で、Select Case で条件分岐します。 Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub Select Case Target.Value Case "A" Call testA Case "B" CalltestB End Select End Sub

akito-1
質問者

補足

すみません。 どうすればマクロが実行されるのでしょうか? マクロを登録したボタンを押すと、実行されるようにしたいのですが・・・

関連するQ&A

  • エクセルのマクロでセル選択するには

    初心者です! エクセルのSheet1に30箇所のセルをマクロで選択したいのですが、 たまに選択するセルが変わります。 そこで、Sheet2のA1から下へSheet1の選択する位置を「B2」「C5」「D10」・・・としてマクロで一発で30箇所のセルを選択する方法を教えてください Sheet2のA1から下へ入力するセル位置はその都度変化します。 変化したときにそのマクロを実行すると選択できるといいのですが!! よろしくお願いします。

  • エクセル/マクロ/セルの選択について(初心者です)

    最近マクロ機能を使い始めた初心者です。 マクロの記録を使い、ちょっとだけVBEで触っています。 以下のような場合、なんと記述すればよいでしょうか? 詳しい方にはとても簡単だと思われ、お恥ずかしいですが、 教えていただけましたら幸いです。 【実現したい内容】 あるセル範囲を指定している時に、実行すると、 指定していた範囲の行の、A列のみが選択される ※例えばB1:B3、またはC1:C3、またはD1:E3 のをセル範囲を選択している時に、マクロを実行すると いずれの場合もA1:A3を選択する。 表現が分かりにくいでしょうか…?

  • Excelマクロで教えて下さい。

    Excelマクロで教えて下さい。 シート1に下記のような表がありまして その表の有休・公休取得者の名前を日にち別に シート2にまとめたいのですがマクロを教えて下さい。 ・日にちは3ヶ月並びます。 ・人数は50人います。 ・休みの種類は5種類あります。 ・有:有休 公:公休 出:出勤(本来は空欄です)  表の入力が難くわかり難いですが宜しく御願い致します。 シート1 名前 3/1 3/2 3/3 3/4 3/5 A氏 出 有 有 出 出 B氏 有 有 出 公 出 C氏 出 出 有 有 出 D氏 出 有 出 出 有 E氏 有 出 出 有 公 シート2 有休 3/1 B氏 E氏 3/2 A氏 B氏 D氏 3/3 A氏 C氏 3/4 C氏 E氏 3/5 D氏 公休 3/1 3/2 3/3 3/4 B氏 3/5 E氏

  • Excelでのマクロ作成について

    次のようなマクロをExcelで作りたいのですが上手くできませんでした。みなさんのお力をお借りしたいと思い質問しました。 [質問内容]       A        B        C 1 20030303120000 2 3 20030406120000 4 5 20030512120000 6 7 このようなシートで、セルA1の内容を「03/03/2003」に変更して行2を削除する。(セルの内容ではなく行そのものを削除する。) この作業を繰り返して次のようなシートにする。      A        B        C 1 03/03/2003 2 04/06/2003 3 05/12/2003 4 5 ひとつのマクロを繰り返し実行するのでも構いませんが、数が多いのでできれば100行程度を一度に実行できれば助かります。 よろしくお願いします。

  • エクセルのマクロについて質問です

    エクセルのVBAを使って下記のようにデータを 並べ替えることをしたいのですが どのように書けばよいでしょうか・・・ ≪元の状態≫     A    B    C    D    E 1   1    3    5     7    9 2   2    4    6     8   10 3   11   13   15    17   19 4   22   24   26    28   30 5   31   33   35    37   39           ↓↓↓ ≪マクロ実行後の状態≫ A  1   1 A  2   2 A  3   11 A  4   22 A  5   31 B  1   3 B  2   4 B  3   13 B  4   24 B  5   33 C  1   5 C  2   6 C  3   15 C  4   26 C  5   35 ・   ・   ・ ・   ・   ・ ・   ・   ・ スペック情報としては、win7、Excel2007です。 よろしくお願い致します。

  • プルダウンリストをシートにおこす マクロ??

    お世話になります。 セルB4にプルダウンで"氏名"をリスト選択するようにしています。 そのプルダウンのリスト ひとりひとり(Aさん・Bさん・Cさん・・・)を シートA、シートB、シートC・・・とコピーするマクロを組みたいのですがどのようにすればよういでしょうか。 宜しくお願い致します。

  • エクセルのマクロについて

    エクセルマクロについて教えてください 現在作ろうとしているマクロは下記の通り A列(発注日)   B列(発注品名)   M列(納入日) 20130822       A           20130826 20130822       B           20130826 20130823       C           20130827 20130823       D           20130827 20130824       E           20130827 20130825       F           20130828   ・          ・              ・   ・          ・              ・  続く         続く            続く 毎週作成する資料の為、発注件数や納入日は作成のつど 変わってきます。 上記の内容でエクセルシートに表があった場合 N列       O列 20130826    2件 20130827    3件 20130828    1件 と表記したいのですが、どのようにマクロを作れば良いか 誰かご教授して頂けませんでしょうか?

  • エクセルの抽出?のマクロ作成について

    こんばんは、じつはエクセルでどうしても整理したい事項がありましてどうやらマクロでやらないとすごい時間かかりそうなもので、是非ともお教えいただきたいのですが(VBAはほとんど初心者です^^;;) 例えば ガンダムのおもちゃが置いてある店のリストのシートと ルパンのおもちゃが置いてある店のリストのシートと ドラクエのおもちゃが置いてある店のリストのシートの3つのシートを手に入れている場合に ガンダムは a,b,c,dの4店にあり ルパンは b,c,d,e の4店にあり ドラクエは d,eの2店にあるようなばあいに a店 ガンダム b ガンダム ルパン c ガンダム ルパン d ガンダム ルパン ドラクエ e ルパン ドラクエ というようにわかりやすくどのおもちゃはどこに何種類おいているかの表をつくりたいのですが、どのようにマクロを作成したらよいのでしょうか?? 是非お教えいただけると幸いです。よろしくお願いします。

  • エクセルマクロでVLOOKUPのよう列を貼る

    初めましてよろしくお願いします。 シート2に       A     B     ・・・・・・・・・   Z 1   900     5               5 ・   903     40              60 ・    ・       ・               ・ 300 220     1     ・・・        100 301 210     10    ・・・        1000   302 200     15    ・・・         20 ・ ・ ・ が有ります。シート1のE10に210と入力されている場合、マクロを実行するとA列を検索し、シート2のA301の値と一致する301行をシート1のE11から列に変換しコピーされるようにしたいと思います。 シート1結果    A     B     C     D     E 1 2 ・ ・ 10                        210 11                         10 ・                           ・ ・                           ・ 35                        1000  解る方、よろしくお願いします。

  • Excelマクロに関しての質問

    Excelマクロに関しての質問です。 ファイルAの”シート1”のF1,F16,F42,F65,F97,F122を別のファイルBの”集計シート”のB2,C2,D2,E2,F2,G2にデータ(数値or文字)を移します。 そしてファイルAの”シート2”のF1,F16,F42,F65,F97,F122をファイルBの”集計シート”のB3,C3,D3,E3,F3,G3にデータを移します。 それをファイルAの”シート29”まで繰り返し行いたいのですが、どのようなマクロを組めば良いのでしょうか? 教えて頂きたいです。

専門家に質問してみよう