• ベストアンサー

Excel VBA コンボボックスで空白を削除

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

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.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

bms0320
質問者

お礼

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

関連するQ&A