プロが教える店舗&オフィスのセキュリティ対策術

Excel2010でマクロを作っています。
ユーザーフォームに多数配置済のコンボボックスに、特定のシートの特定のセル範囲(B2:B71)のデータを配列に取り込みたいのですが、セル範囲には空白セルも多数あります。コンボボックス表示時には空白を削除したいのですが、どのようにしたら良いでしょうか?
なお、コンボボックスの名前には規則性があり、CbxStp1、CbxStp2、CbxStp3、・・・CbxStp31と連番にしてあるので、For i = 1 to 31 ~ Next で、コンボボックス名を「"CbxStp" & i」と指定して作れると助かるのですがいかがでしょうか。

A 回答 (1件)

CbxStp1~31にどれも同じB2:B71(空白を除く)をセットしたいのですか?


ヤリタイ事に応じて適切に応用してください。

private sub UserForm_Initialize()
 dim a() as variant
 dim c as long
 dim h as range
 dim i as long

’ベタですが基本の方法
 for each h in worksheets("特定の").range("B2:B71")
  if h <> "" then
   redim preserve a(c)
   a(c) = h.value
   c = c + 1
  end if
 next

 for i = 1 to 31
  userform1.controls("CbxStp" & i).list = a
 next i
end sub
    • good
    • 1
この回答へのお礼

ありがとうございました。完璧に動作しました。助かりました。

お礼日時:2013/01/02 11:35

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A