社内SEの徒然なる日記

Excelマクロでファイルやフォルダを選択 №5 参照と開くの違い

■ 参照と開くの違い


FileDialogのmsoFileDialogFilePicker:参照(ファイル)とmsoFileDialogOpen:ファイルを開くって何が違うのかなって思ってたのですが、どうやら文字通りの意味らしいです。

■ ファイルを開く

こんな感じで、msoFileDialogOpenを指定してファイルを選択します。

With Application.FileDialog(msoFileDialogOpen)
If .Show = True Then
'選択したファイルを開く
.Execute
End If
End With


test.xlsxってExcelファイルを選択します。
Excelファイルフォルダ選択5_1

すると、選択したファイルが起動されました。
Excelファイルフォルダ選択5_2

Executeメソッドを使う事で、選択したファイルを開く事までをやってくれるようです。

■ 参照だと...

今度は、msoFileDialogFilePickerを設定してExecuteメソッドを実行してみます。

With Application.FileDialog(msoFileDialogFilePicker)
If .Show = True Then
'選択したファイルを開く
.Execute
End If
End With


すると、Executeメソッドでエラーが発生しました。
Excelファイルフォルダ選択5_3

なるほど、そういう違いがあるようですね。

■ 後書き

ExecuteメソッドでExcel以外のファイルを選択すると、そのファイルの実体がなんであれ、無理やりExcelで開いてくれます。

テキストファイルなら良いのですが、選択されたのがExcelと一切関係ないファイルだと、なかなか面白いモノが見れます。

...いや、見れちゃ困るんですけどね。

ってことで、FileDialogを使用してファイルオープンまでの処理を実行させたいなら、Executeメソッドの実行前に、何らかのチェック処理(拡張子とか)を付けておいた方が無難かと思います。

前回:Excelマクロでファイルやフォルダを選択 №4 ファイル参照(複数ファイル)
次回:Excelマクロでファイルやフォルダを選択 №6 保存
目次:目次

--- blog end ---

スポンサードリンク

PageTop

コメント


管理者にだけ表示を許可する
 

説明が独りよがり。
なにが「なるほど、そういう違いがあるようですね。」なんだか。
さっぱりわからない。

| URL | 2016-08-12(Fri)11:37 [編集]


Re: タイトルなし

> 説明が独りよがり。
> なにが「なるほど、そういう違いがあるようですね。」なんだか。
> さっぱりわからない。

こんなマイナーな記事にたどり着いたところを見ると、おそらく、FileDialogの使用方法とかで困っていた(いる)ってことでしょうか?

そうであるなら、まずはExcelのヘルプか、Microsoftの公開ドキュメントを漁った方が良いですよ。まぁ、その内容が意味不明だったから自力で検証した結果を記事を書いたのですが。

何が不満なのか理解に苦しみますので、参考のために貴方が書いたブログなりがあれば、それを参考にしたいです。ぜひURLなどを教えて下さい。お待ちしております。

ハリコフ | URL | 2016-08-12(Fri)20:48 [編集]