ユーザーフォーム リストボックスの値をセル転記:VBA(動画あり)

ExcelVBA-ユーザーフォームリストボックスセル転記-アイキャッチ ExcelVBA

ユーザーフォームで、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選
エクセルのユーザーフォームで、処理を自動化するVBAコードをご紹介します。ぜひお試しください😉

 

[最速入門] ChatGPTに任せる Excelマクロ&VBA 面倒なプログラミングは秒で片づけよう

ChatGPTと対話しながら身につける、新しいVBA入門

Excelマクロ・VBAをAIと一緒にラクに習得したいなら、まず読んでおきたい一冊です!


★★★★★ 4.6 ※ Amazonカスタマーレビューより
マクロ記録とChatGPTを組み合わせた学習法が実践的で、すぐ現場で使える
「過不足のない指示」の出し方を学べ、AIとの対話スキルが身につく
変数・条件分岐・ループなどVBAの基礎もしっかり解説されている