こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

投稿日時 - 2013-01-01 23:36:08

QNo.7871357

困ってます

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

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

投稿日時 - 2013-01-02 03:48:13

お礼

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

投稿日時 - 2013-01-02 11:35:29

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問