つれづれ電脳記(日くらしPCに向かひて)

つれづれなるままに、日くらしPCに向かひて、その悪戦苦闘ぶりをそこはかとなく書き付くるおじさん。たまに雑談[管理人:goosyun]

つれづれなるままに、日くらしPCに向かひて、デジタル関係の悪戦苦闘ぶりをそこはかとなく書き付くるおじさんです。
たまに雑談してます。連絡・問い合わせフォームは、ページ最下部に置いています。[著者(運営人):goosyun]

(当ブログには本文中に広告リンクが含まれています。)

WordマクロVBAでテキストファイルを操作


 先日の記事で、テキストファイルをVBAで扱う方法について触れました。大量のテキストファイルを一つずつ順番に開いていき、中味のテキストをWordファイルに取り込むVBAマクロです。
 テキストファイルが膨大な数であっても、マクロを使うと、こういった作業も、一瞬で終わります。

 その記事は、
   こちらをご覧ください。

 テキストファイルは、
 Open ステートメントで開き、
 Close ステートメントで閉じます。
 その両ステートの間に、実行したい処理のコードを記述すればよいわけです。つまり、テキスファイルが開いて、閉じるまでの間に実行処理するわけです。

 Excel_VBAでテキストファイルの読み書きを行う上記操作に関しては、ネット上にたくさんの解説が掲載されています。
 Excelにテキストファイルからテキストを読み込んだり、逆にテキストファイルにExcel上のデータを書き込んだりする方法です。
 これと同じ方法によって、ワープロソフトWordでも同じことができます。ExcelマクロとWordマクロとでは、同じマクロ言語のVBAを使うため、コードの中味もほとんど変わることがないのです。


ワンころ先生のマクロ講義

 
 参考として、そのWordマクロのVBAコードを掲載しておきます。
 あくまでも、一つの例示です。ただし、このコードを利用して万一、データが破損したとしても、私は責任を負いかねます。その点はどうぞ、ご了承ください。(データのバックアップをとった上でお試しください。)

Sub テキストファイル操作() 
Dim myFile As String , myLine As String 
myFile = "C:¥Users¥Hoge¥Documents¥ほげほげ.txt" 
Open myFile For Input As #1 
Do Until EOF(1) 
  Line Input #1, myLine 
  ThisDocument.Range.InsertAfter myLine & vbCr 
Loop 
Close #1 
End Sub 


 Excelマクロは熟知していても、Wordマクロにはなじみがない方にとって、テキストをWord文書に取り込むのに、どう記述するか迷うかもしれません。
 Excelでは、一つ一つのセルを特定できるから、ある特定のセルにテキストを挿入できます。そうするとつい、Wordでも同じように、テキストを挿入する位置を特定しようとしがちです。
 ですが、Wordでは上記のとおり、「InsertAfter」を使えばOKです。これによって、Word文書の文末の次の行(正確には、次の段落)に、新しくテキストを取り込むことができます。




それでは、また次の記事で
goosyun


《2021年11月25日追記》
 Word文書の文末へのテキスト挿入方法はほかにもあります。
  こちらの記事をご覧ください。