• ベストアンサー

VBAで今日の日付のフォルダを作る。

VBA初心者です。 仕事で急遽EXCEL2000のVBAを使わなくてはならなくなり、本を買って急いで勉強しましたがうまくいきません。 もう日数もなく困っています、どなたかお教え下さい。 VBAでやりたいこと 1.まずTEST.xls上でボタンをつくり、それをクリックすると、TEST.xlsと同じディレクトリに20061119という(ボタンをクリックした日付)フォルダが作成される。 2.そのフォルダの中に、test1.sqlと、test2.sqlいうテキストファイルが作成される。 3.sqlテキストファイルの中身には、どちらも 123(abc/def) 456(ghi/jkl) という内容が書き込まれる。 今のところ散々頑張って、日付名ではないフォルダの中にカラのsqlテキストデータを作るまでしか出来ず困っています(-_-;) どうかよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんばんは。 こんな感じかしら? '----------------------------------------------- Sub MakeFolderDate()  Dim myDate As String  Dim myPath As String  Dim NewPath As String  Dim FNo As Integer  Dim Ar(1) As String  Dim SqlData As String  Dim i As Integer    '配列に入れる(ワークシートからでもループで入れることは可能)  Ar(0) = "test1.sql"  Ar(1) = "test2.sql"  'データ  SqlData = "123(abc/def) 456(ghi/jkl)"    myDate = Format(Date, "yyyymmdd")  myPath = ThisWorkbook.Path    NewPath = myPath & "\" & myDate  'パスの有無を調べる  If Dir(NewPath, 16) = "" Then 'vbDirectory   MkDir NewPath  End If  For i = 0 To UBound(Ar)   FNo = FreeFile()   Open NewPath & "\" & Ar(i) For Output As #FNo   Print #FNo, SqlData   Close #FNo  Next i End Sub '-----------------------------------------------

suzume_chu
質問者

お礼

こんばんは! 丁寧な回答どうもありがとうございました! 私の作った幼稚なVBAと文面が全然違ったのでビックリしました。 この通りに打ち込んでみたら、キチンと完璧な物が出来ました! 本当に助かりました。ありがとうございます。

その他の回答 (3)

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.3

テキストファイルの生成は↓が参考になると思います。 http://www.officetanaka.net/excel/vba/file/file08.htm

suzume_chu
質問者

お礼

回答どうもありがとうございます! 教えていただいたサイト、とても丁寧に説明がされていて参考になりました。 どうもありがとうございました!

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.2

マクロを実行するブックと同じディレクトリに 新しいフォルダを作成するなら、 新しいフォルダのパスは↓のようになります。 ThisWorkbook.Path & "\" & Format(Date,"yyyymmdd"))

suzume_chu
質問者

お礼

回答どうもありがとうございます!! 今日作ってみて、無事思い通りのものを作ることができました。 ありがとうございました。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

本日の日付は Date で取得できます。 それを Fromat関数で変換します。 関数の Text と同じ働きです。 Format(Date,"yyyymmdd") で 20061119 というような文字列を取得できます。 これを パスと繋げて MkDir(パス & Format(Date,"yyyymmdd")) というようにしてフォルダを作成します。 フォルダを作成したら、 新しいフォルダのパス & "\" & テキストファイル名 & ".txt" でテキストを保存しましょう。

suzume_chu
質問者

お礼

回答どうもありがとうございました!! 昨日は試行錯誤して『date』や『yyyymmdd』なんてフォルダを沢山作ってしまいましたが、教えていただいた関数で上手く出来ました!

関連するQ&A