プロが教えるわが家の防犯対策術!

お世話になります。
EXCEL2013を使用していてユーザーフォームについて教えてください。

ユーザーフォームにListViewを表示させたいのですが
表示させる内容を一行づつ指定するのではなく
A列の最終行まで自動で表示させることは出来ますでしょうか。

A列 日付
B列 運送会社

    A列  B列
2行目 日付  運輸会社 (2行目見出し)
3行目 10/1  山田運輸
4行目 10/1  佐藤運送’
5行目 10/5  小田急運送

今書いてるコードです
Private Sub UserForm_Initialize()
With ListView1

'見出し
.ColumnHeaders.Add , "date", "日付", 50
.ColumnHeaders.Add , "track", "運送会社", 100

'1行目にデータ追加
With ListView1.ListItems.Add
.Text = Format(Range("A3"), "m/d")
.SubItems(1) = Range("B3")
End With

'2行目にデータ追加
With ListView1.ListItems.Add
   .Text = Format(Range("A4"), "m/d")
.SubItems(1) = Range("B4")
End With
   
  '3行目にデータ追加
With ListView1.ListItems.Add
   .Text = Format(Range("A5"), "m/d")
.SubItems(1) = Range("B5")
End With

End With
’★これを1行ずつ指定するのではなく、A列最終行まで表示させたいです
End Sub

A 回答 (3件)

こんな感じで。



Dim LastRow As Long
Dim i As Long
With Me.ListView1

  '見出し
  .ColumnHeaders.Add , "_date", "日付", 50
  .ColumnHeaders.Add , "_track", "運送会社", 100

  LastRow = Cells(Rows.Count, "A").End(xlUp).Row

  For i = 3 To LastRow
    With .ListItems.Add
      .Text = Format(Cells(i, "A"), "m/d")
      .SubItems(1) = Cells(i, "B")
    End With
  Next

End With
    • good
    • 0
この回答へのお礼

ありがとう

無事に解決できました!
tatsu99さんと迷いましたが、いち早くお答えいただいたのでベストアンサーにしたいと思います。
お二方ともありがとうございました!

お礼日時:2019/10/08 18:35

以下のようにしてください。


Private Sub UserForm_Initialize()
Dim maxrow As Long
Dim wrow As Long
maxrow = Cells(Rows.Count, 1).End(xlUp).Row 'sheetの最大行取得
With ListView1
.View = lvwReport '一覧表示
'見出し
.ColumnHeaders.Add , "date", "日付", 50
.ColumnHeaders.Add , "track", "運送会社", 100
For wrow = 3 To maxrow
'データ追加
With .ListItems.Add
.Text = Format(Cells(wrow, "A").Value, "m/d")
.SubItems(1) = Cells(wrow, "B").Value
End With
Next

End With
End Sub
    • good
    • 0
この回答へのお礼

ありがとう

あきらめていたのですが無事に解決できました。
ありがとうございました!

お礼日時:2019/10/08 18:33

市役所などの自治体が行っているパソコン相談で相談したほうが良いと思います。

    • good
    • 0

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

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


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