前提・実現したいこと
見出しに応じた内容をリストボックスから選択して転記するシステムを作っています。
最終的には用紙に印刷するシステムです。
発生している問題・エラーメッセージ
エラーメッセージはなし イニシャライズイベントの所で、シート2の見出し行だけを参照して、 リストボックス1に表示させたいのですが、見出し行だけを参照できず、 やむなくシート4にイコールで手動で連動させて上から下に行で参照させています。 そのため見出しを参照する量が多くなると大変になる。 リストボックスは1行だけを水平に参照できないのでしょうか?
該当のソースコード
Option Explicit Dim TextRow As Long Dim g As Long Dim i As Long Dim h As Long Private Sub ListBox1_Change() ListBox2.Clear h = ListBox1.ListIndex h = h + 3 With Worksheets("Sheet2") ListBox2.List = .Range(.Cells(4, h), .Cells(20, h)).Value End With With UserForm1.ListBox2 ' 複数選択可 .MultiSelect = fmMultiSelectMulti End With End Sub Private Sub UserForm_Initialize() With Worksheets("Sheet4") ListBox1.List = .Range(.Cells(3, 3), .Cells(20, 3)).Value End With End Sub Private Sub CommandButton1_Click() If TextBox1.Value = 0 Or TextBox1.Value = "" Then MsgBox "oi" Exit Sub End If 'テクストボックスに入力された値から+2行の位置に入力 TextRow = UserForm1.TextBox1 + 2 For i = 0 To ListBox2.ListCount - 1 If ListBox2.Selected(i) Then With Worksheets("Sheet1") 'セルへ転記 .Cells(TextRow, 6) = ListBox2.List(i) TextRow = TextRow + 1 End With End If Next End Sub
試したこと
本来、シート2の見出し行だけを参照していきたいため、
下記のようなコードやいろんな変数を試してみましたが駄目でした。
できたらシート4を無くしたいです。
Private Sub UserForm_Initialize()
With Worksheets("Sheet2") ListBox1.List = .Range(.Cells(3, 3), .Cells(3, 20)).Value End With
End Sub
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/09 06:27