【ユーザーフォーム】リストボックスの値をセル転記:VBA

ExcelVBA-ユーザーフォームリストボックスセル転記-アイキャッチ エクセルマクロで効率化する

ユーザーフォームで、ListBoxの値をセルへ転記するマクロコードをご紹介します。

リストボックスから複数データを選択して転記することもできます。

このページのマクロコードは、コピペで使えます。
ぜひお試しください!

ユーザーフォーム作成

エクセルにコマンドボタンと、ユーザーフォームを作成します。


 

マクロコードは、標準モジュール「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列の最終行へ転記します。


 

この記事がお役に立ちますと幸いです。
 

【VBAユーザーフォーム】何ができるの?:具体的な使用例19選
...

 

「たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】」
「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説