まさ工房

ExcelVBAとAcessDBを利用した業務支援ツールを作成する工房です

【Excelマクロ・VBA】ファイル名を取得するにはどうすればいいの?教えて!

       f:id:m_kbou:20190528064038p:plain

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

 

【目次】

 

構文

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

(1)ThisWorkbookの記述方法

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

ThisWorkBook.Name

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

[説明]:

「このブックの名前を取得して下さい。」との意味になります。 

 

(2)ActiveWorkBookの記述方法

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

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は現在表示されている(アクティブ)になっているブック名が取得されます。似ている様で意味が違うため、間違った使い方をしないよう、使い方には気を付けて下さい。