教えて!ExcelVBA!

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

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

       f:id:m_kbou:20200418124458p:plain

ファイル名を取得する記述方法には2つあります。それぞれについて説明します。

 

【目次】

 

構文

記述方法は、以下の通りとなります。

(1)ThisWorkbookの記述方法

=======================================================================

ThisWorkBook.Name

=======================================================================

[説明]:

現在マクロ(VBA)を実行しているファイル名を取得するには「ThisWorkBook.Name」と記述します。内容を纏めると、「マクロを実行しているこのファイル名を取得して下さい。」との意味になります。 

 

(2)ActiveWorkBookの記述方法

=======================================================================

ActiveWorkBook.Name

=======================================================================

[説明]:

現在表示(アクティブ)されているファイル名を取得するには「ActiveWorkBook.Name」と記述します。内容を纏めると、「現在表示(アクティブ)されているファイル名を取得して下さい。」との意味になります。※ブックを複数開いている場合、その中で選択されている(アクティブ)になっているファイル名を取得します。

 

使い方

使い方について、具体的に説明していきます。

ThisWorkbookの使い方

ThisWorkbookの使い方について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    MsgBox ThisWorkbook.Name
End Sub

-------------------------------------------------

内容は、「マクロを実行しているこのファイル名を取得し、結果をMsgBoxで表示して下さい。」との意味になります。

[実行例]:

f:id:m_kbou:20190528064100p:plain

ThisWorkbookの使い方についての説明は以上です。

 

ActiveWorkBookの使い方

ActiveWorkBookの使い方について説明します。

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    MsgBox ActiveWorkbook.Name
End Sub

-------------------------------------------------

内容は、「現在表示(アクティブ)されているファイル名を取得し、結果をMsgBoxで表示して下さい。」との意味になります。

[実行例]:

f:id:m_kbou:20190528064100p:plain

ActiveWorkBookの使い方についての説明は以上です。

 

おわりに

ThisWorkbookとActiveWorkBook共に結果は同じように見えますが、違いとしては、ThisWorkbookは現在マクロが実行されているファイル名が取得され、ActiveWorkBookは現在表示(アクティブ)されているファイル名が取得されます。似ている様で意味が違うため、間違った使い方をしない様に注意して下さい。