プロが教える店舗&オフィスのセキュリティ対策術

作業ブックを
指定フォルダ内に指定シート名の指定セル値をファイル名として保存する方法を教えてください。
指定フォルダ「"\\nas-sp01\share\確認部\■意匠\戸建\戸建て電子申請関連\ひな形\"」
指定シート名「300」
指定セル値「E34」
ファイル形式は「マクロ有効テンプレート」
以上です。
保存作業が完了しましたら、作業中及び保存ファイルをクローズしたいです。
先ほども同じような質問をしましたが、
自分で今まで教えて頂いたマクロで設定しましたが、上手く行きませんでした。
困っております。
よろしくお願いいたします。

質問者からの補足コメント

  • どう思う?

    回答ありがとうございました。
    連絡が遅くなり申し訳ありません。
    上手くできました。
    補足でお願いですが、
    マクロを実行し、指定フォルダ内に保存された後に作業ブックを保存するか否かのダイナログは表示されますが、この表示を非表示にすることはできますが、
    又、作業中のブックをクローズしても
    Excel自体が立ち上がったままなので、Excel全体をクローズしたいのですが。
    この補足はルール違反になりますでしょうか。
    連絡をお待ちいたします。

    No.1の回答に寄せられた補足コメントです。 補足日時:2023/01/13 08:30

A 回答 (2件)

\\nasで上手くいくかは分かりませんが


他の形式でも同じだと思いますが、
マクロ有効テンプレート拡張子を付けFileFormatを指定すれば出来ると思います
ファイル名は純粋にファイル名のみにしてください
処理は書いていませんがファイル名に使用出来ない文字列に注意・・

Const fol As String = "\\nas-sp01\share\確認部\■意匠\戸建\戸建て電子申請関連\ひな形\"
Dim fname As String, fPath As String
Dim exte As String
fname = Worksheets("300").Range("E34").Text 'ファイル名
exte = ".xltm" '拡張子
fPath = fol & fname & exte
ThisWorkbook.SaveAs Filename:=fPath, FileFormat:=xlOpenXMLTemplateMacroEnabled
ThisWorkbook.Close
この回答への補足あり
    • good
    • 0

>マクロを実行し、指定フォルダ内に保存された後に作業ブックを保存するか否かのダイナログは表示されますが、この表示を非表示にすることはできますが、又、作業中のブックをクローズしてもExcel自体が立ち上がったままなので、Excel全体をクローズしたいのですが。



保存処理などを行う場合の定番処理は、
>今まで教えて頂いたマクロ  にありませんでしたか・・
(同名ファイルの存在対応、使用不可文字の検証、自ブックの処理、アプリケーションの処理、アラート処理など)

ご存知と思い割愛しましたが下記の項目も必要処理と思います

①についてはセルE34に入力段階で処理する方法も考えられます 
数式などで値が決まっていて絶対にNG文字が入らない事が確定している場合は不要と思われるかもしれませんが
定数以外(セルから参照や数式の解を参照)をしている場合は必要だと思います

①ファイル名に使えない文字がWorksheets("300").Range("E34").Textに
あった場合
あ:問題をメッセージして処理を中止
い:NG文字を_(アンダーバー)などに置換処理して問題と結果を表示
う:UI(インプットボックス)を表示して訂正を促し処理待ち

②同名ファイルが存在する場合
あ:上書き処理
い:ファイル名を変更して処理

い1:自動で添え字(ファイル名_01+α)を付加して保存
い2:UI(インプットボックス)を表示して訂正を促す

ご質問の補足ケースのところだけは
作業ブック Excelアプリケーションの処理は下記で良いと思います

ThisWorkbook.Closeを下記に変更

If Workbooks.Count > 1 Then
ThisWorkbook.Close SaveChanges:=False
Else
Application.Quit
ThisWorkbook.Close SaveChanges:=False
End If

*.Close SaveChanges:=False 保存せずに閉じる( ".xltm" )

*作業用ブックを保存する場合は 名前を付けて保存する処理より
上流で上書き保存します
①②の処理がすぐに必要ない場合は、調べて追加するようにしてください
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
色々と教えて頂きまして感謝いたします。

お礼日時:2023/01/13 10:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!