読者です 読者をやめる 読者になる 読者になる

四十三庵

蔀の雑記帳

Wordの表をExcelに写すExcel VBAコード

IT

Wordのすげー見づらい表(端末を100個くらい管理してる)があって、
それをExcelに綺麗に写してね、という仕事が振られた。
こんな仕事振られる人が世の中にどのぐらいいるのかわからないけども、
その仕事をこなすために、Excel VBAを書いたので、公開してみる。

Option Explicit

' 100行×11列のWordの表をExcelでコピーします
Sub WordToExcel()

Dim WordObj As Object 'Word Object
Dim wDoc As Object 'Word Document
Dim i, j
i = 1 '行
j = 1 '列

Set WordObj = CreateObject("Word.Application")
WordObj.Visible = True
Set wDoc = WordObj.documents.Open("xxx.doc") '←xxx:Wordファイルのフルパスを入れてね

Do Until i = 101
    Do Until j = 12
        ActiveSheet.Cells(i + 3, j) = wDoc.tables(1).Cell(i, j).Range.Text
        j = j + 1
    Loop
    j = 1 '再利用する
    i = i + 1
Loop

'この辺ちゃんと後始末できてるか自信なし
wDoc.Close
Set wDoc = Nothing
Set WordObj = Nothing

End Sub

という感じ。

  • 気づいたこと

・Office for Macだとこのコードは動かない。
 なぜならMac用OfficeのExcelVBAではWord操作がそもそもできないので、
 WordApplicationを開くところまでで、Openメソッドすら使えないでコケる。
・Word VBAはそれなりに使える(使ったことないけど)
結合したセルがあると死ぬ
(了)