こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ExcelVBA:自己のBook名を取得したい

WindowsXP-Proです。
Excelヴァージョンは2003です。

ExcelVBAでコーディングしています。
で、自分自身(つまり、このVBAコードを記述しているExcel本体)のBook名を取得したいのですが、何か関数は用意されていますでしょうか?

自分自身のBook名を取得したい理由は、VBAコードを記述しているExcel本体のファイル名(Book名)の名前が変更されても、VBAが正常に機能するように、今現在のBook名を取得したいのです。

複数のExcelファイルを、このVBAで操作しているため、
Workbooks("本体のBook名").Activate
を用いており、仮にファイル名(本体のBook名)の名前が変更されても、VBAが正常に機能できるように、"本体のBook名"部分を固定ではなく、可変で持てるようにしたいからです。

投稿日時 - 2007-07-20 10:55:18

QNo.3183766

困ってます

質問者が選んだベストアンサー

Public Sub Auto_Open()
  MsgBox ActiveWorkbook.Name
  MsgBox ThisWorkbook.Name
End Sub

Private Sub Workbook_Open()
  MsgBox Me.Name
End Sub

いずれも、ブック名が表示されました。

投稿日時 - 2007-07-20 11:31:34

お礼

必要に応じて、使い分けてみます。
ありがとうございました。

投稿日時 - 2007-07-20 11:48:03

このQ&Aは役に立ちましたか?

5人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

単純にMe.Nameじゃだめなんですか?

投稿日時 - 2007-07-20 11:21:41

お礼

以前のヴァージョンのVBA記述で見た記憶がありました。
ありがとうございました。

投稿日時 - 2007-07-20 11:46:37

次の記述でフルパス名が得られます。
ThisWorkbook.FullName

VBAが記述されているbookというより、いま対象としているbookのフルパスになるような気がしますが、そこはアレンジして下さい。

投稿日時 - 2007-07-20 11:10:11

お礼

フルパスでの取得もできるんですね。
ありがとうございました。

投稿日時 - 2007-07-20 11:45:49

あなたにオススメの質問