2016-04-22 9 views
0

VBスクリプトからワードVBAマクロを実行、私はVBスクリプトからVBAマクロコード語を呼び出すことができますどのように

VBAマクロコードが下にある単語:

Sub find_replace_vik_42216() 


Application.ScreenUpdating = False 

Selection.Find.ClearFormatting 
Selection.Find.Replacement.ClearFormatting 
With Selection.Find 
    .Text = "abc" 
    .Replacement.Text = "def" 
    .Forward = True 
    .Wrap = wdFindContinue 
    .Format = False 
    .MatchCase = False 
    .MatchWholeWord = False 
    .MatchWildcards = False 
    .MatchSoundsLike = False 
    .MatchAllWordForms = False 
End With 
With Selection 
    If .Find.Forward = True Then 
     .Collapse Direction:=wdCollapseStart 
    Else 
     .Collapse Direction:=wdCollapseEnd 
    End If 
    .Find.Execute Replace:=wdReplaceOne 
End With 



Selection.Find.ClearFormatting 
Selection.Find.Replacement.ClearFormatting 
With Selection.Find 
    .Text = "pqr" 
    .Replacement.Text = "xyz" 
    .Forward = True 
    .Wrap = wdFindContinue 
    .Format = False 
    .MatchCase = False 
    .MatchWholeWord = False 
    .MatchWildcards = False 
    .MatchSoundsLike = False 
    .MatchAllWordForms = False 
End With 
With Selection 
    If .Find.Forward = True Then 
     .Collapse Direction:=wdCollapseStart 
    Else 
     .Collapse Direction:=wdCollapseEnd 
    End If 
    .Find.Execute Replace:=wdReplaceOne 
End With 

Application.ScreenUpdating = True 

End Sub 

は親愛なるメンバーは、VBを作成することができます上記のコードを含むスクリプトファイル、私はコードを実行するために、VBスクリプトを呼び出すように。

私は私の脳を壊してしまい、Googleに困ってしまった。助けてください。

ありがとうございます。

ヴィク

答えて

1

文書を開いて、与えられたオプション、使用.Find.Execute methodのよりコンパクトな形を持つ2つの代替品を作るVBScriptコードの例があります:

Const wdFindContinue = 1 
Const wdReplaceOne = 1 

Dim objWord, objDocument 

Set objWord = CreateObject("Word.Application") 
objWord.Visible = True 
Set objDocument = objWord.Documents.Open("C:\test.docx") 
With objWord 
    .ScreenUpdating = False 
    With .Selection 
     .Collapse 
     With .Find 
      ' .Execute(FindText, MatchCase, MatchWholeWord, MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward, Wrap, Format, ReplaceWith, Replace, MatchKashida, MatchDiacritics, MatchAlefHamza, MatchControl) 
      ' "abc" -> "def" 
      .Execute "abc", False, False, False, False, False, True, wdFindContinue, False, "def", wdReplaceOne 
      ' "pqr" -> "xyz" 
      .Execute "pqr", False, False, False, False, False, True, wdFindContinue, False, "xyz", wdReplaceOne 
     End With 
    End With 
    .ScreenUpdating = True 
End With 
+0

それがうまく動作しますが、まだ開きますワード。私の要件は、単語の文書を開くことではありません。 – vicki

+0

@vicki、それはあなたの質問を編集し、あなたの要件を追加する方が良いです。まだWord文書を変更できるスクリプト環境用に作成されたツールはありません。唯一の方法は 'Word.Application' ActiveXを使うことです。 Wordを実行したくない理由は何ですか? Wordを目に見えない形で開いて、変更後に文書を保存して閉じることができますか? – omegastripes

関連する問題