2016-04-20 6 views
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文書にフォーカスを戻す方法

+3

「うまくいかないようです。コードがエラーをスローしますか?もしそうなら:どのようなエラーとどの行?デバッグモードに入り、 "Set oRng。.."ステートメントの直前に "ActiveDocument"を照会してみてください – user3598756

+1

@ user3598756の質問に加えて、このコードをトリガーするCommandButtonはどこにありますか? –

+0

Word文書からマクロを呼び出す場合は、Excelファイルを開く前に 'oRng'を設定すると役に立ちます。 Wordに書き込もうとする前に 'Word.Application.Activate'を置くことができます –

答えて

0

Word文書からマクロを呼び出す場合は、Excelファイルを開く前にoRngを設定すると役立ちます。または、をWordに書き込む前に入力することができます。

関連する問題