Excel VBA質問箱 IV

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

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


6398 / 13644 ツリー ←次へ | 前へ→

【45390】フォルダの自動作成について vang 06/12/21(木) 20:52 質問[未読]
【45391】Re:フォルダの自動作成について かみちゃん 06/12/21(木) 21:18 発言[未読]
【45393】Re:フォルダの自動作成について vang 06/12/21(木) 21:58 お礼[未読]
【45394】Re:フォルダの自動作成について かみちゃん 06/12/21(木) 22:24 発言[未読]
【45418】Re:フォルダの自動作成について T 06/12/22(金) 19:21 発言[未読]
【45420】Re:フォルダの自動作成について vang 06/12/22(金) 23:12 お礼[未読]

【45390】フォルダの自動作成について
質問  vang  - 06/12/21(木) 20:52 -

引用なし
パスワード
   お世話になります。
イメージがわかずに困っています。
助言お願いいたします。

Private Sub CommandButton2_Click()
dir_1 = "O:\11月分\" ' ※保存フォルダの設定(当月フォルダ)
  Sheets("○○○").Select
  Sheets("○○○").Copy ’※指定したシートをコピー
   With Application.ActiveSheet.Cells
   .Copy
   .PasteSpecial Paste:=xlPasteValues '値貼り付け
  End With
  Application.CutCopyMode = False
  Range("A1").Select
  ActiveWorkbook.SaveAs Filename:=dir_1 & Format(Date - 1, "mm月dd日") & ".xls"
  MsgBox "保存しました。"
  ActiveWorkbook.Close
  
End Sub

このようなコードで現在指定したファルダにファイルの指定シートだけを
保存していますが、これだと当月が終わり月が替わったときには新たにフォルダを作り
コードも書き換えなくてはなりません。
月が替わったら保存時自動でフォルダを作成し(ファルダ名は当月が付くように)
そこへシートを保存するようなコードを作成することは可能でしょうか。
ご指導よろしくお願いします。

【45391】Re:フォルダの自動作成について
発言  かみちゃん  - 06/12/21(木) 21:18 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>月が替わったら保存時自動でフォルダを作成し(ファルダ名は当月が付くように)
>そこへシートを保存するようなコードを作成することは可能でしょうか。

以下のような感じでできると思います。
月が変わったらというより、フォルダが作られていなければという考え方です。

 Dim dir_1 As String
  
 dir_1 = "O:\" & Format(Date, "mm") & "月分"
 If Dir(dir_1, vbDirectory) = "" Then
  MkDir dir_1
 End If
 Sheets("○○○").Select
 
 '〜省略〜

 ActiveWorkbook.SaveAs Filename:=strPath & "\" & Format(Date - 1, "mm月dd日") & ".xls"

【45393】Re:フォルダの自動作成について
お礼  vang  - 06/12/21(木) 21:58 -

引用なし
パスワード
   かみちゃん様
ご指導ありがとうございます。
これならフォルダさえ作成しておけば大丈夫そうですね。
やっぱりフォルダを作成することは難しいのでしょうか。

指定シートは「当日−1」でファイル名をつけているため
1月1日に12月31日のファイルが保存となってしまいそうです。
どうしようか、考え中です。

【45394】Re:フォルダの自動作成について
発言  かみちゃん  - 06/12/21(木) 22:24 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>これならフォルダさえ作成しておけば大丈夫そうですね。
>やっぱりフォルダを作成することは難しいのでしょうか。

いいえ、なければ、自動的に作成しますよ。
ただし、1年後どうするのかとかの問題が出てきそうですが・・・

>指定シートは「当日−1」でファイル名をつけているため
>1月1日に12月31日のファイルが保存となってしまいそうです。

「しまいそう」ではなく、「しまいます」です。
その仕様は、vangさんが決めることですので、どうしたいのかの説明がないと
アドバイスは、難しいですね。

【45418】Re:フォルダの自動作成について
発言  T  - 06/12/22(金) 19:21 -

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

ご参考になるか分かりませんが・・・
私も、毎月新しいフォルダーを自動で作成して、毎日集計したデータをそのフォルダーに自動的に保存させています。

21日から20日が一ヶ月単位ですので、21日以降にエクセルを開くと翌月のフォルダーを自動作成するようにしています。

こんな感じのコードでしています。
確か、この掲示板で色々と教えていただいたと思い出している次第です。
一度見てください。

Sub auto_open()
  Dim str As String
  Dim dt As Date
   PFol = Left(ThisWorkbook.Path, 3)
  If Day(Date) > 20 Then
    dt = DateAdd("m", 1, Date)
  Else
    dt = Date
  End If
  str = PFol & "AA明細表" & Format(dt, "e-m") & "月分"
  If Dir(str, vbDirectory) = "" Then
    MkDir str
    MsgBox " 「こんにちは」 新しい月が始まりました !" & vbLf & _
      "    当月のフォルダー" & vbLf & Replace(str, PFol, "") & "を作成しました !" _
      , vbOKOnly + vbInformation
  End If
End Sub

【45420】Re:フォルダの自動作成について
お礼  vang  - 06/12/22(金) 23:12 -

引用なし
パスワード
   T 様

ご指導ありがとうございます。
参考にさせていただきます。

6398 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free