• ベストアンサー

エクセルのVBAについて

エクセルのVBAについて教えて下さい。 エクセルのVBAでプログラムを組んでいるのですが、一つわからないことがあるのです。 マクロが実行(オープン)されるファイル名(ファイルパス)をVBAで取得するためにはどうすればいいでしょうか? たとえば、マクロが実行されるファイルがC:\テスト.xlsならば "C:\テスト.xls"を取得したいと考えています。 どなたかご教授お願い致します。 宜しくお願い致します。

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

  • ベストアンサー
回答No.3

[Activeworkbook.Name]はマクロを実行しているブックが、アクティブになっている場合はそれでいいですが、 アクティブになっていない場合は(他のブックがアクティブになっている場合) Sub a() With ThisWorkbook flname = .Path If (Right(flname, 1) <> "\") Then flname = flname & "\" End If flname = flname & .Name End With MsgBox flname End Sub とすれば、マクロを実行しているファイル名が取得できます。 [path]はマクロのブックが、1度保存されていないとでません。 途中で[\]の操作がありますが、 例えば Cドライブのカレントディレクトリならば、[C:\]と取得できますが、 CドライブのWindowsフォルダならば、[C:\Windows]と終りに[\]が付いてきません そこで、終りに[\]があるか判断し、無ければ[\]を付ける操作をしています。

その他の回答 (2)

回答No.2

初めまして。次の式で取得できます。 変数 = ActiveWorkbook.Path & ActiveWorkbook.Name お試しになってみて下さい。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

ActiveWorkbook.Path とActiveWorkbook.Name かな。

関連するQ&A