VBA를 사용하여 단어 문서에 캡션을 추가하려고합니다. 다음 코드를 사용하고 있습니다. 데이터는 시트 당 하나씩 Excel 스프레드 시트의 표로 시작합니다. 문서라는 단어에 테이블 목록을 생성하려고합니다.VBA 단어 자막 추가
다음 코드로드 워드 템플릿을 편집 시작 :
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add("Template path")
' Moving to end of word document
objWord.Selection.EndKey END_OF_STORY, MOVE_SELECTION
' Insert title
objWord.Selection.Font.Size = "16"
objWord.Selection.Font.Bold = True
objWord.Selection.TypeText ("Document name")
objWord.Selection.ParagraphFormat.SpaceAfter = 12
objWord.Selection.InsertParagraphAfter
다음 코드는 워크 시트의 시트를 통해 반복하고 테이블과 헤더를 추가합니다.
' Declaring variables
Dim Wbk As Workbook
Dim Ws As Worksheet
Dim END_OF_STORY As Integer: END_OF_STORY = 6
Dim MOVE_SELECTION As Integer: MOVE_SELECTION = 0
Dim LastRow As Integer
Dim LastColumn As Integer
Dim TableCount As Integer
Dim sectionTitle As String: sectionTitle = " "
' Loading workbook
Set Wbk = Workbooks.Open(inputFileName)
' Moving to end of word document
objWord.Selection.EndKey END_OF_STORY, MOVE_SELECTION
' Looping through all spreadsheets in workbook
For Each Ws In Wbk.Worksheets
' Empty Clipboard
Application.CutCopyMode = False
objWord.Selection.insertcaption Label:="Table", title:=": " & Ws.Range("B2").Text
셀 B2에는 다음 텍스트가 있습니다. "표 1 : 요약". 문서라는 단어가이 텍스트를 반영하는 헤더를 갖기를 희망합니다. 문제는 테이블 번호가 두 번 반복되고 결과가 나타납니다 : "Table 1 : Table 1 : Summary". 나는 다음과 같은 변경을 시도했다. 둘 다 오류를 낳았다.
내가 뭘 잘못하고 있으며, 더 일반적으로 삽입 방법은 어떻게 작동합니까?
이 글을 읽으려고했지만 구문에 혼란 스럽습니다. MS Word에서 캡션 스타일을 사용하는 내장 기능의
당신이 무슨 일을하는지의 명확한 설명. 귀하의 코드는 Excel ("셀 B2")로 작성되고 실행되며 Word 문서에서 작동한다는 것을 암시합니다. 캡션을 삽입 할 위치를 '선택'하는 방법은 무엇입니까? 문제에 대한 대답은 캡션을 삽입하기 전이나 후에 선택 항목을 삭제하는 선을 따라있을 가능성이 큽니다. – PeterT
고맙습니다. 제 질문을 명확하게하기 위해 코드와 컨텍스트를 추가하려고했습니다. – oli5679
내가보기에 한 가지 문제는 Word 'InsertCaption'메서드가 캡션의 일부로 'Table nnn :'을 자동으로 포함한다는 것입니다. 내가 보는 또 다른 문제는 '자막'을 삽입하고 있지만 모두 한 위치에 할당한다는 것입니다. 일반적으로 캡션은 모양이나 객체를위한 것입니까? Excel에서 데이터를 '가져 오기'위해 코드를 제외 시켰습니까? 그렇지 않다면 원하는 내용 만 목차와 같은 것입니다. 그런 다음 접근 방식을 변경해야합니다. –