実行中のフォルダを取得する

Pocket

マクロを実行して、フォルダやファイルを指定する場合には、ダイアログを表示して選択するようにします。この場合は「FileDialog」を使います。
しかし、そのマクロが書かれたファイルと同じフォルダ内のファイルを指定する場合は、ダイアログで一々選択するのは面倒です。

さて、ヘルプには「CurDir」を使えば「現在のフォルダ」が取得できると書かれています。
ところで「現在のフォルダ」とは何でしょうか。人によっては実行している「現在実行中のマクロが書かれているファイルがあるフォルダ」と考えるかもしれませんが、違います。
「現在のフォルダ」とは「ファイルを開く」ダイアログに最初に表示されるフォルダです。
つまりExcelを使っている間に変わってしまうのです。

ここで使えるのが「ThisWorkbook」です。
「ThisWorkbook」は「現在実行中のマクロコードが記述されているブック」を表します。
次のように使います。

コード 内容
ThisWorkbook.Path パス D:\Data
ThisWorkBook.Name ファイル名 テスト.xls
ThisWorkBook.FullName フルパス(ファイル名まで) D:\Data\テスト.xls

コード例は次の通りです。

mydir = ThisWorkbook.Path
mypath = mydir & "¥サンプル.txt"
Open mypath For Input As #1

[ 2010年12月2日 | カテゴリー: Excel | タグ: ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報