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