0
Private Sub CommandButton1_Click()
Dim oRng As Word.Range
Dim arrExcelValues()
Dim i As Long
Dim x As Long
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:\Risk Words.xlsx")
objExcel.Visible = False
i = 1
x = 0
Do Until objExcel.Cells(i, 1).Value = ""
ReDim Preserve arrExcelValues(x)
arrExcelValues(x) = objExcel.Cells(i, 1).Value
i = i + 1
x = x + 1
Loop
objExcel.Quit
For i = 0 To UBound(arrExcelValues)
Set oRng = ActiveDocument.Range
Options.DefaultHighlightColorIndex = wdYellow
With oRng.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = arrExcelValues(i)
.MatchWholeWord = True
.Replacement.Highlight = True
.Execute Replace:=wdReplaceAll
End With
Next
End Sub
Excelファイルから単語を選択し、WordファイルでWordが存在するかどうかを調べて強調表示するためにこのコードを記述します。しかし、Set oRng = ActiveDocument.Rangeでは動作しないようです。私はその前にMsgBoxを配置しても、Excelから取得した値を表示して配列に格納します。マクロがExcelファイルを開いた場所からWord文書にフォーカスを戻す方法
「うまくいかないようです。コードがエラーをスローしますか?もしそうなら:どのようなエラーとどの行?デバッグモードに入り、 "Set oRng。.."ステートメントの直前に "ActiveDocument"を照会してみてください – user3598756
@ user3598756の質問に加えて、このコードをトリガーするCommandButtonはどこにありますか? –
Word文書からマクロを呼び出す場合は、Excelファイルを開く前に 'oRng'を設定すると役に立ちます。 Wordに書き込もうとする前に 'Word.Application.Activate'を置くことができます –