ユーザーフォーム コンボボックスでシート操作とデータ転記 VBA

ユーザーフォーム コンボボックスでシート操作とデータ転記 VBA-アイキャッチ ExcelVBA

ユーザーフォームのコンボボックスにすべてのシート名を表示して、ユーザーが入力したデータを転記する方法をご紹介します。

ぜひお試しください😉

ユーザーフォーム作成

ユーザーフォームを作成します。


 

Excelシート概要

A~Eのシートが5枚存在します。
全シートが同じフォーマットです。
Aシートに「ユーザーフォームを開く」ボタンを設置します。


 
 

Excelシートにマクロボタン設置

「A」シートにマクロボタンを設置します。


 

以下コードを標準モジュール「Module1」に入力して、
ボタンをクリックしたときに、ユーザーフォームが開くようにします。


Sub ボタン1_Click()
    UserForm1.Show vbModeless
End Sub

 

マクロコードを「Module1」に入力した画面


 
 

マクロコードを入力

マクロコードを「UserForm1」に入力します。


Option Explicit

Private Sub UserForm_Initialize()
    Dim sht As Worksheet

    ' ワークブック内のすべてのシート名をコンボボックスにロード
    For Each sht In ThisWorkbook.Sheets
        ComboBox1.AddItem sht.Name
    Next sht
End Sub

Private Sub CommandButton1_Click()
    Dim ws As Worksheet
    Dim lastRow As Long

    ' コンボボックスの選択を確認
    If ComboBox1.Value = "" Then
        MsgBox "シートが選択されていません。", vbExclamation
        Exit Sub
    End If

    ' 選択されたシートを取得
    Set ws = ThisWorkbook.Sheets(ComboBox1.Value)

    ' 最終行を取得
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row + 1

    ' テキストボックスの値があれば転記
    If TextBox1.Value <> "" Then ws.Cells(lastRow, 1).Value = TextBox1.Value ' 日付
    If TextBox2.Value <> "" Then ws.Cells(lastRow, 2).Value = TextBox2.Value ' テキストボックス2
    If TextBox3.Value <> "" Then ws.Cells(lastRow, 3).Value = TextBox3.Value ' テキストボックス3
    If TextBox4.Value <> "" Then ws.Cells(lastRow, 4).Value = TextBox4.Value ' テキストボックス4
    If TextBox5.Value <> "" Then ws.Cells(lastRow, 5).Value = TextBox5.Value ' テキストボックス5

    ' コンボボックスとテキストボックスをクリア
    ComboBox1.Value = ""
    TextBox1.Value = ""
    TextBox2.Value = ""
    TextBox3.Value = ""
    TextBox4.Value = ""
    TextBox5.Value = ""
End Sub

 

マクロコードを入力する場所「UserForm1」


 

動作

ユーザーフォーム上の「コンボボックス1」には、
開いているワークブック内の全てのシート名が表示されます。

一覧から一つのシート名を選択します。


 

「テキストボックス1」から「テキストボックス5」に値を入力します。
ここでは「テキストボックス1」に日付、
「テキストボックス2~5」には文字を入力します。

その後、実行ボタン(CommandButton1)をクリックします。


 

選択したシートの最終行にデータが転記されます。
データ転記後、コンボボックスとテキストボックスは自動的にクリアされ、
次の入力のためにリセットされます。


 
 
この記事がお役に立ちますと幸いです🍀
 
・【ExcelVBA】ユーザーフォーム作成の事例まとめ
 

【VBAユーザーフォーム】何ができるの?:使用例34選
...

 

「今すぐ使えるかんたんmini Excel マクロ&VBAの基本と便利がこれ1冊でわかる本」
基礎から応用まで丁寧に解説されており、VBAの初心者も安心して学ぶことができる
実務に直結する便利なワザを豊富に紹介。日々の業務を効率化する技術が満載!