2014-11-19 2 views
3

내 목표는 셀 참조를 사용하여 특정 단어 문서를 열고 셀이나 문자열을 전달하여 셀의 텍스트 문자열을 검색하는 것입니다 단어 VBA에있는 찾기 매크로로 본질적으로 Excel 매크로의 변수를 단어 매크로로 전달하려고합니다. 나는이 일을 할 수 없다. 내 목표는 변수 Party매크로 5이라는 Word 매크로에 전달하는 것입니다. 인수를 전달하지 않고 매크로라는 단어의 텍스트를 하드 코딩하면 아래의 코드를 얻을 수 있지만 Excel에서 인수를 전달하려고하면 작동하지 않습니다. 어떤 도움이라도 대단히 감사하겠습니다.VBA에서 매크로의 Excel 매크로를 Word 매크로로 전달하는 방법

내 엑셀 매크로 코드 :

Sub Open_Correct_WordDOC() 

    ' Open_Correct_WordDOC Macro 

    Dim WordApp As Object 
    Dim WordDoc As Object 

    Dim Party As String 
    Party = "commercial" 

    MsgBox Party 

    Set WordApp = CreateObject("Word.Application") 
    Set WordDoc = WordApp.Documents.Open(Filename:="J:enterdocumenthere.docx", _ 
     ReadOnly:=True) 
    WordApp.Visible = True 
    WordApp.Run "Normal.NewMacros.Macro5", Party 

    Set WordDoc = Nothing 
    Set WordApp = Nothing 
End Sub 

워드 매크로 코드 :

Sub Macro5(xlvar As String) 
    Selection.Find.ClearFormatting 
    With Selection.Find 
     .Text = xlvar 
     .Replacement.Text = "" 
     .Forward = True 
     .Wrap = wdFindContinue 
     .Format = False 
     .MatchCase = False 
     .MatchWholeWord = False 
     .MatchWildcards = False 
     .MatchSoundsLike = False 
     .MatchAllWordForms = False 
    End With 
    Selection.Find.Execute 
    Selection.Find.Execute 
End Sub 
+1

왜 Excel에서 단어 매크로를 전송하지 않습니까? 같은 방식으로 작동합니다. Word 매크로에서 사용하는 msWord 상수를 바꾸거나 선언해야합니다. – L42

+2

흥미로운 질문입니다. @ L42의 주석이 해결 방법을 제시 할 수도 있지만 근본적인 문제는 해결되지 않습니다. Word 매크로가 'Normal' 템플릿에있을 때 문제가 존재하는지 확인할 수 있습니다.'Application.Run '에 대한 Word VBA 도움말이 게시 된 코드를 정확히 제안 했음에도 불구하고 말입니다. –

답변

0

엑셀 모듈에서 :

Option Explicit 

Public WordApp As Object 
Public WordDoc As Object 
Public Party As String 

Sub Open_Correct_WordDOC() 

    ' Open_Correct_WordDOC Macro 

    Party = "commercial" 

    MsgBox Party 

    Set WordApp = CreateObject("Word.Application") 
    Set WordDoc = WordApp.Documents.Open(Filename:="H:\docsearch.docx", ReadOnly:=True) 
    WordApp.Visible = True 
    WordApp.Activate 
    WordApp.Run "Macro5", Party 
    Set WordDoc = Nothing 
    Set WordApp = Nothing 
End Sub 

나는 당신의 문제는 당신이 객체와 문자열을 선언이었다 생각 내부 엑셀 매크로. 나는 그들에게 을 공개으로 만들었고 나를 위해 코드는 잘 동작한다.

Addon : Word 매크로는 기본 서식 파일의 모듈에 있습니다. 이것은 나를 위해 잘 작동합니다.

+0

이것은 OP 문제를 해결하지 못합니다. Word 매크로를'Normal' 템플릿에서 문서로 옮겼습니다. –

+1

내 실수, 미안해. 난 대답을 업데이 트하고 기본 템플릿에서 Word 매크로를 모듈에 넣어. 그래도 여전히 효과가 있습니다. – TAKL

관련 문제