Home » ワードマクロ・Word VBAの使い方 » Office連携 » 行単位で文字列をExcelに出力するWordマクロ

行単位で文字列をExcelに出力するWordマクロ

対象:Word2007, Word2010, Word2013, Windows版Word2016

開いているWord文書から一行ずつ・行単位で文字列を取得するExcelマクロをご紹介しました。

同じような処理をWordマクロにすることも勿論できます。

[スポンサードリンク]

一行ずつ新規Excelに出力するサンプルマクロ

以下のWordマクロを実行すると、アクティブな文書の文字列が、行単位で新しいExcelブックに書き出されます。

Sub 文字列を一行ずつ新規Excelに出力する()

 Dim win As Window
 Dim pg As Page
 Dim rc As Rectangle
 Dim ln As Line
 Dim xl_app As Object  ' Excel.Application
 Dim n As Long     ' 文字列を出力するExcelの行番号

 Set xl_app = CreateObject("Excel.Application")
 xl_app.Workbooks.Add
 xl_app.Visible = True

 Set win = Word.ActiveWindow
 win.View.Type = wdPrintView
 n = 1
 For Each pg In win.ActivePane.Pages
  For Each rc In pg.Rectangles
   For Each ln In rc.Lines
     xl_app.Cells(n, "A").Value = ln.Range.Text
     n = n + 1
   Next ln
  Next rc
 Next pg

 Set xl_app = Nothing

End Sub

サンプルマクロの解説

基本的な構造は、アクティブ文書の文字列を一行ずつ取得してメッセージボックスに表示するWordマクロと同じですから、まずはメッセージボックスに表示するだけのマクロを理解してください。

Excelに出力するために、新規Excelブックを開いて、
 Set xl_app = CreateObject("Excel.Application")
 xl_app.Workbooks.Add
Excelを表示する処理を行っておいてから、
 xl_app.Visible = True
3重のFor Each~Nextループの中で、文字列を出力して、
     xl_app.Cells(n, "A").Value = ln.Range.Text
出力用行番号をインクリメントする処理を追加しているあたりが、
     n = n + 1
メッセージボックスに表示するだけのマクロと異なっています。

関連語句
VBA, Visual Basic for Applications

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » Office連携 » 行単位で文字列をExcelに出力するWordマクロ

「Office連携」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.