アプリ版:「スタンプのみでお礼する」機能のリリースについて

VBA 保存フォルダが変わっても。


VBA素人です。
設定任意のファイル名にて、特定のフォルダへ保存することを考えています。ところがフォルダは月2回、別のパスのフォルダへ変わってしまいます。
従って具体的なフォルダパスを VBA コードの中に書き込んでしまうと、別のパスのフォルダ保管できなくなってしまいます。

したがって、どのフォルダパスであっても保存できるようにするコードを教えてください。

直感的なことを書くと
ActiveWorkbook.SaveAs 〜

........
さて
以下のMacro 1は
ブックを開ける時のコードです。インターネット上から探して私のノートにつけていたものです。ご回答にあたって参考にしていただく趣旨です。

。。。。。。

Sub Macro1()

Dim x As String
x = This workbook.path
Workbooks.Open x & "¥" & "任意のファイル名.xlsm"
End Sub

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

  • どう思う?

    回答者1と2の皆さん、返信ありがとうございます。

    ここでは、ファイル名は固定的です。ファイル名は任意のファイル名.xlsx
    マクロ有効ブックでなく、普通のエクセルの拡張子とします。

    次に、毎月、作業するフォルダが、フォルダ名①から、フォルダ名②へと変わります。

    マクロ有効ブックの中のコードの中に、フォルダ名①と書くと、
    フォルダ名②への保存ができません。

    そのため、ThisWorkbook.Path などをつかうことになるのかなと。

      補足日時:2021/11/03 11:06

A 回答 (2件)

こんばんは。



フォルダのパスが変わるとの事ですが、規則性はないのでしょうか?
例えば、年・日のフォルダが作成され、その中に保存するとか?

規則性もないなら、自分でフォルダを指定するしかないですね。
例えば、特定のセルにパスを入力しておく。 マクロから、そのセルの
情報を元にして、指定のフォルダに保存する、でしょうか?

フォルダの有無は、Dir関数で調べられると思います。
https://www.relief.jp/docs/excel-vba-check-folde …
    • good
    • 0

こんばんは



>ご回答にあたって参考にしていただく趣旨です。
それって、コードの中にファイル名等が書いてありますけれど…?

>て具体的なフォルダパスを VBA コードの中に書き込んでしまうと、
>別のパスのフォルダ保管できなくなってしまいます。
というのと、矛盾していませんかね?

良くわからないけれど、普通に「名前を付けて保存」と同じことを行えばよいのでは?
ユーザに入力させるのでは手操作と同じなので、マクロの意味がないのかも知れませんけれど・・

filePath = ""
With Application.FileDialog(msoFileDialogSaveAs)
.Show
If .SelectedItems.Count > 0 Then filePath = .SelectedItems(1)
End With

If filePath <> "" Then ThisWorkbook.SaveAs filenaem:=filePath
    • good
    • 0

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