- ベストアンサー
Excelマクロのコンボボックスに関して
マクロを初めて扱います。 どなたか詳しい方、ご教授ください。 Excelのシート上にActiveXのコンボボックスを作成しました。 このコンボボックスに同じブックの別シートのA列のX行目からY行目までを格納したいと考えております。 どうかコードの書き方をお教えいただけませんでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>Excelのシート上にActiveXのコンボボックスを作成しました ActiveXコントロールとありますので フォームツールバーのコントロールと区別はついてるわけですね。 ま、別に確認するようなことでもないですが。。。(^^;;; ■Sheet1上に、Combobox1 があるものとする (1)Sheet2のA1からA9までのデータをセットする場合 Sheets("Sheet1").ComboBox1.List = Sheets("Sheet2").Range("A1:A9").Value (2)Sheet2のA1からA列データ最終行をセットする場合 (要するにA列のデータが増減する場合) Dim LastRow As Long LastRow = Sheets("Sheet2").Cells(Rows.Count, "A").End(xlUp).Row Sheets("Sheet1").ComboBox1.List = Sheets("Sheet2").Range("A1:A" & LastRow).Value (3)増減しても上記のようにするのは面倒な場合 (要するに、A列全てを対象にする場合) Sheets("Sheet1").ComboBox1.List = Sheets("Sheet2").Range("A:A").Value ■(2)の方法をお勧めします。 以上です。
その他の回答 (2)
- kmetu
- ベストアンサー率41% (562/1346)
コンボボックスのリストをA列のX行目からY行目で取りたいと言うことでしょうか でしたらプロパティのListFillRangeで設定できますよ。 参考 http://officetanaka.net/excel/function/tips/tips05.htm
お礼
ありがとうございます。 最終行をセットしたかったので今回は別方法をとらせて頂きました。 言葉足らずですみませんでした。
- xls88
- ベストアンサー率56% (669/1189)
例えば、下記のようなことでどうでしょうか。 ActiveSheet.OLEObjects("ComboBox1").ListFillRange = "Sheet2!A1:A10"
お礼
ありがとうございます。 最終行をセットしたかったので今回は別方法をとらせて頂きました。 言葉足らずですみませんでした。
お礼
最終行をセットしたかったので(2)の方法で実現しました。 言葉足らずで失礼しました。 ありがとございました。