Excel VBAで特定シートのみをA2セルの値でファイル保存する方法

Visual Basic

Excelで複数シートがある場合、特定のシートだけを新しいファイルとして保存したいことがあります。さらに、その保存名をシート内のセルの値にしたり、保存先のフォルダを指定したりする方法もVBAで実現可能です。本記事では、シートBだけをA2セルの値でデスクトップの指定フォルダに保存する手順を解説します。

シートをコピーして新規ブック作成

まず、保存したいシート(例:シートB)をコピーして新しいブックを作ります。VBAでは以下のように記述できます:
Sheets("シートB").Copy

この操作により、コピーしたシートだけが含まれる新しいブックが作成されます。

保存名をA2セルの値にする

新しいブックで、シートBのA2セルにある値を取得し、保存ファイル名として使用します。例:
FileName = ActiveSheet.Range("A2").Value & ".xlsx"

この方法で、セルに入力された8桁の受付番号をそのままファイル名として利用できます。

保存先フォルダを指定する

保存先のフォルダをデスクトップの『受付台帳』に指定する場合、パスを設定します:
FilePath = Environ("USERPROFILE") & "\Desktop\受付台帳\" & FileName

これで、新しいブックは指定したフォルダにファイル名付きで保存されます。

完全なVBAコード例

以下は、シートBだけをA2セルの値で保存するサンプルコードです。

Sub SaveSheetB()
Dim FileName As String
Dim FilePath As String
Sheets("シートB").Copy
FileName = ActiveSheet.Range("A2").Value & ".xlsx"
FilePath = Environ("USERPROFILE") & "\Desktop\受付台帳\" & FileName
ActiveWorkbook.SaveAs FilePath, FileFormat:=xlOpenXMLWorkbook
ActiveWorkbook.Close
End Sub

まとめ

VBAを使えば、複数シートがあるブックから特定シートだけを抽出し、セルの値をファイル名にして指定フォルダに保存することができます。手順としては、シートをコピー→セル値でファイル名設定→保存先指定→保存という流れです。

この方法を応用すれば、複数のシートを順番に保存したり、他の条件に基づいたファイル名設定も可能です。

コメント

タイトルとURLをコピーしました