dポイントプレゼントキャンペーン実施中!

VBA初心者です。
仕事で急遽EXCEL2000のVBAを使わなくてはならなくなり、本を買って急いで勉強しましたがうまくいきません。
もう日数もなく困っています、どなたかお教え下さい。

VBAでやりたいこと

1.まずTEST.xls上でボタンをつくり、それをクリックすると、TEST.xlsと同じディレクトリに20061119という(ボタンをクリックした日付)フォルダが作成される。

2.そのフォルダの中に、test1.sqlと、test2.sqlいうテキストファイルが作成される。

3.sqlテキストファイルの中身には、どちらも
123(abc/def) 456(ghi/jkl)
という内容が書き込まれる。

今のところ散々頑張って、日付名ではないフォルダの中にカラのsqlテキストデータを作るまでしか出来ず困っています(-_-;)
どうかよろしくお願いします。

A 回答 (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

'-----------------------------------------------
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/11/20 23:18

テキストファイルの生成は↓が参考になると思います。



http://www.officetanaka.net/excel/vba/file/file0 …
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/11/20 23:16

マクロを実行するブックと同じディレクトリに


新しいフォルダを作成するなら、

新しいフォルダのパスは↓のようになります。

ThisWorkbook.Path & "\" & Format(Date,"yyyymmdd"))
    • good
    • 1
この回答へのお礼

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

お礼日時:2006/11/20 23:15

本日の日付は


Date
で取得できます。
それを
Fromat関数で変換します。
関数の
Text
と同じ働きです。

Format(Date,"yyyymmdd")

20061119
というような文字列を取得できます。

これを
パスと繋げて
MkDir(パス & Format(Date,"yyyymmdd"))
というようにしてフォルダを作成します。

フォルダを作成したら、

新しいフォルダのパス & "\" & テキストファイル名 & ".txt"
でテキストを保存しましょう。
    • good
    • 1
この回答へのお礼

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

お礼日時:2006/11/20 23:14

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