• 締切済み

VBA ダイアログボックスからファイルの保存

VBAでプログラムを書いているのですが、ファイルをダイアログボックスを表示させ名前を付けてファイルを保存したいです。 その際に、もしすでに同じファイル名があったら保存させないように、メッセージなどを表示させ、必ず違う名前で保存するような処理にしたいのですが・・・。 方法を教えてください。 よろしくお願いします。

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

何処まで自動化するかを明確にしましょう 上書きをさせたくないのであれば 別名をどのように生成するのかをはっきりさせましょう たとえば Bookといった接頭語と連番といった具合で作るとか これだと Dir関数などで現在のカレントフォルダ内を検索して何番まで使っているのかなどを調べる必要があります

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

Sub test04() '処理を書く Application.Dialogs(xlDialogSaveAs).Show End Sub たた1行でよいはず。 エクセルシステムに乗っかるような使い方です。 このほか http://www.excel7.com/personal/vba_shiryou1.htm 「application.dialogs」でググれば、何万も記事があるそうな。 >同じファイル名があったら保存させないように、・・ は通常エクセルを使っているときと同じです。警告も出ます。 上記ダイアログの応答で操作として、ファイル名を指定したら、プログラム作成者側で、ファイル保存のメソッドを書く必要はありません。注意。

関連するQ&A

  • エクセル、VBAを使ってのファイル保存。

    エクセルでファイル(既存)を開いたら まず「名前を付けて保存」をして 新しく作ったファイルで作業を進めたいのですが 毎回保存のファイル名が変わるので 固定の名前での記述(VBA)が出来ません。 そこで、保存手前の段階である ダイアログボックスを表示させた状態で終わらせる というマクロは出来るのでしょうか? (保存先を決めたりファイル名を入力する状態) 色々試してみたのですが、どうにもうまく行かず… 皆さんの知恵をお借りしたいです。 宜しくお願いします。

  • ExcelのVBAで上書き保存を確認したい

    VBAでGetSaveAsFilename メソッドを使うと、[名前を付けて保存]ダイアログボックスがでます。 ここでファイル名を指定するのですが、このとき同フォルダ内に同ファイル名があった場合でも、何のメッセージボックスもださずに上書きされてしまいます。 同フォルダ内に同ファイル名があった場合のみ、「上書き保存しますか?」というメッセージボックスをだしたいのですが、どのようにしたらよいでしょうか。 教えてください。 よろしくお願いします。

  • ダイアログボックス

    VB6.0で開発しています。 下記のようにして名前を付けて保存]ダイアログボックスを使って 保存しようと思っているのですが ダイアログボックスが開くとファイル名のところに:が表示されており :のままでキャンセルを押すとFalse.xlsという名前でマイドキュメントに保存されてしまいます。何が原因なんでしょうか? お願いします。 exl.Sheets(1).Name = "Sheet1" exl.Application.Visible = True fnm = Application.GetSaveAsFilename(fileFilter:="Excel ファイル (*.xls), *.xls") exl.SaveAs fnm

  • 「名前をつけてファイルを保存」で保存する:VB.NET

    テキストボックスの内容をテキストファイルに書き込んで保存するプログラムを作っています。 1.指定した場所に指定したファイル名で保存する 2.「名前をつけて保存する」ダイアログを表示する 以上の2つについては分かったのですが、いわゆるメモ帳のようにメニューバーからファイル→名前をつけて保存ダイアログを開き、任意の場所にテキストボックスの内容を書き込んだテキストファイルを作成する方法が分かりません。 分かる方がいらっしゃいましたらご教授下さい。

  • ダイアログボックスのアイコンについて

    zipファイル等をダウンロードする際に表示される 「開く」「保存」「キャンセル」と出る ダイアログボックスなのですが このダイアログボックスの左上に表示されてるアイコンを 変える事はできるのでしょうか? いろいろ調べて見たのですが分かりませんでした よろしくお願いします

  • VBAで「名前を付けて保存」ダイアログ

    プロシージャで、「名前を付けて保存」ダイアログを表示させて、[.csv]形式で保存するという記述をしたいのですが、うまくいきません。 望む手作業的プロセスは次のような感じです。 1.保存したいシートをアクティブにする 2.「ファイル」→「名前を付けて保存」 3.ファイル名を「サンプルエクスポート」と入力 4.ファイルの種類で「CSV(カンマ区切り)」を選択 こうすると、「選択した種類のファイルは複数の複数のシートを含むブックをサポートしていません。」注意メッセージがでるので、OKをして、次の注意メッセージもOKすると、数値データとしてのcsvファイルがアクティブシート分だけ出来ます。 これをVBAで再現したいのです。 以下、具体的な記述です。 ------------------------------ Sub エクスポートの実行() Dim 既定ファイル名 As String Dim 保存ファイル名 As Variant 既定ファイル名 = "サンプルエクスポート.csv" 保存ファイル名 = Application.GetSaveAsFilename(既定ファイル名, "CSV(カンマ区切り)(*.csv),*.csv") If 保存ファイル名 = False Then MsgBox "保存は中止されました" Else ActiveWorkbook.SaveCopyAs 保存ファイル名 End If End Sub ------------------------------- ■上記の記述でうまくいかないのが、実際に保存された[.csv]ファイルに全てのシートが保存されていて、関数も入っているということです。実際に拡張子は[.csv]となって保存されていますが、中身は[.xls]となんらかわっていないように見えます。 構文が良くわかっていないのだと思うので、上記のプロシージャで具体的な修正方法を教えていただけると助かります。 要は、手作業ではなくVBAを利用してエクスポートデータを作りたいというのが目的です。

  • リストボックスのリストをコモンダイアログを使って保存

    タイトルにあるようにリストボックスの内容をテキストファイルにコモンダイアログを使って保存したいのですが、どのようにするのでしょうか? ちなみにコモンダイアログの「名前をつけて保存」は表示させることが出来ます。 宜しくお願いします

  • ダイアログボックス?メッセージボックスですか?

    用語がわからないので教えてください。 vbaで Sub インプット() InputBox ("インプットです") End Sub で表示されるボックスは ダイアログボックスですか? メッセージボックスですか?

  • スクリプトからファイル保存ダイアログボックスを出すには

    FlashからPHPにデータを渡し、その内容を成形してHTMLファイルを作り、ファイル保存ダイアログボックスを表示させて保存させたいと考えています。 FlashからPHPにデータを渡すのはいいとして、その後の動作をどのようにして実現するのかさっぱり思いつかないのですが、何かヒントはないでしょうか。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 名前を付けて保存ダイアログボックスが表示されない

    Windows8のWord、Outlook2010で、ファイルやメールを保存しようとした時に、「名前を付けて保存」ダイアログボックスが表示されなくなってしまいました。いろいろと対策を検索しましたが、見つかりません。このような現象に対する情報、対策をお持ちでしたら、お教えいただけませんでしょうか。よろしくお願いいたします。

専門家に質問してみよう