• 締切済み

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

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

みんなの回答

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.4

>「3月度」「4月度」という風にファイル名が変更している状態です。 下記のような方法もあります。 文字列関数で現在のファイル名を操作しても構いませんし、ファイル名の変更方法はいくつかあります。 Sub test() 'ファイル固定名 Dim Fname1 As String ' Dim NewName As String Fname1 = "売上集計" NewName = Format(Month(Date), "00") NewName = InputBox("新規月度設定" & vbLf & Fname1 & NewName & "月度" _ , "新規ファイル保存", NewName) NewName = ThisWorkbook.Path & "\" & Fname1 & NewName & "月度" & ".xls" ThisWorkbook.SaveAs NewName End Sub

KIRISUKE
質問者

お礼

ありがとうございます。 こんな方法もあるんですね。 さっそく試してみます!

  • taocat
  • ベストアンサー率61% (191/310)
回答No.3

こんばんは。 >毎回保存のファイル名が変わるので >固定の名前での記述(VBA)が出来ません     と >ダイアログボックスを表示させた状態で終わらせる これがどういう関係があるのかちょっと分からないのですが、 名前をつけて保存のダイアログの表示は以下のようにすれば出来ます。 ------------------------------------------------ Sub Test()  Dim dlgSave  dlgSave = Application.Dialogs(xlDialogSaveWorkbook).Show  If dlgSave Then   MsgBox ThisWorkbook.Name & "を保存しました"  Else   MsgBox "キャンセルしました"  End If End Sub ------------------------------------------------- それから、「固定の名前での記述(VBA)をが出来ません」これについてですが、 コードの書いてあるブックの名前を使うということは一般的にはあまりないと思いますよ。 もし使いたければ、上記コードのように、ThisWorkBook.Name でもってこれます。 どうしてこのような質問をしたのかも少し詳しく説明していただければ、 より的確な回答が寄せられると思います。 以上です。

KIRISUKE
質問者

補足

さっそくの回答ありがとうございます。 taocatさんの教えて下さったもので思い描いていた 感じになりました。 「保存しました」「キャンセルしました」 なんてメッセージが出るのも想像を超えていたので 嬉しいかぎりです。 本当にありがとうございますっ。 PS。わかりづらい説明になってしまったみたいで 申し訳なかったです。 一応、こんな感じという説明だけ…↓ >毎回保存のファイル名が変わる というのは、毎月データを更新している為 「3月度」「4月度」という風にファイル名が変更している状態です。 >固定の名前での記述(VBA)が出来ません これは、私が参考に見ていたVBAの本の中では ファイル名を指定して保存する方法しか記述されていなかったので…。

  • stouma
  • ベストアンサー率35% (142/399)
回答No.2

パスがあらかじめわかっているのであれば Inputbox関数でOKだとおもいますが。 http://www.bcap.co.jp/hanafusa/VBHLP/Fileopen.htm が参考になると思います。 尚、標準モジュールに書くのであればPrivateをPublicに変えた方がよいでしょう。 OS、Officeバージョンの記載がありませんでしたので あとは勉強ということで各自ロジックを完成させてください。

KIRISUKE
質問者

お礼

回答ありがとうございました。 参考アドレス先も読ませて頂きました。 何やら難しそうですが(私には) 勉強勉強。頑張ります!

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

単純に Sub sample() SendKeys "%FA" End Sub

KIRISUKE
質問者

お礼

回答ありがとうございました。 色々悩んであれこれ試しましたが こんな方法があったとは驚きましたっ。 ホントありがとうございます。

