- ベストアンサー
拡張子を決めてから保存するには
こんにちわ。 ここのサイトで参考にさせてもらったコードを使ってファイルを保存する際に拡張子をつけて保存したいのですがよく分からなかったので、教えてもらえるとたすかります。 以下はコードです。 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となって、そのファイルをすぐに開けるようにしたいです。 初心者ですがよろしくおねがいします。
- みんなの回答 (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も明示的に設定しといた方が良いかも。 あ、キャンセルは実装してるのか。冗長でしたね。 折角書いたので残しときます(汗)
その他の回答 (1)
- hayahayahaya
- ベストアンサー率36% (41/113)
(1).ファイル名に拡張子がつくように (CommonDialog1.FileName = "ABCD.txt") 保存するか、 (2).CommonDialog1.DefaultExtに ".txt"をセットして CommonDialog1.filename & CommonDialog1.DefaultExt とする。 ただし(2)の場合は拡張子が二重につくのを防ぐために Right$(CommonDialog1.filename,Len(CommonDialog1.DefaultExt)) が CommonDialog1.DefaultExtと同一かどうか判断する必要があるでしょう。
お礼
早い回答ありがとうございました。 CommonDialogの設定について調べてみることにしますね。
お礼
すごく分かりやすかったです。 With CommonDialogを調べてたので、丁度いいサンプルになりました。 みなさんどうもありがとうございました。