• ベストアンサー

ExcelのVBA

Aというフォルダ内にあるEXCELファイルにてC列を参照(C列にはAフォルダ内にあるテキストファイルのファイル名が記載されている)し、 D列にC列に記載されているテキストファイルの内容(15文字程度)をVBAで出力したいと思っています。 Googleで色々と調べてみたのですが、同じような内容が発見できなかったので、質問致しました。 非常に困っていますので、どなたか教えていただけませんでしょうか? よろしくお願いします。

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

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

ブックとテキストファイルは同じフォルダに保存してあるという前提で。 sub macro1()  dim buf as string  dim h as range  on error resume next  for each h in range("C1:C" & range("C65536").end(xlup).row)   open thisworkbook.path & "\" & h for input as #1   line input #1, buf   h.offset(0, 1) = buf   close #1  next end sub

charmyrink
質問者

お礼

回答ありがとうございました!希望通りの動作を確認できました。

その他の回答 (1)

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

>Aというフォルダ内にあるEXCELファイル これは、1つのファイルだけの話か。フォルダ内のすべてのエクセルファイルについてか。 それならこのエクセルブックを、ファイルー開くのダイアロウグの画面で見つけ、右クリックし「プロパティ」で「全般」を見るとフルパスが判るから、メモする。 このパスとブック名でブックを開く。そしてシート(シート名を質問には書け)のC列(の何行目かを質問に書け)の値を得れば良い。例 Worksheets(”Sheet1”).range(”C1") ブック名は前に指定するかWith End Withで限定(指定)する。 >D列にC列に記載されているテキストファイルの内容 エクセルシートのことを言っていながら、テキストファイルとは支離滅裂で意味不明。 >Googleで色々と調べてみたのですが、同じような内容が発見できなかったので ソン安はず内。余りに基礎的なので書いてないかも。 それなら、「VBA エクセル ファイルを開く」などで照会したら ーーー そもそも、どういうパターンのコードにになるかは、マクロの記録で判るのではないか。そんなこともせずに、質問しているのではないか。 初心者なら、まずマクロの記録が使えないか常にねんとうにおくべき。 ーー フォルダのエクセルファイルを順次とらえたいなら「VBA フォルダ エクセルファイル 読む」などでGoogle照会すること。 よくでる質問だ。