dポイントプレゼントキャンペーン実施中!

マクロを初めて扱います。
どなたか詳しい方、ご教授ください。

Excelのシート上にActiveXのコンボボックスを作成しました。
このコンボボックスに同じブックの別シートのA列のX行目からY行目までを格納したいと考えております。

どうかコードの書き方をお教えいただけませんでしょうか?

A 回答 (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)の方法をお勧めします。
以上です。
 
    • good
    • 0
この回答へのお礼

最終行をセットしたかったので(2)の方法で実現しました。
言葉足らずで失礼しました。
ありがとございました。

お礼日時:2009/08/07 17:30

コンボボックスのリストをA列のX行目からY行目で取りたいと言うことでしょうか


でしたらプロパティのListFillRangeで設定できますよ。

参考
http://officetanaka.net/excel/function/tips/tips …

参考URL:http://officetanaka.net/excel/function/tips/tips …
    • good
    • 0
この回答へのお礼

ありがとうございます。
最終行をセットしたかったので今回は別方法をとらせて頂きました。
言葉足らずですみませんでした。

お礼日時:2009/08/07 17:33

例えば、下記のようなことでどうでしょうか。


ActiveSheet.OLEObjects("ComboBox1").ListFillRange = "Sheet2!A1:A10"
    • good
    • 0
この回答へのお礼

ありがとうございます。
最終行をセットしたかったので今回は別方法をとらせて頂きました。
言葉足らずですみませんでした。

お礼日時:2009/08/07 17:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!