• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBEで「名前を付けて保存」する方法)

VBEで「名前を付けて保存」する方法

このQ&Aのポイント
  • VBEを使用して「名前を付けて保存」する方法について知りたいです。
  • 保存するファイル名を変数とし、保存するディレクトリを指定する方法について教えてください。
  • 保存したファイルに読み取りのパスワードを設定し、保存後にファイルを閉じるかどうかのダイアログを表示する方法を教えてください。

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

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.1

 簡単な操作かと存じますので、ベタ打ちのコードを呈示するだけではなくて、少し解説させていただきます。  先ず、お示しの条件で [新しいマクロの記録] を取ってみましょう。 ChDir "C:\Program Files" ActiveWorkbook.SaveAs Filename:="C:\Program Files\0423.xls", FileFormat:= _   xlNormal, Password:="0423", WriteResPassword:="", ReadOnlyRecommended:= _   False, CreateBackup:=False というコードが得られます。 >ファイル名は変数(4日後の日付をMMDDで。  これは、ワークシートでは =TEXT(TODAY()+4,"MMDD") という式になりますね。  VBA では [TEXT 関数] は [Format 関数] に、[TODAY 関数] は [Date 関数] になりますので、そのまま、 Format(Date + 4, "MMDD") でよいでしょう。 >月を跨いでもきちんと認識されるように Debug.Print Format(Date + 11, "MMDD") を実行すると、イミディエイトウィンドウ に「0430」と表示され、「11」を「12」に変更して実行すると「0501」と表示されます。  問題ありませんね。  ということで、 "C:\Program Files\0423.xls" の部分が "C:\Program Files\" & Format(Date + 4, "MMDD") & ".xls" に、 Password:="0423" の部分は、そのまま Password:=Format(Date + 4, "MMDD") になります。 >保存したらファイルを閉じるかどうかのダイアログを出す。  [MsgBox 関数の使用例] のヘルプをご覧ください。 Dim Response Response = MsgBox("保存しました。ブックを閉じますか?", vbYesNo, "保存後の処理") If Response = vbYes Then  ThisWorkbook.Close End If でどうでしょうか?  ということで、ベタ打ちのコードは下記のようなことになりますが、既に同名のブックが存在する場合の処理はしておりませんので、別途お考えください。 Sub TEST()  Dim MyFolder As String  Dim MyDate As String  Dim Response As Integer  MyFolder = "C:\Program Files"  MyDate = Format(Date + 4, "MMDD")  ChDir MyFolder  ActiveWorkbook.SaveAs Filename:=MyFolder & "\" & MyDate & ".xls", _   Password:=MyDate  Response = MsgBox("保存しました。ブックを閉じますか?", vbYesNo, "保存後の処理")  If Response = vbYes Then   ThisWorkbook.Close  End If End Sub  なお、要らぬお節介ですが、「C:\Program Files直下」に ユーザーファイル を保存するのはいかがかと存じます。  せめて、ワンクッション置いて  MyFolder = "C:\Program Files\hoge" みたいにされる方がよいかと。。。

rihitomo
質問者

お礼

ありがとうございます! 素晴らしく役に立ちました。 しかも解説まで付けていただいて、とても分かりやすかったです!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 同名ファイルの上書き確認ダイアログを表示させない方法(Excel97VBA)

    あるディレクトリに、既存のファイル名と同じ名前を付けて新しく保存しようとすると、上書きの確認ダイアログがでます。 このダイアログを出させずに、無条件で上書きするにはどのようにすればいいのでしょうか? 現在、“Application.AlertBeforeOverwrite = False”として、その次の行に“ActiveWorkbook.SaveAs FileName:="なまえ.xls"としています。 もちろん、保存先のディレクトリには「なまえ.xls」というファイルが存在します。

  • Program Files直下へのzip展開操作

    C:\Program Files 直下に置いたzipファイルを、右クリからすべて展開→展開とすると、 圧縮(zip形式)フォルダーエラー 指定したディレクトリを作成できませんでした。 ディレクトリがすでに存在してるか、パスが有効では無いのでは? みたいなダイアログ?が開いて、解凍できません。 エクスプローラはタスクバーのアイコンを右クリ→エクスプローラを右クリ→管理者から実行 で開きました。 エクスプローラで、C:\Program Files 直下に置いたzipファイルを、そのまま同じ場所へ(ファイル名と同じ名前のフォルダを作ってその中へ)解凍(展開)するにはどうしたらいいですか? 環境はWin7SP1 x86 Enterpriseです。

  • 全てのシートに同じ条件で処理をし保存するマクロ

    いつも識者の皆様にはお世話になっております。 Excel VBAのことで質問させてください。 ファイル名やその中のシートの数がばらばらで、データの型が同じファイルが毎日生成されます。 下記の流れでVBAで処理をしたいと思っています。 1.ファイルを開くダイアログを出し、ブックを指定する。 2.開いたブックにある全てのシートに対し、A列が"aaa"以外の行を削除する。 3.同じディレクトリに、ファイル名の前頭に"ccc"と付けて保存する。 しかし、それぞれのシートにはデータが20000-30000行あり、上記方法だとScreenUpdatingをfalseにしても時間がかかるという記述を見つけたため、 1.ファイルを開くダイアログを出し、ブックを指定する。 2.開いたブックにある全てのシートに対し、A列が「"aaa"と等しい」の条件でフィルタをかけ、そのデータを別の新しいブックに貼り付ける(シート名も同じにする) 3.ダイアログで開いたブックと同じディレクトリに、ファイル名の前頭に"bbb"と付けて保存する。 このような手順でやろうと思っていますが、ダイアログを出すところまではなんとかたどり着けたんですが、その後がまったくわかりません。 ご参考にならないとは思いますが、書きかけ(というかダイアログを出してworkbookを追加するだけ)のコードを添付いたします。 Sub test() Dim OpenFileName As String OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls?") If OpenFileName <> "False" Then Workbooks.Open OpenFileName Else MsgBox "キャンセルされました" End If Workbooks.Add End Sub 識者の皆様、どうかご回答よろしくお願いいたします。

  • 名前を付けて保存

    Win-me Excel2000です。 Excelで名前を付けて保存するときに ファイル名がBook1.xlsになっていますが 保存するときにBook1.xlsではなく セルA1の文字が自動で入っているにはどうしたらよいですか。 何か、説明が悪いですけど。 保存するたびにファイル名をつけなくてはいけなくて B00k1では後で、開くときに内容がわかりにくくて、 A1セルの文字がファイル名でいいものですから。

  • Program Files を2つ作ってしまいました。1つを削除する方法を教えてください

    誤って「Program Files」というフォルダをCドライブ直下に作ってしまいました。そのためProgram Filesフォルダが2つ存在しています。 「誤って作成したフォルダ」内には何もフォルダ、ファイルは存在しません。 「誤って作成したフォルダ」を削除しようとすると、「Program Filesを移動または削除したりその名前を変更したりすると、一部のプログラムが機能しなくなる可能性があります。続行しますか?」と表示され、「はい」を選ぶと、「Program Filesを削除できません。ディレクトリが空ではありません」と表示され、削除ができません。 どのようにしたらこの不要なフォルダを削除することができるでしょうか?よろしくお願いいたします。

  • 名前をつけて保存する

    コマンドライン上に出力された結果を、コマンドライン上でファイル名を指定し、テキストファイルとして保存することは出来ますでしょうか? 作成するファイルは、作業中のフォルダに新規作成する、としたいのですが… たとえば、 カレントディレクトリがC\:/aaaであるとして、 bbb.cを実行したとき、 ----- 以下コマンドライン上の出力 ----- C:\aaa>aaa 1~nまでの素数を表示します nを入力 : 50 1~50までの素数は 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47 です。 保存するファイル名を入力 : ccc.txt (ccc.txtと入力してenterを押すと保存) C:\aaa -------------- ここまで -------------- 上記の結果の、『1~nまでの…』から『です。』までを、ccc.txtとしてディレクトリC\:/aaaに新規作成したいのですが… どなたか出来る方がいらっしゃいましたら、ぜひご教授お願い致します。 もし、C言語でこのようなコトをするのは不可能であるのならば、『無理ですよ』という旨を伝えて頂ければ結構でございます。

  • jspファイルの保存方法について。

    こんにちは。初めてJSPを使おうとしている者です。 テキストエディタでプログラムを書いて、.jspという拡張子で保存することは分かるのですが、保存先をどこにしたらよいのか、また、保存先のパスと、URLのリンクのさせ方をどうすればよいのか分かりません。 今の状況は、hello.jspというファイルを、 ・Cドライブの直下に置く ・C:\Program Files\Apache Group\Tomcat 4.1\webappsの中に置く などしてみたのですが、どうもうまくいかないようで、 The requested resource (/hello.jsp) is not available. というエラーになってしまいます。 もし解決策をご存知の方がいらっしゃいましたら教えていただきたいと思います。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • 名前をつけて保存

    最初にファイルを作成(例えばファイル名を売上管理)を作成して、その後テーブルを作成していくと、 ファイル→名前を付けて保存をすると、テーブルを保存するダイアログボックスが表示されますが、売上管理のファイルを保存するダイアログボックスを表示させることはできないんでしょうか? 解答宜しくお願いします。

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

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

  • ダウンロードしたファイル(itunes等)の保存先について教えて下さい。

    以前は、ダウンロードしたファイル(itunes等)を Program Filesに保存していたんですが、 Program Filesの中のどのファイルがダウンロードファイル なのかが、わからなくなったので、Cドライブに新たにフォルダ(ダウンロードしたファイル)を作って、そこに保存→実行をしたんですが、 インストール後に、Cドライブ→Program Filesにダウンロード(インストール)したファイルができていました。 保存→実行(インストール)を行うと保存場所に関わらず、Cドライブ→Program Filesにファイルができてしまうんでしょうか。 それとも、保存場所自体に間違いがあるのでしょうか。 パソコン初心者で理解できません。どんな事でも結構ですので、 ダウンロードファイルの保存場所等について教えて下さい。 皆さん、よろしくお願いします。

音が出なくなった
このQ&Aのポイント
  • インストール後、PCからの音が出なくなってしまいました。Youtubeの音声が出ません。ZOOMの音声だけは出ます。
  • レベルメーターを見ると動いていますが、マイクも正常です。ソフトウェアのアンインストールを試したが不具合は修正されませんでした。
  • 音が復元される方法を教えてください。
回答を見る

専門家に質問してみよう