- ベストアンサー
VBSで複数のCSVファイルを新しいXLSファイルの各シートに格納したい
自分にVBSの知識がない上にかなり時間がありませんので丸投げの形になってしまいますが、どうかよろしくお願いいたします。 やりたいことは以下の通りです。 (Excel非表示) (1)CSVファイルtest01.csv~test10.csvを引数から取得 (2)各CSVごとにCSV名のシートを作成し、それぞれのシートに各CSVを格納 (3)新しいXLSファイルtest.xlsに保存 以上です。 どうかよろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
コードを作ってみた風でもなく,回答者にやらせる丸投げです。 >時間がありませんので 下記だって私の場合、できるまでに何十年かかっているか。 プログラムの習得を甘く考えないこと。 ーー VBSを少し深く勉強したのでもないようだから、VBAだけでやる方法にしておくことを勧める。 ーー 回答者側のテストの簡素化の為に、CSVファイルは3つにした。 下記データを作って小数データながらテスト済み。 ””で文字列データを囲む式のCSVデータファイルなら修正が必要。 test01.csv test02.csv test03.csv 下記コードのフォルダのフルパスのユーザー名は実情で変えてください。 下記コードの場合は、データ受け入れシートはシートタブ的に左に寄せ集めてておくこと。 --- Sub test01() For i = 1 To 3 'CSVファイルサブ番号作成 n = Trim(Str(i)) n = Format(n, "00") MsgBox n '--データ受け入れシートを決定 Sheets(i).Activate Open "C:\Documents and Settings\xxxx\My Documents\test" & n & ".csv" For Input As #1 k = 1 'シート第1行目から While Not EOF(1) Line Input #1, a s = Split(a, ",") 'カンマで分離 For j = 0 To UBound(s) '行の各列にデータをセット ActiveSheet.Cells(k, j + 1) = s(j) Next j k = k + 1 'セットするデータ行を1行下へ Wend Close #1 Next i End Sub ーー このほかにVBScriptで ObjText.Readlineを使う Set objFile = CreateObject("Scripting.FileSystemObject") Dim MyFile, MyFileNew MyFile="・・・ Set objText=objFile.OpenTextFile(MyFile) RLog.Open "Select * From tblCoreImportTest",Conn,3,3 Do while not objText.AtEndOfStream strTextLine=objText.Readline data=Split(strTextLine,",") ・・・ や ーー http://ameblo.jp/morningshot/entry-10001147530.html Workbooks.OpenText fileName:="c:\test.csv", _ を使う方法や色々ある。