Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8790 / 76732 ←次へ | 前へ→

【73510】Re:リストボックス データ無し行を選択不可に
発言  UO3  - 13/1/16(水) 22:40 -

引用なし
パスワード
   ▼さんたぱぱ さん:

こんばんは

まず、なぜ空白行を選ぶと 1 になるのか? ということについてですが
ListBox1.Value + 1
この ListBox1.Value が 「空白値」で、VBAの多くの処理機能で計算上、
空白値を 0 と見なします。 なので 0 + 1 = 1 となりますので 1行目を参照するわけです。

で、空白値をチェックするより、実際の値のあるリスト部分をListBox1のリストとして
設定すればよろしいんです。

方法は2つほど。
まず、プロパティで設定してある RowSource をクリアして未設定にしておいてください。
その上で、以下のいずれかで。

Private Sub UserForm_Initialize()
  With Sheets("Sheet1")  'リストがあるシート名。実際のものに変更してください。
    ListBox1.List = .Range("A2", .Range("A" & .Rows.Count).End(xlUp)).Resize(, 20).Value
  End With
End Sub


または

Private Sub UserForm_Initialize()
  Dim z As Long
  With Sheets("Sheet1")  'リストがあるシート名。実際のものに変更してください。
    z = .Range("A" & .Rows.Count).End(xlUp).Row
  End With

  ListBox1.RowSource = "Sheet1!A2:T" & z

End Sub

769 hits

【73509】リストボックス データ無し行を選択不可に さんたぱぱ 13/1/16(水) 21:21 質問
【73510】Re:リストボックス データ無し行を選択不... UO3 13/1/16(水) 22:40 発言
【73523】Re:リストボックス データ無し行を選択不... さんたぱぱ 13/1/17(木) 22:10 お礼

8790 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free