|
今、Listviewを使って、マクロを作成しています
LISTシートのデータをListViewに表示させるようにして、
チェックボックスもつけてあります
やりたい事がうまくできず困っています
ユーザーフォームに
textBox1 (任意の日付)
CommandButton1 (更新ボタン)
ListView1
が存在します
【やりたいこと】
日付入力したい行のチェックボックスにチェックをつけます
そのときチェックは複数つきます
次に、ユーザーフォーム上にあるtextBox1に日付を入力
CommandButton1をクリックすると、チェックした行すべてに日付が入力され、
ListViewに表示される
といった、マクロを作りたいのですが、うまくいきません
今は下記のように記述してあります
Private Sub UserForm_Initialize()
With ListView1
.View = lvwReport ''表示
.LabelEdit = lvwManual ''ラベルの編集
.HideSelection = False ''選択の自動解除
.AllowColumnReorder = True ''列幅の変更を許可
.FullRowSelect = True ''行全体を選択
ListView1.CheckBoxes = True ''チェックボックス設定
.Gridlines = True ''グリッド線
.ColumnHeaders.Add 1, "_PN", "なまえ"
.ColumnHeaders.Add 2, "_CODE", "こーど"
.ColumnHeaders.Add 3, "_DATE", "日付"
End With
For i = 4 To Range("A" & Rows.Count).End(xlUp).Row
With ListView1
With .ListItems.Add
.Text = Range("A" & i).Value
.SubItems(1) = Range("F" & i).Value
.SubItems(2) = Range("G" & i).Value
End With
End With
Next i
end Sub
Private Sub CommandButton1_Click()
Dim i As Integer
Dim MyItem As String
MyItem = ""
'とりあえず、テストでチェックしたアイテムが順番に取得できるか?
テストしてみました。でも、下記の記述では一番目のアイテムは取得できるけど、
2個目からは取得できてませんでした
’実際には、ココで、テキストボックスに入れた日付をListシートにも反映させて、ListViewに結果を表示させたいと思っています
With ListView1
For i = 1 To .ListItems.Count
If .ListItems(i).Selected Then
MyItem = MyItem + .ListItems(i).Text + vbCrLf
End If
Next i
End With
MsgBox MyItem
End Sub
どうか、よきアドバイスをお願いいたします
|
|