• ベストアンサー

拡張子を決めてから保存するには

こんにちわ。 ここのサイトで参考にさせてもらったコードを使ってファイルを保存する際に拡張子をつけて保存したいのですがよく分からなかったので、教えてもらえるとたすかります。 以下はコードです。 CommonDialog1.ShowSave Open CommonDialog1.FileName For Binary As #1 Put #1, , Text2.Text Close #1 Exit Sub aaa: If Err.Number = 32755 Then MsgBox "キャンセル" End If これだとtext2.txtの内容をファイル名を決めて保存できるのですが、出来上がったファイルが拡張子のなにも無いファイルでした。 開く際にいちいちプログラム選択しなきゃならないので、どこを変えればいいか教えてください。 例を挙げるとすべてテキストファイルとして保存したいので、"text1"と言う名前で保存した場合にtext1.txtとなって、そのファイルをすぐに開けるようにしたいです。 初心者ですがよろしくおねがいします。

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

  • ベストアンサー
noname#227796
noname#227796
回答No.2

#1で既に回答されてますが、あとはフィルターをかけとくのもいいでしょうね。 CommonDialog1.Filter = "テキストファイル(*.txt)|*.txt" CommonDialog1.FilterIndex = 1 設定が多くなったのと、キャンセル押した場合を考えて、まとめると。。。 On Error GoTo ErrCancel With CommonDialog1  .CancelError = True  .DialogTitle = "保存ファイル名指定"  .DefaultExt = ".txt"  .Filter = "テキストファイル(*.txt)|*.txt"  .FilterIndex = 1  .ShowSave End With '保存処理 ErrCancel:  MsgBox "キャンセル" こんな感じ。 あとは、Flagsも明示的に設定しといた方が良いかも。 あ、キャンセルは実装してるのか。冗長でしたね。 折角書いたので残しときます(汗)

mari1215
質問者

お礼

すごく分かりやすかったです。 With CommonDialogを調べてたので、丁度いいサンプルになりました。 みなさんどうもありがとうございました。

その他の回答 (1)

回答No.1

(1).ファイル名に拡張子がつくように  (CommonDialog1.FileName = "ABCD.txt") 保存するか、 (2).CommonDialog1.DefaultExtに ".txt"をセットして CommonDialog1.filename & CommonDialog1.DefaultExt とする。 ただし(2)の場合は拡張子が二重につくのを防ぐために Right$(CommonDialog1.filename,Len(CommonDialog1.DefaultExt)) が CommonDialog1.DefaultExtと同一かどうか判断する必要があるでしょう。

mari1215
質問者

お礼

早い回答ありがとうございました。 CommonDialogの設定について調べてみることにしますね。

関連するQ&A

専門家に質問してみよう