教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA ブック操作】アクティブなブックのパスを取得(ActiveWorkbook.Path)するにはどうすればいいの?教えて!

構文

構文は以下の通りです。

ActiveWorkbook.Path

解説

ActiveWorkbook.Pathは、Excel VBAで現在アクティブなワークブックの保存先のパスを取得するためのプロパティです。このプロパティは文字列型を返し、ファイル名を除いたディレクトリのパスを取得することができます。

使い方

以下の様な記述方法で使います。

Sub GetWorkbookPath()
    Dim filePath As String
    filePath = ActiveWorkbook.Path
    MsgBox "ワークブックの保存先パス:" & filePath
End Sub

上記のコードでは、ActiveWorkbook.Pathを使用してワークブックの保存先パスを取得し、その値をメッセージボックスに表示しています。

プログラミング例

以下に、ActiveWorkbook.Pathを使用したプログラミング例を示します。

Sub CopyFileToWorkbookPath()
    Dim sourcePath As String
    Dim destinationPath As String
    Dim fileName As String
    ' コピー元のファイルパスを指定
    sourcePath = "C:\Documents\SourceFile.xlsx"
    ' コピー先のフォルダパスをワークブックの保存先パスと結合
    destinationPath = ActiveWorkbook.Path & "\"
    ' コピー元のファイル名を取得
    fileName = Dir(sourcePath)
    ' ファイルをコピー
    FileCopy sourcePath, destinationPath & fileName
    MsgBox "ファイルをコピーしました。"
End Sub

上記のコードでは、指定したファイルをワークブックの保存先パスにコピーする例を示しています。ActiveWorkbook.Pathを使って保存先パスを取得し、コピー元のファイルパスと結合してコピー先のフォルダパスを作成しています。そして、Dir関数を使用してコピー元のファイル名を取得し、FileCopyステートメントを使ってファイルをコピーしています。

まとめ

ActiveWorkbook.Pathは、Excel VBAで現在アクティブなワークブックの保存先のパスを取得するための便利なプロパティです。このプロパティを使用することで、ワークブックが保存されているディレクトリのパスを取得することができます。例えば、ファイルのコピー操作やファイルの保存先の指定など、ファイルのパスを取得する際に役立ちます。