ユーザーフォームで、ListBoxの値をセルへ転記するマクロコードをご紹介します。
リストボックスから複数データを選択して転記することもできます。
ChatGPTでユーザーフォームを作成してみました🤓
10分くらいで作れましたよ✨
ユーザーフォーム作成
エクセルにコマンドボタンと、ユーザーフォームを作成します。
マクロコードは、標準モジュール「Module1」に入力します。
Sub ボタン1_Click()
UserForm1.Show vbModeless
End Sub
マクロコードを「Module1」に入力した画面
ユーザーフォーム内部にマクロコードを入力する
マクロコードは「UserForm1」に入力します。
Dim i As Long
Dim LastRow As Long
Private Sub UserForm_Initialize()
Dim LastRow As Long
With Worksheets("Sheet1")
'A列最終行を取得
LastRow = .Cells(Rows.Count, 1).End(xlUp).Row
'セル範囲のデータをリストボックスに表示
ListBox1.RowSource = .Name & "!" & .Range("A2", "A" & LastRow).Address
End With
With UserForm1.ListBox1
'複数選択可
.MultiSelect = fmMultiSelectMulti
'チェックボックス表示
.ListStyle = fmListStyleOption
End With
End Sub
Private Sub CommandButton1_Click()
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) Then
With Worksheets("Sheet1")
'C列最終行を取得
LastRow = .Cells(Rows.Count, 3).End(xlUp).Row + 1
'セルへ転記
.Cells(LastRow, 3) = ListBox1.List(i)
End With
End If
Next
End Sub
マクロコードを入力する場所「UserForm1」
動作
ユーザーフォームを開いたときに、A列の値をListBoxへ表示します。
リストボックスで値を選択し、
「C列へ転記」をクリックすると、C列に値を代入します。
リストボックスから複数の値を選択して、転記することもできます。
セルの値は、常にC列の最終行へ転記します。
この記事がお役に立ちますと幸いです。
・【ExcelVBA】ユーザーフォーム作成の事例まとめ
【VBAユーザーフォーム】何ができるの?:使用例34選
...
「たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】」
「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説
リンク