
■ 参照と開くの違い
FileDialogのmsoFileDialogFilePicker:参照(ファイル)とmsoFileDialogOpen:ファイルを開くって何が違うのかなって思ってたのですが、どうやら文字通りの意味らしいです。
■ ファイルを開く
こんな感じで、msoFileDialogOpenを指定してファイルを選択します。
With Application.FileDialog(msoFileDialogOpen)
If .Show = True Then
'選択したファイルを開く
.Execute
End If
End With
test.xlsxってExcelファイルを選択します。

すると、選択したファイルが起動されました。

Executeメソッドを使う事で、選択したファイルを開く事までをやってくれるようです。
■ 参照だと...
今度は、msoFileDialogFilePickerを設定してExecuteメソッドを実行してみます。
With Application.FileDialog(msoFileDialogFilePicker)
If .Show = True Then
'選択したファイルを開く
.Execute
End If
End With
すると、Executeメソッドでエラーが発生しました。

なるほど、そういう違いがあるようですね。
■ 後書き
ExecuteメソッドでExcel以外のファイルを選択すると、そのファイルの実体がなんであれ、無理やりExcelで開いてくれます。
テキストファイルなら良いのですが、選択されたのがExcelと一切関係ないファイルだと、なかなか面白いモノが見れます。
...いや、見れちゃ困るんですけどね。
ってことで、FileDialogを使用してファイルオープンまでの処理を実行させたいなら、Executeメソッドの実行前に、何らかのチェック処理(拡張子とか)を付けておいた方が無難かと思います。
前回:Excelマクロでファイルやフォルダを選択 №4 ファイル参照(複数ファイル)
次回:Excelマクロでファイルやフォルダを選択 №6 保存
目次:目次
--- blog end ---
スポンサードリンク


