• 締切済み

ワークブックのオープンについて

VBAでの質問です。 あるTEXT001.txtをワークブックオープンし、 2つめのテキストファイルTEXT002.txtを開かれている同じワークブックの 二枚目のシートとして開きたいのですが、どのようにすればよいのか どなたかご教示ねがえませんでしょうか? よろしくお願いいたします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

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

関連するQ&A