関連するQ&A

  • エクセル ファイル名を指定して保存したい。

    現在次のようなマクロを最後に記述してそこでダイアログボックスに表示されるデフォルトのファイル名に都度日にちを手動入力して保存しています。 これを自動でファイル名を保存ダイアログボックスに表示できるようにしたいのですがどのような記述にしたらいいでしょうか ※ファイル名 A1に2016/9/15と入っている場合 「160915△△△△△△△..xlsm」と保存したい。 (「△△△△△△△」は固定) 現在使用中 Application.Dialogs(xlDialogSaveAs).Show Windows7/エクセル2013

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

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

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

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

  • 「名前をつけて保存」のマクロ

    すみません。マクロコードの記述が分からないのでお願いします。 「名前をつけて保存」(ファイル名をつけて保存)のダイアログボックスを出現させるVBEコードを教えてください。

  • VBAからEXCELの新規ファイルを作成する

    VB6.0 Excel2000を使用しています。 VBAからEXCELファイルを参照する方法は前回教えていただきましたが 新規にEXCELファイルを作成する方法がわからないので教えてください。 【やりたいこと】 ・ファイル名は、ダイアログボックスから入力され、フルパスで変数に  格納されています。 ・シート名は固定文字で指定します。 (↑ここまではできています) (↓ここからわかりません) ・セルの内容を編集したあと、指定のファイル名・シート名で保存したい よろしくお願いします。

  • EXCEL VBA クエリーテーブルの更新

    EXCEL2007 ワークシートのクエリーテーブルの更新で、メールで毎日送られてくる同じ形式のCSVデータで更新したいのですが、ファイル名はいつも違います。ダイアログボックスを開かずに、ファイル名(パスは固定)を指定して更新するマクロは作成可能でしょうか? OUTLOOK で添付ファイルを指定のパスへ保存するマクロはできています。 同じファイル名で保存するのは避けたいと思っています。 外部データ範囲のプロパティの”ファイル名確認のチェック欄”をはずすとファイル名が同一の必要があり出来ないと思います。 ダイアログボックスでファイルをしてするとオペレーターが間違う可能性があるので、 OUTLOOKで保存したファイル名を指定して更新したいのです。 よろしくお願いいたします。

  • ExcelのVBAで名前を付けて保存

    ExcelのVBAで名前を付けて保存としたいのですが、ユウザーフォーム上のテキストボックスに保存する名前を入力したらコマンドボタンでブックが終了するマクロを教えてほしいのですが。 よろしく御教授願います。

  • シンクライアントでのVBAによるファイル保存

    ExcelのテンプレートファイルにVBAマクロを記述しています。 VBAにより新しいブックを開き、データを作り込んだ後、テンプレートファイルが置かれているフォルダに保存するマクロを作成しました。 リッチクライアント上では問題なく動くのですが、シンクライアント上で実行すると、  ActiveWorkbook.SaveAs Filename:='フルパスのファイル名'  ※フルパスのファイル名は、"C:\folder\file.xlsx"というような形式になっています。 のところでエラーになってしまいます。 パス付きのファイル名について、作法があるようでしたらお教えいただけますか。 よろしくお願い致します。

  • Excelマクロ/ファイル名を指定してインポート

    テキストファイルからExcelへインポートする作業を自動化させたいのですが。 毎回インポート元のファイル名(格納しているフォルダは同じです)が異なるので、マクロ記録ではうまく作成できません。VBAでないと無理でしょうか? できればファイル名をその都度入力するようなダイアログボックスが表示されれば理想的です。VBA初心者なので教えてください。

  • エクセル(2010)VBAの初歩的な問題

     エクセルVBA初心者です。エクセル2010で、マクロを記録したファイルを"△△.xlsm"として保存し、一旦そのファイルを閉じて、再度そのファイルを開いて、[開発]タブ-[コード]グループ-[マクロ]ボタンを押したときに出る「マクロ」ダイアログボックスで、保存した「マクロ名」が選択されている状態で、 [実行] [ステップ イン] ボタンは有効なのですが、 [編集] [作成] [削除] [オプション] の四つのボタンがグレーアウトして、押せる状態ではありません。また、この状態で、[実行]ボタンを押してみても、 「セキュリティの設定により、マクロが無効にされました。マクロを実行するには、このブックを再度開いて、マクロを有効にするようにする必要があります。マクロの有効化と詳細については、[ヘルプ]をクリックしてください。」 と表示されて、実行されません。[ヘルプ]ボタンを押してみると、長い説明が出てきましたが、そのどれも実行してみましたが、問題が解決されないで前に進めません。  どうすれば、一旦ディスクに保存したマクロ記録ファイルを再び開いて、マクロの操作の続きをできるようになるでしょうか。よろしくお願いします。

専門家に質問してみよう