• ベストアンサー

VBA 開いているシート上にテキストファイルを開く

 今晩は、質問させていただきます。どうぞよろしくお願いいたします。  環境:Win7+Excel2007 でございます。  今開いております「Book1」上に「シート1」「シート2」があるといたしまして、 「シート2」上に、「C:\ファイル1.txt」(←1000行程ございます)を 「1行ずつ読み込むのではなく、Workbooks.OpenTextのように一度に開く」事は可能でございますでしょうか??  行数が多いのでReadLineをいたしますよりは、何か「開いているエクセルファイル上にテキストファイルをドラッグして開いた時のような方法」はないかな、と検索いたしておりまして、 OpenTextを見つけて試しましたが、新規エクセルファイル上で開いてしまいます。。。  もし何かよさそうな方法がございましたら、是非ともアドバイスいただきたく どうぞよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

一般的なテキストファイルを前提に。 たとえば: sub macro1()  dim FSO as object  dim buf as string  dim a as variant  set fso = createobject("Scripting.FileSystemObject")  with fso.getfile("C:\test\test.txt").openastextstream   buf = .readall   a = split(buf, vbcrlf) ’実際の改行コードに気を付ける   worksheets("Sheet2").range("A1").resize(ubound(a) + 1, 1) = application.transpose(a)   .close  end with  set fso = nothing end sub #OpenTextで開いた後に、たとえばシートごとブックに取り込むとか、ふつーにコピー貼り付ける等の方が遥かに簡単と思いますが。まぁお好みの方法で。

MKT_
質問者

お礼

【解決☆】  keithin様  どうもありがとうございます!m(_ _)m 以前も助けていただいております^^ 残念ながらkeithin様のありがとうポイントキリ番(9万)とりそこねました。。。  本質問につきましては、keithin様のおかげでうまくいきました^^  で、今気づいたのでございますが、keithin様のコードって何故か頭文字が小文字ですので、全部ここ(OKWave上のテキストボックス)にソラで書かれておられるのでございましょうか(←VBEからコピペしたのではなく)。凄いですね(^ω^ もし自分が同じ事をやったら、1行に1個くらいのペースでバグを入れる自信が。。orz しかも動作確認なされていないところがまた(凄  余談でございましたm(_ _)m この度はご親切に誠にありがとうございました!!m(_ _)mm(_ _)m

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

「マクロの記録」は試しましたか?

MKT_
質問者

お礼

 bin-chan様  はい、別ファイルで開いてしまいますのと、 かつマクロ内にも何も記録されませんでした。  ご親切にどうもありがとうございました!!m(_ _)m

関連するQ&A