주요 콘텐츠로 건너뛰기 이 브라우저는 더 이상 지원되지 않습니다. 최신 기능, 보안 업데이트, 기술 지원을 이용하려면 Microsoft Edge로 업그레이드하세요. Word 문서 및 Excel 통합 문서의 데이터를 사용하여 Outlook에서 메시지를 보내는 VBA 매크로
이 문서의 내용요약이 문서에서는 Microsoft Word 문서 및 Microsoft Excel 통합 문서의 데이터를 사용하여 Microsoft Outlook에서 메시지를 보내는 Visual Basic for Applications 매크로에 대해 설명합니다. 추가 정보중요 Microsoft에서 제공하는 프로그래밍 예제는 예시를 위한 것일 뿐이며 이와 관련하여 명시적이거나 묵시적인 어떠한 보증도 하지 않습니다. 이는 상품성이나 특정 목적에 대한 적합성의 묵시적인 보증을 포함하며 이에 제한되지 않습니다. 이 문서에서는 예제에 사용되고 있는 프로그래밍 언어와 프로시저를 만들고 디버깅하는 데 사용되는 도구를 사용자가 잘 알고 있는 것으로 가정합니다. Microsoft 지원 엔지니어는 사용자에게 도움이 되도록 특정 프로시저에 대한 기능을 설명할 수 있지만 사용자의 특정 요구 사항에 맞도록 예제를 수정하여 추가 기능을 제공하거나 프로시저를 구성하지는 않습니다. 다음 예제에서는 워크시트에 정의된 두 개의 이름이 있다고 가정합니다.
Microsoft Word 문서도 있어야 합니다. 이 문서의 텍스트는 매크로에서 메일 메시지의 메시지 본문으로 사용됩니다.
Microsoft 365용 Excel Microsoft 365용 Word Microsoft 365용 PowerPoint Excel 2021 Word 2021 PowerPoint 2021 Excel 2019 Word 2019 PowerPoint 2019 Excel 2016 Word 2016 PowerPoint 2016 Excel 2013 Word 2013 PowerPoint 2013 Excel 2010 Word 2010 PowerPoint 2010 더 보기...간단히 문서 검사관은 문서에 숨겨진 데이터를 포함할 수 있는 다음 항목 중 하나 이상을 Office(Word, Excel 또는 PowerPoint.
문제이러한 항목을 제거하면 문서가 제대로 작동하지 않을 수 있기 때문에 문서 검사기에서 이러한 항목을 제거할 수 없습니다. 권장 해결 방법
추가 도움이 필요하신가요?이번 게시물은 번외 게시물이라 할 수 있다. 사실 프로젝트 follow는 마무리 되었다. 웹 상에서 출석체크도 할 수 있게 되었고, 이에 따라 특정 칸에 개인의 출석현황과 조원 들의 출석 명수가 기록된다. 또한 기도제목을 작성하면 엑셀 파일에 해당 인원의 기도제목 또한 문자열 값으로 들어간다. 이것만으로도 하나의 엑셀파일에 개인의 출석률과 기도제목을 다 담을 수 있는 결과가 나온다. 끝이다. 하지만 마지막으로 남은 것이 있다. 바로 엑셀로 저장된 기도제목(pray)을 사람이 보기 편한 형식으로 옮기는 것이다. 해당 프로젝트의 목적은 사람이 하는 일을 줄이는 것이었다. 매번 출석을 일일히 종이에서 엑셀로 옮겨적는 것을 없애고 싶었고, 매달 적어낸 기도제목을 일일히 타이핑하여 문서화 시키는 것을 없애고 싶었다. 이러한 목적에 맞추어 엑셀파일에서 특정 셀들의 값들을 빼와 word파일로 원하는 형태의 포맷으로 바꾸는 VBA코드를 작성하였다. 파일 자체를 올려 누구든지 코드를 따갈수 있도록 하고 싶은데, 파일에 개인정보가 너무 많아 그러지 못하는 점이 아쉽다... 정말 많은 구글링과 시도 끝에 나온 결과물 이기 때문에 이 글을 찾은 사람도 그와 같은 과정을 하고 있다고 생각한다. 해당 코드를 사용하기 위해서는 속성에서 몇가지 체크박스들을 체크하는 등의 선행작업이 있었다. 아마 엑셀에서 word 언어를 사용하기 위한 일정의 라이브러리 추가같은 개념이었던 것 같다. 아쉽게도 너무나 오래되어 기억나지 않는다.. 구글링하면 나오겠지만 귀찮달까...ㅎㅎ 이 글을 찾은 시점에서 이미 그런 정보들은 다른 곳에서 얻었을 것이라 생각한다. 그저 코드를 올리고 해석하는 것으로 해당 글은 끝내도록 하겠다. 참고용도로 사용하길..
해당 코드를 이해하려면 엑셀파일의 형태를 알아야 할 것이다. 엑셀파일의 형태는 다음과 같다. 위의 VBA코드의 목적은 다음과 같다. 구분 : 리더, 성별 : 남, 학년 : 5, 이름 : 구르는돼지, 기도제목 : 1. 잘되게 해주세요. 구분 : (null), 성별 : 남, 학년 : 4, 이름 : 홍길동, 기도제목 : 1. 예시입니다. 라는 열이 있다면 해당 열을 word 파일에 다음과 같이 입력하는 것이다. 리더 남5 권민기 1. 잘되게 해주세요. 남4 홍길동 1. 예시입니다. 그렇다면 코드에 대한 간략한 설명을 통해 어떻게 이런 과정이 이뤄지는지 알아보자. 대략적으로 주석을 달아두었다. 참고바란다. If IsEmpty(Worksheets("attendance").Range("A" & i)) = False Then job = job & Worksheets("attendance").Range("A" & i) End If name = name & Worksheets("attendance").Range("E" & i).Value sex = " " & sex & Worksheets("attendance").Range("C" & i).Value grade = grade & Worksheets("attendance").Range("D" & i).Value pray = pray & Worksheets("attendance").Range("F" & i).Value 해당 코드를 통해 i번째 데이터에 대해 각각의 값을 변수에 넣는다. A열은 null값을 가질 수도 있어서(비어있을 수 있다.) IsEmpty메소드를 사용하였다. 그 외에 다른 변수들에도 각각 위치에 맞게 할당해줄 수 있다. .Content.InsertAfter job & sex & grade & " " & name .Content.InsertAfter 함수는 뒤에 써진 String 값을 Word에 작성한다. 문자열의 합은 &를 통해 합칠 수 있다. 많은 언어에서의 +와 비슷한 역활을 한다. .Content.Paragraphs.Last.Range.무언가 가장 마지막에 적힌 글자에 대한 설정을 할 때 사용한다. .Content.Find.Execute FindText:="^p%%%", ReplaceWith:="", Replace:=wdReplaceAll 찾고 바꾸기 이다. 하나만 바꿀때는 뭘 쓰는지는 구글링을 하자. 블로그에 쓰다보니 replace같은거 안쓰고 .Content.InsertParagraphAfter 이걸 한줄 지웠으면 되는 일이라는 것을 깨달았다... 하지만 참고하라고 그냥 남겨두도록 하겠다. (세상에 난 바보인가...) 나같은 경우 기도제목.docx 파일을 아무것도 작성하지 않은 빈 파일 상태로 저장해 두고 해당 매크로를 작동시켰다. 질문이 있다면 댓글로 하길 바란다!! |