Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1 / 13206 ツリー 前へ→

【80294】フォルダを作成し、さらにファイル名をつけて保存&格納 you 19/1/10(木) 11:15 質問[未読]
【80295】Re:フォルダを作成し、さらにファイル名を... マナ 19/1/10(木) 18:56 発言[未読]
【80296】Re:フォルダを作成し、さらにファイル名を... you 19/1/10(木) 22:22 お礼[未読]
【80297】Re:フォルダを作成し、さらにファイル名を... you 19/1/12(土) 12:03 質問[未読]
【80298】Re:フォルダを作成し、さらにファイル名を... マナ 19/1/12(土) 13:39 発言[未読]
【80299】Re:フォルダを作成し、さらにファイル名を... you 19/1/12(土) 19:32 発言[未読]
【80300】Re:フォルダを作成し、さらにファイル名を... you 19/1/15(火) 20:17 質問[未読][NEW]
【80301】Re:フォルダを作成し、さらにファイル名を... マナ 19/1/16(水) 18:32 発言[未読][NEW]

【80294】フォルダを作成し、さらにファイル名をつ...
質問  you  - 19/1/10(木) 11:15 -

引用なし
パスワード
   コードがあるのですが、これを改変したいです。

ActiveWorkbook.SaveAs"\\ここに保存したいです\20〇〇年_"&_
Format(DateAdd("m",-3,Date),"m")&"月分_売上"&".xls"_
,FileFormat:=xlExcel8,CreateBackup:=False

やりたいこと↓
1:ファイル名の月の部分を3か月前にしたい(済み)

2:20〇〇年のところを今から3か月前のものに沿った年にしたいです。今月だったら2018年10月になるわけです。2019年にならないようにしたいです。(仮に今年の10月に保存したら2019年7月になるようにしたいです)(未処理)

3:フォルダをこの階層に作り、上記で作成したファイルを格納したいです。フォルダ名は「20〇〇年_×月分_売上」(×の部分は今より3か月前、〇はそれに沿った年)(未処理)

上記の2と3に詰まってしまいました。
どなたか知恵を貸していただけると助かります。

【80295】Re:フォルダを作成し、さらにファイル名...
発言  マナ  - 19/1/10(木) 18:56 -

引用なし
パスワード
   ▼you さん:

2)
Sub test()
  MsgBox Format(WorksheetFunction.EDate(Date, -3), "yyyy年_m月分_売上")
End Sub

3)
保存先フォルダが存在しない場合はフォルダを作成してブックを保存する
ht tps://www.moug.net/tech/exvba/0060035.html

【80296】Re:フォルダを作成し、さらにファイル名...
お礼  you  - 19/1/10(木) 22:22 -

引用なし
パスワード
   マナさん

おぉ、さっそくありがとうございます。
今、officeが使える環境ではないので、
明日さっそく試してみます。
また何かありましたら質問させていただきます。

【80297】Re:フォルダを作成し、さらにファイル名...
質問  you  - 19/1/12(土) 12:03 -

引用なし
パスワード
   参照したURLを元にさっそく試してみました。

Sub Test

(1)
SaveDir="\\ここに保存したいです\"&
Format(WorksheetFunction.EDate(Date, -3), "yyyy年_m月分")

(2)
If Dir(SaveDir, vbDirectory)="" Then
  Mkdir SaveDir
End If

(3)
SaveDir="\\ここに保存したいです\"&
Format(WorksheetFunction.EDate(Date, -3), "yyyy年_m月分")&
Format(WorksheetFunction.EDate(Date, -3), "yyyy年_m月分_売上")&".xls"_
,FileFormat:=xlExcel8,CreateBackup:=False

End Sub

質問。
(1)と(2)で3か月前のフォルダが作れるのは問題なかったのですが、本来は(3)で
「2018年_10月分_売上」というファイル名のデータをこのフォルダに格納したいのですが、上手くいきません。しかもファイル名が2018年10月分_2018年10月分_売上という変なファイル名になってしまいます・・。

お手数ですが、ご教授願います。

【80298】Re:フォルダを作成し、さらにファイル名...
発言  マナ  - 19/1/12(土) 13:39 -

引用なし
パスワード
   ▼you さん:

>(3)
>SaveDir="\\ここに保存したいです\"&
>Format(WorksheetFunction.EDate(Date, -3), "yyyy年_m月分")&
>Format(WorksheetFunction.EDate(Date, -3), "yyyy年_m月分_売上")&".xls"_
>,FileFormat:=xlExcel8,CreateBackup:=False
>
>End Sub

>しかもファイル名が2018年10月分_2018年10月分_売上という変なファイル名になってしまいます・・。
>

フォルダ名とファイル名の間に、区切りの \ が抜けていませんか?

【80299】Re:フォルダを作成し、さらにファイル名...
発言  you  - 19/1/12(土) 19:32 -

引用なし
パスワード
   マナさん

>>SaveDir="\\ここに保存したいです\"&
>>Format(WorksheetFunction.EDate(Date, -3), "yyyy年_m月分"\)&
>>Format(WorksheetFunction.EDate(Date, -3), "yyyy年_m月分_売上")&".xls"_
>>,FileFormat:=xlExcel8,CreateBackup:=False
>>
>>End Sub

ご指摘ありがとうございます。
こういうことでしょうか?
すいません、現在officeが使える環境でないので、
試せるのが火曜日になってしまいます。

初心者で申し訳ありませんがよろしくお願いします。

【80300】Re:フォルダを作成し、さらにファイル名...
質問[NEW]  you  - 19/1/15(火) 20:17 -

引用なし
パスワード
   SaveDir="\\ここに保存したいです\"&
Format(WorksheetFunction.EDate(Date, -3), "yyyy年_m月分\")&
Format(WorksheetFunction.EDate(Date, -3), "yyyy年_m月分_売上")&".xls"_
,FileFormat:=xlExcel8,CreateBackup:=False

これで試してみたのですが、やはりフォルダは出来ているのですが、
フォルダと同じ階層に2018年10月分2018年_10月分_売上のファイル名で出来てしまいました・・。
フォルダに格納したいのですが・・。

う〜ん・・よく分からないです。

【80301】Re:フォルダを作成し、さらにファイル名...
発言[NEW]  マナ  - 19/1/16(水) 18:32 -

引用なし
パスワード
   ▼you さん:

>う〜ん・・よく分からないです。

最終的にどんな文字列にする必要があるか理解できていますか。
理解できていれば、あとは試行錯誤でなんとかなります。

Sub test()
  Dim SaveDir As String
  
  SaveDir = Format(WorksheetFunction.EDate(Date, -3), "yyyy年_m月分")
  MsgBox SaveDir
  
  '保存場所
  MsgBox "\\ここに保存したいです\" & SaveDir
  '保存ファイル名
  MsgBox SaveDir & "_売上.xls"
  
  MsgBox "\\ここに保存したいです\" & SaveDir _
      & "\" & SaveDir & "_売上.xls"
  
End Sub

1 / 13206 ツリー 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free