2017-11-19 5 views
0

최근에 C#을 배우기 시작했습니다. C#에서 VBA로 작성된 매크로를 작성하려고합니다. 사실 몇 가지 작업을 수행하는 버튼이있는 Word 용 새 리본을 만들려고합니다. 그래서 버튼을 만들려고합니다. 활성 문서에서 간단한 찾기/바꾸기를 수행합니다. 나는 마이크로 소프트 사이트에서이 코드를 복사하지만, 밑줄 단어 MISSING 유지 : 문제가 여기에 무엇C# 대체 단어 찾기

public void button1_Click(object sender, RibbonControlEventArgs e){ 
     Word.Find findObject = Globals.c_sharp.Application.Selection.Find; 
     findObject.ClearFormatting(); 
     findObject.Text = "find me"; 
     findObject.Replacement.ClearFormatting(); 
     findObject.Replacement.Text = "Found"; 

     object replaceAll = Word.WdReplace.wdReplaceAll; 
     findObject.Execute(ref missing, ref missing, ref missing, ref missing, ref missing, 
      ref missing, ref missing, ref missing, ref missing, ref missing, 
      ref replaceAll, ref missing, ref missing, ref missing, ref missing); 
    } 

를?

+0

누락 신고서를 복사하여 복사하십시오. 그것 아마 api 단어에서 일부 nullvalue. 그것은 밑줄이 그어져 있습니다 - 잘 - 당신이 복사 한 코드에서 누락되었습니다. 여기를 보는 것이 더 빠를 것입니다. https://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.find.execute(v=office.15).aspx 그런 다음이 질문을 작성하십시오. - 연구는 다음과 같이 요구하기 전에옵니다. api라는 단어는 메서드의 매개 변수가 많은 것으로 유명합니다. 대부분의 시간을 '실종'상태로 둘 수 있습니다. 즉, 합리적인 값으로 채워지지 않습니다. –

+0

사실, 물어보기 전에. 너는 많은 도움을 주었고, 나는 실종되었다. = Type.Missing; – Sasa

답변

0

Type.Missing은 이전 버전의 C#에서 필요합니다. 현재 버전에서는 다음과 같이 단순화 할 수 있습니다.

Globals.c_sharp.Application.ActiveDocument.Content.Find.Execute("find me", 
       Format: false, ReplaceWith: "Found", Replace: Word.WdReplace.wdReplaceAll);