教えて!ExcelVBA!

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

【ExcelVBA ブック操作】現在アクティブなファイル名を取得(ActiveWorkBook.Name)するにはどうすればいいの?教えて!

構文

構文は以下の通りです。

ActiveWorkBook.Name

解説

ActiveWorkBook.Nameは、現在アクティブなワークブックの名前を取得するために使用されるプロパティです。ActiveWorkbookは、現在アクティブなワークブックを表し、Nameはそのワークブックの名前を表します。ActiveWorkBook.Nameの構文は以下の通りです。

使い方

ActiveWorkBook.Nameは、文字列型の値を返すため、取得した値を変数に代入したり、メッセージボックスで表示することもできます。以下は、ActiveWorkBook.Nameを使用して、現在アクティブなワークブックの名前をメッセージボックスで表示する例です。

Sub GetActiveWorkbookName()
    Dim wbName As String
    wbName = ActiveWorkbook.Name
    MsgBox "現在アクティブなワークブックの名前は " & wbName & " です。"
End Sub

このコードを実行すると、現在アクティブなワークブックの名前がメッセージボックスに表示されます。例えば、アクティブなワークブックの名前が「Book1」の場合、メッセージボックスには「現在アクティブなワークブックの名前は Book1 です。」と表示されます。

プログラミング例

以下は、ActiveWorkBook.Nameを使用して、現在アクティブなワークブックの名前を取得し、それを別のワークブックに出力する例です。

Sub OutputActiveWorkbookName()
    Dim wbName As String
    wbName = ActiveWorkbook.Name
    Workbooks("Book2.xlsx").Sheets("Sheet1").Range("A1").Value = wbName
End Sub

このコードを実行すると、現在アクティブなワークブックの名前が、Book2.xlsxのSheet1のA1セルに出力されます。この例では、ActiveWorkbook.Nameで取得した値を変数に代入し、それを別のワークブックに出力しています。

また、ActiveWorkbook.Nameは、ファイル名だけでなく、パスを含めた完全なファイルパスを取得することもできます。以下は、ActiveWorkbook.PathとActiveWorkbook.Nameを組み合わせて、現在アクティブなワークブックの完全なファイルパスを取得する例です。

Sub GetActiveWorkbookPath()
    Dim fullPath As String
    fullPath = ActiveWorkbook.Path & "" & ActiveWorkbook.Name
    MsgBox "現在アクティブなワークブックの完全なファイルパスは " & fullPath & " です。"
End Sub

このコードを実行すると、現在アクティブなワークブックの完全なファイルパスがメッセージボックスに表示されます。例えば、アクティブなワークブックが「C:\Users\username\Documents\Book1.xlsx」の場合、メッセージボックスには「現在アクティブなワークブックの完全なファイルパスは C:\Users\username\Documents\Book1.xlsx です。」と表示されます。

まとめ

ActiveWorkbook.Nameは、現在アクティブなワークブックの名前を取得するために使用されるプロパティです。このプロパティは、文字列型の値を返し、取得した値を変数に代入したり、メッセージボックスで表示することができます。また、ActiveWorkbook.Pathと組み合わせて、現在アクティブなワークブックの完全なファイルパスを取得することもできます。