• ベストアンサー

エクセルVBAの「組み込みダイアログボックス」の使用法?

いつもありがとうございます。 組み込みダイアログボックスについて教えてください。 エクセルのシート内容をCSV形式で保存する場合、組み込みダイアログボックスを使い、下記のマクロでうまく行きました。 Sub CSV保存() '~略~ Application.Dialogs(xlDialogSaveAs).Show ARG2:=6 '~略~ End Sub 試した結果、上記の組み込みダイローグのファイルの種類のデフォルトは ARG2:=の次の値が6でcsv、1でエクセルになるようでした。 次に、エクセルを開いた状態でCSVファイルを開こうと思い、同様に組み込みダイアローグを使用するため下記のマクロを作りました。ところがうまくいきません。 Sub CSVdata取得() Application.Dialogs(xlDialogOpen).Show ARG2:=6 End Sub ・・・・と記述するとエラーになります。 この場合、どうも ARG2:=6の6の数字のところが4以上はエラーとなるようです。 ARG2:=の次の値を1~3にするとエラーにはなりませんが、デフォルトはいずれもエクセルでした。 最初からファイルの種類をCSV形式にするにはどう記述したらよいのでしょうか? どうかお助けください。

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

  • ベストアンサー
  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.3

>Application.Dialogs(xlDialogOpen).Show arg1:="*.csv" これではまずいのですか? とりあえずファイルの種類は「テキストファイル」になるみたいですが。 ファイル名を空白のままにしておきたいのですかね?

AQUALINE
質問者

補足

>とりあえずファイルの種類は「テキストファイル」になるみたいですが。 ファイル名は、*.csvと表示されるんですが、その下のファイルの種類はエクセルのまま変らないんですよ~。 もちろんそこでCSVを選ぶことは出来ますが。 そしていちどCSVを選ぶと次回もCSVになったままなんですよ。

その他の回答 (3)

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.4

No.2ですが、ごめんなさい。違ったみたい。 ARG2:=6 の替わりということで Show(file_text) と思ったけど違いますね。 Application.Dialogs(xlDialogOpen).Show("*.csv") と Application.Dialogs(xlDialogOpen).Show arg1:="*.csv" は同じだと思いますが、これではダメなのですか? CSVだけ表示されますが・・・

AQUALINE
質問者

補足

> CSVだけ表示されますが・・・ あれえ!ほんとですねえ。 ダイアローグボックスの「ファイルの種類(T)」がエクセルファイルのままになっていたので気づきませんできたが、表示されてるファイルはちゃんとCSVになってましたね! ということは実用上これで問題はありません。 ファイル種類のところは無視しちゃえばいいわけですもんね。 ありがとうございました。

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.2

Application.Dialogs(xlDialogOpen).Show(file_text) でいいと思いますが・・・

AQUALINE
質問者

補足

ありがとうございます。 やってみましたがダイアローグのファイルの種類のデフォルトはエクセルのままでした。

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.1

組み込みのダイアログボックス  Application.Dialogs~ では、ファイルの種類を指定することはできません。 その代わり、  Application.GetOpenFilename~ を使うと、指定することができます。 ただし、その場合は、開く処理を自前で用意する必要があります。 [例] Sub CSVdata取得() Dim strFileName As String  strFileName = Application.GetOpenFilename(FileFilter:="CSVファイル (*.csv), *.csv")  MsgBox strFileName '確認 End Sub

AQUALINE
質問者

補足

昨日(CSV形式での保存)に引き続き、またまたありがとうございます。 いろいろ試行錯誤を重ね、 Application.Dialogs(xlDialogOpen).Show arg1:="*.csv" で、ファイル名のところに「*.csv」を表示させるところまでは行ったのですが、ファイルの種類はやはり無理ですか。無理ならApplication.GetOpenFilenameでやるしかないですね。開く処理を自前で用意できるかやってみます。 ありがとうございました。

関連するQ&A