Excelで作業をしている際、ユーザーから入力を受けてデータをフィルタリングし、特定のセルをコピーする作業をマクロで自動化することができます。この記事では、インプットボックスを使用してユーザーから番号を入力させ、特定のセルに反映し、その後フィルターをかけて抽出したデータをクリップボードにコピーする方法を解説します。
インプットボックスでユーザーから番号を入力させる
まずは、インプットボックスを使用してユーザーから番号を入力させ、その値をG1セルに反映させるコードを紹介します。インプットボックスは、ユーザーから直接入力を受け付ける非常に便利な機能です。
1. インプットボックスを使って番号を入力させる
以下のVBAコードを使用して、インプットボックスを表示させ、ユーザーが入力した値をG1セルに反映させることができます。
Sub GetInputValue()
Dim userInput As String
userInput = InputBox("番号を入力してください", "番号入力")
Range("G1").Value = userInput
End Sub
このコードは、インプットボックスを表示し、ユーザーが入力した値をセルG1に反映させます。
フィルターを使用して特定のデータを抽出
次に、ユーザーが入力した番号に基づいてフィルターをかけ、特定のデータを抽出します。対象となるのは「Book1」というファイルの「Sheet1」にあるB2セルの内容です。
2. フィルターをかける
以下のコードは、ユーザーがG1セルに入力した番号を元にフィルターをかける方法を示しています。これにより、特定の番号に一致するデータのみが表示されます。
Sub ApplyFilter()
Dim filterValue As String
filterValue = Range("G1").Value
Sheets("Sheet1").Range("B2:B100").AutoFilter Field:=1, Criteria1:=filterValue
End Sub
このコードは、シート「Sheet1」のB2セルに入力された番号に基づいて、フィルターを適用します。
抽出したデータをクリップボードにコピー
フィルターで絞り込んだデータから、D列のセルをクリップボードにコピーする方法を紹介します。この手順により、特定のデータを簡単にコピーして、他のアプリケーションで使用できるようになります。
3. クリップボードにデータをコピーする
以下のコードは、フィルターで抽出したD列のデータをクリップボードにコピーする方法です。
Sub CopyFilteredData()
Dim cell As Range
Dim copyRange As Range
On Error Resume Next
Set copyRange = Range("D2:D100").SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If Not copyRange Is Nothing Then
copyRange.Copy
End If
End Sub
このコードは、フィルターで絞り込まれたD列のデータをクリップボードにコピーします。
まとめ:ユーザー入力からデータ抽出までの一連の操作を自動化
Excelマクロを使用して、インプットボックスでユーザーに番号を入力させ、その番号に基づいてフィルターをかけ、データをクリップボードにコピーする一連の作業を自動化することができました。これにより、手作業で行っていたフィルター処理やデータ抽出が迅速に行えるようになります。


コメント