色彩を教える人になるための講座「色彩講師養成講座」の魅力とは>>

Dim yy As String
Dim FilePath As String
Dim ws_mousikomi As Worksheet
Set ws_mousikomi = Worksheets("実習申込書")
FilePath = ActiveWorkbook.Path
yy = ws_mousikomi.Range("A20").Value    yy:2023年度_実習申込書 (文字列)
ws_mousikomi.Select
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:= _
FilePath & yy & ".xlsx"

上記のマクロで Worksheet("実習申込書")を Pathプロパティのホルダー内で "2023年度_実習申込書.xlsx"の新規Bookで保存しようとしました。
結果 Filenameは"上記ホルダー名+2023年度_実習申込書.xlsx"でした。
保存先は上記ホルダーの一つ上のホルダー内でした。
希望通りのFilenameを取得する方法があればご教授よろしくお願い致します。
また・VBプロジェクトの機能を含むファイルとするかどうかマクロ有効ファイルの種類を選択するようにメッセージで確認がありマクロなしのBookとして保存するかどうか聞いてきます。
直接マクロの有無を指示しないで保存してくれないのでしょうか。
質問の仕方にかなり説明不足があるように思いますがよろしくご回答お願い致します。

gooドクター

A 回答 (3件)

こんばんは



>保存先は上記ホルダーの一つ上のホルダー内でした。
ブックのあるフォルダと同じ階層に保存できれば良いってことですよね?
すでに回答が出ていますけれど、
>FilePath = ActiveWorkbook.Path
で取得するのはフォルダのPathです。

Path自体は文字列ですので、文字列操作で
 FilePath & "\" & yy & ".xlsx"
とすれば、ご希望のようになるでしょう。


>直接マクロの有無を指示しないで保存してくれないのでしょうか。
対象となっているシートモジュールにマクロが記載されているものと思われます。
(マクロがなければ、ダイアログは出ずに保存してくれるはずです。)

対処方法として、VBAからマクロを削除するという方法も考えられますが、簡単なのは、警告表示を停止させる方法でしょうか。
保存する前に
 Application.DisplayAlerts = False
の一行を入れてみてください。
(これにより、ダイアログは表示されず、マクロが削除された形で保存されます)
ただし、同名ファイルがある際の上書き警告表示等もされなくなりますのでご注意。

※ 保存終了後、警告表示を True に戻しておくのをお忘れなく。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
修正例まで丁寧に記載いただき解決致しました。
ありがとうございました。

お礼日時:2021/10/15 06:40

こんばんは


既に回答がありますが
FilePath & yy & ".xlsx" この文字列おかしいと思いますよ
ステップ実行で確認してみては、

>直接マクロの有無を指示しないで保存してくれないのでしょうか。

'SaveAsパラメーターを使用した保存方法
ActiveWorkbook.SaveAs Filename:=FilePath & yy & ".xlsx", FileFormat:=xlWorkbookDefault
こんな方法で行けるか、、

エラー対策、同名回避やActiveWorkbook.Closeなども加えるのかな
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
「\」の活用を理解していなかったようです。
解決致しました。
ご指摘ありがとうございました。

お礼日時:2021/10/15 06:36

「\」マークの付け忘れかな。



よくやるんですよね。
    • good
    • 1
この回答へのお礼

ご回答ありがとうございました。
「\」マークの意味をよく理解してなかったようです。
ご指摘ありがとうございました。

お礼日時:2021/10/15 06:04

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

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング