- 締切済み
ワークブックのオープンについて
VBAでの質問です。 あるTEXT001.txtをワークブックオープンし、 2つめのテキストファイルTEXT002.txtを開かれている同じワークブックの 二枚目のシートとして開きたいのですが、どのようにすればよいのか どなたかご教示ねがえませんでしょうか? よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
1)受け皿としてのファイル。 結果としてエクセルのファイルを作るのですから、「○○ 。xls」が、作る・残る(存在する)事になります。 3通り考えられます。 A.既存のファイル「AAA.xls」にする。 B.新規ブックの「Book1.xls」にする。 C.テキストファイルの名前「BBB.txt」で 「BBB.xls」と言うブックを作ると同時に Sheet1に当たるところへ「BBB」と 言うシート名のシートを作る。 (2)(1)のAのやり方。 A.既存のファイル「AAA.xls」を開く。 B.TEXT001.txtを旧Dos時代のBasicの 様に、Open "TEXT001.txt" For Input As #1 で開き、ワークシートSheet1のRange にセットする。 C.TEXT002.txtを同様にOpen "TEXT002.txt" For Input As #2で開き、ワークシートSheet2の Rangeにセットする。Sheet1,Sheet2は空いているシ ートであれば何処でも良い。 (3)(1)のBのやり方。 A.新規のブックを開く。 B.TEXT001.txtを旧Dos時代のBasicの 様に、Open "TEXT001.txt" For Input As #1 で開き、ワークシートSheet1のRange にセットする。 C.TEXT002.txtを同様にOpen "TEXT002.txt" For Input As #2で開き、ワークシートSheet2の Rangeにセットする。Sheet1,Sheet2は空いているシ ートであれば何処でも良い。 (4)(1)のCのやり方。 A.OpenText でTEXT001.txtを開く。ブック名も TEXT001.xlsにできるし、Sheet1に当たるシートは TEXT001というシート名になる。 B.TEXT002.txtをOpen "TEXT002.txt" For Input As #2で開き、ワークシートSheet2の Rangeにセットする。Sheet2は空いているシ ートであれば何処でも良い。 結局(2)のA.B.と(3)A.のやり方が判れば、どれでも出きることが判る。 (5)(2)のA.B の例 Sub test01() Workbooks.Open Filename:="C:\My Documents\AAA.xls" Open "TEXT001.txt" For Input As #1 i = 1 While Not EOF(1) Input #1, a, b, c, d MsgBox i Worksheets("sheet1").Cells(i, 1) = a Worksheets("sheet1").Cells(i, 2) = b Worksheets("sheet1").Cells(i, 3) = c Worksheets("sheet1").Cells(i, 4) = d i = i + 1 Wend Close #1 ActiveWorkbook.SaveAs Filename:="TEXT001.xls" End Sub 列数はa,b,c,dの4項目(4列)と仮定しました。 (6)(4)のA.のやり方 Sub test01() Dim TextPath As String TextPath = "c:\My Documents" & "\TEXT001.txt" Workbooks.OpenText Filename:=TextPath, _ DataType:=xlDelimited, _ comma:=True, Space:=True, _ other:=True, otherchar:="#" End Sub