- ベストアンサー
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テキストデータを作るまでしか出来ず困っています(-_-;) どうかよろしくお願いします。
- みんなの回答 (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 '-----------------------------------------------
その他の回答 (3)
- marbin
- ベストアンサー率27% (636/2290)
テキストファイルの生成は↓が参考になると思います。 http://www.officetanaka.net/excel/vba/file/file08.htm
お礼
回答どうもありがとうございます! 教えていただいたサイト、とても丁寧に説明がされていて参考になりました。 どうもありがとうございました!
- marbin
- ベストアンサー率27% (636/2290)
マクロを実行するブックと同じディレクトリに 新しいフォルダを作成するなら、 新しいフォルダのパスは↓のようになります。 ThisWorkbook.Path & "\" & Format(Date,"yyyymmdd"))
お礼
回答どうもありがとうございます!! 今日作ってみて、無事思い通りのものを作ることができました。 ありがとうございました。
- marbin
- ベストアンサー率27% (636/2290)
本日の日付は Date で取得できます。 それを Fromat関数で変換します。 関数の Text と同じ働きです。 Format(Date,"yyyymmdd") で 20061119 というような文字列を取得できます。 これを パスと繋げて MkDir(パス & Format(Date,"yyyymmdd")) というようにしてフォルダを作成します。 フォルダを作成したら、 新しいフォルダのパス & "\" & テキストファイル名 & ".txt" でテキストを保存しましょう。
お礼
回答どうもありがとうございました!! 昨日は試行錯誤して『date』や『yyyymmdd』なんてフォルダを沢山作ってしまいましたが、教えていただいた関数で上手く出来ました!
お礼
こんばんは! 丁寧な回答どうもありがとうございました! 私の作った幼稚なVBAと文面が全然違ったのでビックリしました。 この通りに打ち込んでみたら、キチンと完璧な物が出来ました! 本当に助かりました。ありがとうございます。