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

お世話になります。
"時間外請求"というフォルダ に"時間外請求"というエクセルファイル(このファイル)と"履歴"というフォルダがあり、”履歴”というフォルダの中には”2020年度”~”2023年度”というフォルダが4個あります。
シートのX1にファイル名、Y1に”2023年度”と入力し、ボタンを押すと"2023年度"というフォルダにX1のファイル名で保存しようと思います。でもボタンを押すと原本(時間外請求)と同じフォルダに”2023年度履歴”というファイル名で保存されてしまいます。よろしくお願いいたします
Sub 保存()
Dim wb As Workbook
Dim ws As Worksheet
Dim hozonPath As String
Dim FolName As String
Dim FilName As String

Set wb = ThisWorkbook
Set ws = ActiveSheet

hozonPath = ThisWorkbook.Path
FolName = ws.Range("y1").Value
FilName = ws.Range("x2").Value
wb.SaveAs Filename:=hozonPath & "\履歴" & FolName & FilName
End Sub

A 回答 (2件)

wb.SaveAs Filename:=hozonPath & "\履歴" & FolName & FilName





wb.SaveAs Filename:=hozonPath & "\履歴\" & FolName & "\" & FilName
    • good
    • 1
この回答へのお礼

wb.SaveAs Filename:=hozonPath & "\履歴\" & FolName & "\" & FilName

思う通りにできました。
ありがとうございました。

お礼日時:2023/04/26 14:13

こんにちは



説明通りだとすると・・
>X1にファイル名、Y1に”2023年度”と入力し、

>FolName = ws.Range("y1").Value
>FilName = ws.Range("x2").Value
FolNameの内容は「2023年度」になりますが、FilNameは何になっているのでしょうか?
(記載が無いので不明)

>wb.SaveAs Filename:=hozonPath & "\履歴" & FolName & FilName
hozonPath & "\履歴" & FolName & FilName がどうなっているかを調べてみてください。
パスの後に"\履歴2023年度"と続き、更には(私には不明の)FileName の内容が続いていると思います。

>同じフォルダに”2023年度履歴”というファイル名で保存されてしまいます。
結果から想像すると、FileName は空白(=X2セルが空白)なので、ファイル名を”履歴2023年度"として解釈されているのだと思います。

質問者様の意図するように、文字列を連結してあげれば解決するものと想像します。
(履歴とFolNameの間にも\記号が必要と思われます)
    • good
    • 0
この回答へのお礼

早速のご返答ありがとうございます
X2(ファイルネーム)数式で日付けと時間外の理由が入っています
あっ!ごめんなさい。ファイルネームはX1でした。
そして、¥を付けたらできました。
ありがとうございました。

お礼日時:2023/04/26 14:13

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