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

セルD8に入力された日付でフォルダを作成したいと考えています。

たとえば「2007/01/01」と入力すると
「2007-01-01」と「2007-01-01集計」という2つのフォルダを
同時に作成するのが目的です。

ファイル名には"/"をつけられないので
「2007/01/01」と入力しても
「2007-01-01」となるように置換しようとしました。
セルD8の書式は文字列にしているのですが
以下のマクロを実行すると書式が日付に戻ってしまうので
「パスが見つかりません」というエラーになってしまいます。
(下の矢印の部分で)

何が原因なのでしょうか…
よろしくお願いします。

   Sub 日付フォルダ作成()

   Dim DirPathad As String
    Dim DirPathadin As String

    DirPathad = Range("D8")
    Range("D8").Select
    Selection.Replace What:="/", Replacement:="-", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False
    DirPathad = Range("D8")
    DirPathadin = "C:\" & DirPathad
→     MkDir DirPathadin

   DirPathadin = "C:\" & DirPathad & "集計"
    MkDir DirPathadin



    MsgBox "【" & DirPathad & "】の日付でフォルダを作成しました"


   End Sub

A 回答 (1件)

セルに日付を入力した場合、見た目は「2007/01/01」となっていても、実際は「39083」という数値がはいっているのと同じですので、そこから「年」「月」「日」を抜き出す必要があります。


(※作成上、不要と思われる行は削除してあります。必要であれば追加してくださいね。)

Sub 日付フォルダ作成()
Dim DirPathad As String
Dim DirPathadin As String
  Range("D8").Select
  DirPathad = Year(Range("D8")) & "-" & Month(Range("D8")) & "-" & Day(Range("D8"))
  DirPathadin = "C:\" & DirPathad & "集計"
  MkDir DirPathadin
  MsgBox "【" & DirPathad & "】の日付でフォルダを作成しました"

End Sub
    • good
    • 0
この回答へのお礼

できました!!
全然見当違いのことをしていたのですね。
恥ずかしい(*。。*)

ありがとうございました。
すばやい解答でとても助かりました。

お礼日時:2007/10/31 22:07

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