Excel

【Excel】VBAマクロで名前を付けて保存の保存先を指定する方法: ダイヤログ、デスクトップ、絶対パス指定【Workbooks.SaveAsメソッド】

当サイトでは記事内に広告を含みます

この記事ではExcelのVBAマクロを使用して、特定の保存先を指定してファイルを保存する方法について解説します。

ポイントとしては、Workbooks.SaveAsメソッドとApplication.GetSaveAsFilename関数を使うことです、

初心者にもわかりやすくするために変数名を変わったものにしていますので、使用時はご変更ください。

VBAを用いて保存先をダイヤログで指定する方法、デスクトップに指定する方法、そして特定のパスに保存する方法を学んでいきましょう!

VBAマクロで保存先を指定(ダイヤログ)し保存する方法

それではまず、ダイヤログで保存先を指定する方法について解説していきます。

ユーザーが任意の場所を選択できるようにすることで、より柔軟なファイル管理が可能になります。

Alt + F11にてVBE画面を開いて、以下のコードをコピペしましょう。


Sub SaveAsDialog()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    Dim saigoNoGyo As Long
    saigoNoGyo = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    Dim gokei As Double
    gokei = Application.WorksheetFunction.Sum(ws.Range("A2:A" & saigoNoGyo))
    ws.Cells(saigoNoGyo + 1, 1).Value = gokei

    Dim hozonbasho As Variant
    hozonbasho = Application.GetSaveAsFilename(FileFilter:="Excel Files (*.xlsx), *.xlsx")
    If hozonbasho <> False Then
        ThisWorkbook.SaveAs Filename:=hozonbasho
    End If
End Sub

コードのAlt+F8を押し、マクロ選択画面でSaveAsDialog関数を実行します。

このコードでは、A列の合計を計算し、最終行に結果を出力した後、ダイヤログを使用して保存先をユーザーに選択させ、その場所に新規ファイルとして保存します。

VBAマクロで保存先を指定(デスクトップ)し保存する方法

続いては、デスクトップにファイルを保存する方法について解説していきます。

デスクトップはアクセスしやすい場所なので、よく使用するファイルの保存先として便利です。

Alt + F11にてVBE画面を開いて、以下のコードをコピペしましょう。


Sub SaveToDesktop()
    ' ...(前のコードと同じ部分は省略)...
    Dim desktopPath As String
    desktopPath = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\MyNewFile.xlsx"
    ThisWorkbook.SaveAs Filename:=desktopPath
End Sub

コードのAlt+F8を押し、マクロ選択画面でSaveToDesktop関数を実行します。

このコードは新規Excelファイルをデスクトップに”MyNewFile.xlsx”という名前で保存します。

VBAマクロで保存先を指定(絶対パスで)し保存する方法【Cドライブ直下のtoolフォルダへ】

最後に、特定の絶対パスに保存する方法について解説していきます。

絶対パスを指定することで、常に同じ場所にファイルを保存することができ、自動化の一環として非常に有用です。

Alt + F11にてVBE画面を開いて、以下のコードをコピペしましょう。


Sub SaveToSpecificPath()
    ' ...(前のコードと同じ部分は省略)...
    Dim path As String
    path = "C:\tool\MyNewFile.xlsx"
    ThisWorkbook.SaveAs Filename:=path
End Sub

コードのAlt+F8を押し、マクロ選択画面でSaveToSpecificPath関数を実行します。

このコードは新規ExcelファイルをCドライブ直下の”tool”フォルダに”MyNewFile.xlsx”という名前で保存します。

まとめ VBAで保存先を指定して保存(デスクトップ、パス指定、ダイヤログ)する方法【Workbooks.SaveAsメソッド】

記事の中で使われた主な関数は、GetSaveAsFilename関数、SaveAsメソッドです。

これらを使って柔軟に保存先を指定し、効率的なファイル管理を実現しましょう。

そして、VBAのコードを書く際には、変数名を分かりやすく、そして記憶しやすいように工夫してみてください。それでは、ExcelとVBAでの作業がよりスムーズで楽しいものになりますように!