• ベストアンサー

Excelのワークシート上でコンボボックス

お世話になります。 Excelのワークシート上にコンボボックスを配置して、ここからマクロを選択して呼び出すことは出来ますか? コンボボックスは配置できるのですが、マクロ名を設定する方法がわかりません。 エクセルのヴァージョンはExcell2000です。 よろしくお願いいたします。

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

マクロを実行するタイミングが不明ですが、コンボボックスのイベントを利用することでマクロを実行できます。 例えば、内容が変更された時に実行するなら Private Sub ComboBox○○_Change() ・・・・・・・・・・・・・・・・・ End Sub 詳しくはエクセルVBヘルプの「Formリファレンス」-「Formオブジェクトリファレンス」-「オブジェクトとコントロール」-「コンボボックスコントロール」をご覧下さい。

shinkami
質問者

お礼

回答ありがとうございます。 ListFillRange(コンボボックスのプロパティー)に「A2:A5」と内容のあるセルを指定することで、解決しました。

その他の回答 (1)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

コンボボックスにも ツールボックスから作成する方法とフォームから作成した場合があります いずれでもマクロの呼び出しは可能です ツールボックスの場合 コンボボックスを右クリック コードの表示 フォームの場合 コンボボックスを右クリック マクロの登録 いずれの場合も、コンボボックスの選択に変更があった場合にマクロが 実行されます。

shinkami
質問者

お礼

回答ありがとうございます。解決しました。

関連するQ&A

  • ワークシートとコンボボックスを共存させたい

    エクセルのVBAで、ワークシートの左側にコンボボックスを設置することはできますか? コンボボックスにA、B、Cとあるとすると、Aをクリックしたら右側にAのsheetが開くようにしたいのですが。 もしくは、VB2005で、フレームの左右、または同じフォームの中で左側にコンボボックス、右側にワークシートを設置する方法はありますか? どちらか可能な方法でプログラムを組み、ワークシート上にはユーザーが数値を打ち込んで自動計算できるようにしたいのですが。 よろしくお願いします。

  • エクセルコンボボックスでファイルを開く

    作業効率を上げたいと考えてますが どうしたら良いか分かりません。コンボボックスを使う方法があると聞きましたがどうしたらいいでしょうか? 毎日エクスプローラーショートカットから複数あるファイルの中からエクセルワークシートを開いて入力したりしていますが、複数のファイル(エクセルワークシート)名をワークシート上にファイル名リストを作り、開きたいファイルをコンボボックスで選びそのワークシートを開きたいのですが、どうしたらいいのでしょうか? 当方初心者ですので分かりやすくご指導下さい

  • エクセル、フォームでのVBAについて(コンボボックス)

    エクセル97でフォームのコンボボックスを使用する場合の質問です。 ワークシートにコンボボックスを10個配置しました。 入力範囲はすべて同じです。 このコンボボックスで特定の項目(入力範囲6番目)を選んだ場合、次のマクロを実行するようにしようと思っています。マクロを10個書いてそれぞれのコンボボックスに登録してもいいのですが、それよりはどのコンボボックスが使用されたか特定できればすべてのコンボボックスに一つのマクロで対応できます。 コンボボックスに番号(たとえばコンボ1~コンボ10)を振ってその番号の取得ができればいいのですが、どのように記述したらよいのか検討がつきません。 お教えください。

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

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

  • Excel VBA シートのコピー時に、シート上のコンボボックスもコピーしたい。

    こんにちは。 Excel VBAについて質問させていただきます。 やりたいことは、 シートAにボタンとコンボボックスを配置し、 コンボボックスには氏名の一覧を設定しています。 そこで、ボタンを押すとシートAをボタンとコンボボックスごと シートBという名前でコピーをしたいと思っています。 ActiveSheet.Copy Before:=Worksheets(1) でシート・ボタン・コンボボックスのコピーはうまく出来たのですが、 コンボボックスに設定していた氏名の一覧はコピーされていませんでした。 コピー先のシートのコンボボックスにもう一度氏名の一覧を 設定するしかないのでしょうか? それともシートのコピー時に何かいい方法があるのでしょうか。 宜しければアドバイスをお願い致します。 OSはWindows2000Pro Excelは2000です

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

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

  • Excelのワークシートでのコンボボックスについて

    Excelのワークシートでコンボボックスを設定する方法を教えてください。 「フォームコントロール」と「ActiveXコントロール」の違いがわかりません。 添付の画像の通りコンボボックスに西暦を入力(別シートに入力済みの値を表示するように設定)してあるのですが、ファイルを保存しているにも関わらず、再度ファイルを開くとコンボボックスの中のリストは空欄になってしまいます。 今は「ActiveXコントロール」のコンボボックスで設定しています。 コードは以下のように設定してみたのですが、設定内容や設定箇所が違うのでしょうか? ////////////////////////////////////////////////////// Private Sub ComboBox1_DropButtonClick() Dim sh As Worksheet Set sh = Worksheets("マクロ") Dim i As Integer Dim lastRow As Integer lastRow = sh.Cells(Rows.Count, 1).End(xlUp).Row With ComboBox1 For i = 2 To lastRow If ComboBox1 = "" Then .AddItem sh.Cells(i, 1).Value End If Next i End With End Sub ////////////////////////////////////////////////////// コンボボックスのリストの内容が消えてしまうので、 コードの内容は同じで以下のところにもコードを書いてみました。 ////////////////////////////////////////////////////// Private Sub Worksheet_Activate() Dim sh As Worksheet Set sh = Worksheets("マクロ") Dim i As Integer Dim lastRow As Integer lastRow = sh.Cells(Rows.Count, 1).End(xlUp).Row With ComboBox1 For i = 2 To lastRow If ComboBox1 = "" Then .AddItem sh.Cells(i, 1).Value End If Next i End With End Sub ////////////////////////////////////////////////////// なんだかもう、訳がわからずぐちゃぐちゃです。 コンボボックスの中に値が入っていると、実行ボタンをクリックしたときは正常にやりたい結果を出すことが実現できます。 ファイルを閉じた後に再度開いてもコンボボックスの中に値があるようにするにはどうしたらよいのか、ド素人の私にご教授いただきたくお願いいたします。

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

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

  • Excelでコンボボックスが沢山必要なときは

    お世話になります。 オラクルからコードと値を取ってきて、エクセルのシート上で表示や 選択をさせたいと思います。(一番左のセル) このときセルにアクティブXのコンボボックスを貼り付けて、表示は できたのですが、データが1000件くらいあるようで、それぞれに 1000個もコンボボックスを貼り付けるのが大変です。 何かよい方法はありませんか。 よろしくお願いします。

  • エクセルで、複数のシートからコンボボックスへ

    エクセルVBA初心者です。 作成したワークシート名をVBAにてリストボックス内に表示し、それを選択するとそのシートに飛ぶようにするためには、どうすればいいでしょうか?? よろしくお願いします。

専門家に質問してみよう