EXCELでファイルを開く場合は
通常 ファイルが保存されている場所を
開いて選択したいファイルを
ダブルクリックします

 

自動マクロを見ると

 

Workbooks.Openメソッド
ファイル名をフルパスで指定する
これだけです

 

これはこれで大変便利なのですが
指定したファイルが存在することが
前提条件となっています

 

つまり
ファイルが存在しないと
エラーになるということです

プログラムが止まってしまうのは
避けたいですね


また
汎用性を高めて開くファイルを
選択したいケースもでてきます

 

このマクロで
ファイル名を“*.xlsx”と書き換えたら
うまく動くでしょうか?
結果は

 

不正解でした

Workbooks.Openメソッドは
存在するファイル名を指定しないと
エラーとなることが確認できました

それでは
下図のようなファイルの開き方は
どうすればいいのでしょうか?

 

検索すると
Application.GetOpenFilename メソッドが見つかりました

 

このメソッドは
名前の通り開くファイル名を取得するもので
じっさいにはファイルを開きません
リファレンスを要約すると

 

この機能はとても便利なので
しっかりと理解して使いこなして下さい

 

まずは必須指定を確認すると
すべての項目で省略可となっています

 

つまり
Application.GetOpenFilename
と引数なしで使えるということです

 

test01マクロを実行すると

 

前回のファイルを開く画面とは
内容が違います

 

これはカレントドライブ、
カレントフォルダーを
指定しない場合は
現在選択されているものを
参照して開くからです

 

ドキュメントを開きたいのであれば
僕の場合は「D:」ドライブに
ドキュメントを置いていますので

ChDriveとは
ドライブを変更する命令です

ChDirとは
ディレクトリを変更する命令です

この青枠内の書き方を覚えて下さいね

一度この形式で「ファイルを開く」を
表示させればあとは
いつもと同じように
別のディレクトリやドライブに
移動してファイルを開くことも
可能になります

ところで
ファイルを開く画面の左上
黄枠には
EXCELのロゴマーク付きで
「ファイルを開く」と書いてあります

そして
右下の青枠には
「すべてのファイル(*.*)」
と書いてあります

 

EXCELファイルが
開けるのは当然として
EXCEL以外のファイルも
開けそうな感じがするので
確かめてみると

結果は不可能でした

当然の結果とはいえ
青枠にはEXCELファイルを
指定して
EXCELファイル以外を

表示しない設定にすることが
ミス防止につながります

このファイル形式の指定が
パラメーターのFileFillterです

詳細については次回とします

http://okheeoffice.com/study-vba/0049


Microsoft Office ブログランキングへ