経緯
Wordには、Excelのように「A1」や「F6」といったセルアドレスの概念がありません。
そのため、Wordのテーブル内の特定位置にあるデータを取り出し、それをExcelの中で検索する方法を調べてみました。
結果として、Wordのテーブルの位置を (行,列) で指定し、取得した値を InStr() 関数でExcel内のデータと照合することで、目的を達成できました。
今回やりたいこと
- Wordのテーブル(2,2) にある値を取得
- その値がExcelの1行目・A列〜Z列のどこかに含まれているかを調べる
- 含まれているセルのアドレスをメッセージボックスで表示する
使用するVBAコード(Word側)
以下が実際に使用したコードです。Wordのマクロとして実行します。
Sub SearchExcelFromWord()
Dim xlApp As Object
Dim xlBook As Object
Dim xlSheet As Object
Dim folderPath As String
Dim fileName As String
Dim searchValue As String
Dim cell As Object
Dim found As Boolean
Dim doc As Document
Dim tbl As Table
Dim col As Integer
Set doc = ActiveDocument
Set tbl = doc.Tables(1)
' (2,2)のセルのテキストを取得し、改行や末尾文字を除去
searchValue = tbl.Cell(2, 2).Range.Text
searchValue = Replace(searchValue, vbCr, "")
searchValue = Left(searchValue, Len(searchValue) - 1)
Set xlApp = CreateObject("Excel.Application")
folderPath = "C:\Users\mori\デスクトップ\"
fileName = Dir(folderPath & "*.xlsx")
If fileName = "" Then
MsgBox "フォルダ内にExcelファイルが見つかりませんでした。"
Exit Sub
End If
Set xlBook = xlApp.Workbooks.Open(folderPath & fileName)
Set xlSheet = xlBook.Sheets(1)
found = False
For col = 1 To 26
If InStr(1, xlSheet.Cells(1, col).Value, searchValue) > 0 Then
MsgBox "Found at " & xlSheet.Cells(1, col).Address(0, 0)
found = True
Exit For
End If
Next col
If Not found Then
MsgBox "Value not found"
End If
xlBook.Close SaveChanges:=False
xlApp.Quit
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
Set tbl = Nothing
Set doc = Nothing
End Sub
補足:このコードのポイント
tbl.Cell(2,2).Range.TextでWordのテーブルからセル値を取得しますInStr()関数を使い、Excel側のセル値に対して「部分一致」で検索を行っています- 値の末尾に付く改行や制御文字を削除しておかないと、比較が失敗します
応用可能なシーン
- WordにあるデータとExcelマスタを突き合わせて存在チェックをしたいとき
- Wordに入力されたIDやコードを使って関連データを抽出したいとき
- Wordをフロント、Excelをデータベースのように使いたいとき
まとめ
Wordのテーブルの値を取得し、Excel内で検索するには、座標指定(Cell(row, col))+ 文字列操作 + InStr()関数が有効です。
このようにVBAを組み合わせることで、異なるOfficeアプリ間の連携が可能となります。
実務でも十分に活用できる内容ですので、ぜひ試してみてください。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
