Wednesday, March 15, 2006
MS오피스/MS워드/VBA] 200자 원고지 매수(분량) 계산 매크로
전자문서의 원고지 매수 계산에는 아래아한글(HWP)이 사용된다. MS워드에는 원고지 분량 보기 메뉴가 없다. 무슨 CD 안에 MS워드용 원고지 계산 플러그인(?)이 들어 있다는데 찾지 못했다. 그래서 직접 VBA(Visual Basic for Applications)로 만들어 보았다.
물론 이 매크로에는 오차가 있다. 그러나 아래아한글에서도 버전에 따라 원고지 매수 계산에 상당한 차이가 난다. '한글97' 버전의 계산 결과가 현재 업계의 표준인 듯하다. 그리고 같은 버전의 아래아한글 내부에서도 어떤 방식으로 계산하느냐에 따라 결과에 오차가 있었다. "문서 등록 정보에서 확인하는 원고지 매수"와, "실제 200자 원고지 양식에 글을 채워넣는 방법"으로 계산하는 경우, 조금 또는 상당한 차이가 났다.
즉, 아래아한글2005의 경우
"파일/문서 정보/문서 통계"와
"도구/원고지 쓰기/'현재 문서에서 내용을 가져다 채움'에 체크/열기"
의 원고지 매수가 달랐다.
200자 원고지 1장에는 한국어 단어로 약48 단어가 들어 간다. 그래서 단어 개수를 세어 48로 나누어 주면 원고지 매수가 나온다. (소설의 경우이긴 하지만) 상당히 정확하고 아래아한글의 계산 결과와도 거의 차이가 없다. 물론 이것은 필자의 소설로 테스트해 본 결과이고, 편집 스타일, 표와 그림의 유무, 문체, 보조용언을 붙여쓰느냐 띄어쓰느냐 등의 요인에 따라 미묘한 차이가 날 수도 있다. 이때는 나누어주는 숫자를 45~51 정도로 적절히 조절해 가며, 아래아한글의 계산 결과와 대조해 보아야 한다. (정수가 아닌 실수도 가능) 그러나 소설 원고의 경우는 48~47정도면 대체로 적당할 것이다.
필자의 소설의 경우, 각 문단 사이에 한 줄의 빈줄을 넣고 있는데 이때는 48로 나누어 주면 정확했다. 문단을 붙여쓰는 전통적인 편집에서는 47로 나누는 것이 적당한 듯했다.
※ 워드2003을 기준으로 설명
(1) MS워드 실행한 후, Alt+F11 키를 누르면 VBA에디터가 나온다. 좌측 상단에 Normal이라는 문자열이 있다. 이 Normal을 클릭하여 선택한 후, 다시 마우스 오른쪽 클릭하여, "삽입/모듈"로 모듈을 하나 만든다. "Module1"이라는 식의 이름으로 만들어진다. "Module1"이라는 문자열을 더블클릭하여 편집창을 연다.
(2)
다음의 코드를 마우스로 모두 선택한 후 Ctrl+C 키로 복사하여, 그 "Module1" 편집창에 Ctrl+V 키로 붙여 넣는다.
Sub ManuscriptPaperCounter()
Set temp = Dialogs(wdDialogToolsWordCount)
temp.Execute
numWords = temp.Words
MsgBox "단어수: " & numWords & " 개" & vbCrLf & vbCrLf _
& "원고지: " & Round(numWords / 48, 1) & " 장" & vbCrLf & vbCrLf & vbCrLf _
& "※ 선택 영역 있을 때는 선택한 부분만 계산함" & vbCrLf & vbCrLf _
& "※ 워드2003의 경우:" & vbCrLf _
& " 단어 개수를 확인하면 문서를 고친 것으로 간주되는데" & vbCrLf _
& " 이때는 문서 전체를 <모두 선택> 한 후에 실행하면 됨" & vbCrLf & vbCrLf _
& "※ Ctrl+C: 클립보드로 내용 복사", , "원고지 매수 계산"
End Sub
(3) 좌측 하단의 "사전순/항목별..." 이라는 탭이 있는 곳에서 "Module1"이라는 이름을 ManuscriptPaperCounter 등의 이름으로 바꾸어 주는 것이 알기보기 쉽다. (메뉴의 "파일/파일 내보내기"로 위의 코드를 "ManuscriptPaperCounter.bas" 등의 별도 파일로 저장해 놓을 수도 있다.)
(4) Ctrl+S 를 눌러, "기본 서식 파일"인 Normal.dot 에, 방금 만든 이 매크로를 저장한다. (버전과 OS에 따라 다르겠지만, Normal.dot 은 "C:\Documents and Settings\<로그인 ID>\Application Data\Microsoft\Templates"에 위치. Normal.dot도 백업해 두는 것이 좋다.)
(5) VBA편집기를 닫고, 문서 편집창에서 Alt+F8를 누르면 다음과 같은 화면이 나온다.
클릭또는옆으로스크롤가능
실행 버튼을 누르거나 엔터키를 치면 매크로가 실행된다.
(6) 원고지 매수가 나왔다. (Ctrl+C를 누르면 창의 내용이 복사가 된다고 씌어 있는데 비단 이 창만이 아니라 다른 대부분의 메시지 박스에서도 Ctrl+C 키를 누르면 메시지의 내용이 클립보드로 즉 컴퓨터의 메모리로 복사된다. 이것을 메모장 등에서 Ctrl+V로 붙이면 된다.)
필자가 알기로, 원고지라는 것은 일본어를 쓰기 위해 일본인들이 만든 것이다. 띄어쓰기를 하는 한국어에서는 원고지가 그리 적합하지 않다는 생각이다. 서구의 경우처럼 원고 분량을 단어의 개수로 표현했으면 한다.
▶▶ 200자 원고지 서식, 양식; 아래아 한글 HWP 에서 사용하기
▶▶ 지금까지의 게시물을 원고지 분량으로 환산하면 약 1400매
단어 수, 200자 원고지 장수, 줄 수 계산기: ▶▶ 단어수 세기, 200자 원고지 매수 계산, 줄수 행 개수; Word Counter
물론 이 매크로에는 오차가 있다. 그러나 아래아한글에서도 버전에 따라 원고지 매수 계산에 상당한 차이가 난다. '한글97' 버전의 계산 결과가 현재 업계의 표준인 듯하다. 그리고 같은 버전의 아래아한글 내부에서도 어떤 방식으로 계산하느냐에 따라 결과에 오차가 있었다. "문서 등록 정보에서 확인하는 원고지 매수"와, "실제 200자 원고지 양식에 글을 채워넣는 방법"으로 계산하는 경우, 조금 또는 상당한 차이가 났다.
즉, 아래아한글2005의 경우
"파일/문서 정보/문서 통계"와
"도구/원고지 쓰기/'현재 문서에서 내용을 가져다 채움'에 체크/열기"
의 원고지 매수가 달랐다.
200자 원고지 1장에는 한국어 단어로 약48 단어가 들어 간다. 그래서 단어 개수를 세어 48로 나누어 주면 원고지 매수가 나온다. (소설의 경우이긴 하지만) 상당히 정확하고 아래아한글의 계산 결과와도 거의 차이가 없다. 물론 이것은 필자의 소설로 테스트해 본 결과이고, 편집 스타일, 표와 그림의 유무, 문체, 보조용언을 붙여쓰느냐 띄어쓰느냐 등의 요인에 따라 미묘한 차이가 날 수도 있다. 이때는 나누어주는 숫자를 45~51 정도로 적절히 조절해 가며, 아래아한글의 계산 결과와 대조해 보아야 한다. (정수가 아닌 실수도 가능) 그러나 소설 원고의 경우는 48~47정도면 대체로 적당할 것이다.
필자의 소설의 경우, 각 문단 사이에 한 줄의 빈줄을 넣고 있는데 이때는 48로 나누어 주면 정확했다. 문단을 붙여쓰는 전통적인 편집에서는 47로 나누는 것이 적당한 듯했다.
MS워드에서 원고지 매수 계산을 위한 매크로 만들기
※ 워드2003을 기준으로 설명
(1) MS워드 실행한 후, Alt+F11 키를 누르면 VBA에디터가 나온다. 좌측 상단에 Normal이라는 문자열이 있다. 이 Normal을 클릭하여 선택한 후, 다시 마우스 오른쪽 클릭하여, "삽입/모듈"로 모듈을 하나 만든다. "Module1"이라는 식의 이름으로 만들어진다. "Module1"이라는 문자열을 더블클릭하여 편집창을 연다.
(2)
다음의 코드를 마우스로 모두 선택한 후 Ctrl+C 키로 복사하여, 그 "Module1" 편집창에 Ctrl+V 키로 붙여 넣는다.
Sub ManuscriptPaperCounter()
Set temp = Dialogs(wdDialogToolsWordCount)
temp.Execute
numWords = temp.Words
MsgBox "단어수: " & numWords & " 개" & vbCrLf & vbCrLf _
& "원고지: " & Round(numWords / 48, 1) & " 장" & vbCrLf & vbCrLf & vbCrLf _
& "※ 선택 영역 있을 때는 선택한 부분만 계산함" & vbCrLf & vbCrLf _
& "※ 워드2003의 경우:" & vbCrLf _
& " 단어 개수를 확인하면 문서를 고친 것으로 간주되는데" & vbCrLf _
& " 이때는 문서 전체를 <모두 선택> 한 후에 실행하면 됨" & vbCrLf & vbCrLf _
& "※ Ctrl+C: 클립보드로 내용 복사", , "원고지 매수 계산"
End Sub
(3) 좌측 하단의 "사전순/항목별..." 이라는 탭이 있는 곳에서 "Module1"이라는 이름을 ManuscriptPaperCounter 등의 이름으로 바꾸어 주는 것이 알기보기 쉽다. (메뉴의 "파일/파일 내보내기"로 위의 코드를 "ManuscriptPaperCounter.bas" 등의 별도 파일로 저장해 놓을 수도 있다.)
(4) Ctrl+S 를 눌러, "기본 서식 파일"인 Normal.dot 에, 방금 만든 이 매크로를 저장한다. (버전과 OS에 따라 다르겠지만, Normal.dot 은 "C:\Documents and Settings\<로그인 ID>\Application Data\Microsoft\Templates"에 위치. Normal.dot도 백업해 두는 것이 좋다.)
(5) VBA편집기를 닫고, 문서 편집창에서 Alt+F8를 누르면 다음과 같은 화면이 나온다.
클릭또는옆으로스크롤가능
실행 버튼을 누르거나 엔터키를 치면 매크로가 실행된다.
(6) 원고지 매수가 나왔다. (Ctrl+C를 누르면 창의 내용이 복사가 된다고 씌어 있는데 비단 이 창만이 아니라 다른 대부분의 메시지 박스에서도 Ctrl+C 키를 누르면 메시지의 내용이 클립보드로 즉 컴퓨터의 메모리로 복사된다. 이것을 메모장 등에서 Ctrl+V로 붙이면 된다.)
필자가 알기로, 원고지라는 것은 일본어를 쓰기 위해 일본인들이 만든 것이다. 띄어쓰기를 하는 한국어에서는 원고지가 그리 적합하지 않다는 생각이다. 서구의 경우처럼 원고 분량을 단어의 개수로 표현했으면 한다.
▶▶ 200자 원고지 서식, 양식; 아래아 한글 HWP 에서 사용하기
▶▶ 지금까지의 게시물을 원고지 분량으로 환산하면 약 1400매
단어 수, 200자 원고지 장수, 줄 수 계산기: ▶▶ 단어수 세기, 200자 원고지 매수 계산, 줄수 행 개수; Word Counter
tag: office
엑셀 Excel | 워드 Word | VBA 매크로 | 오피스
너무나 좋은 정보 잘 보고 갑니다.
반갑습니다
(∩_∩)
너무 좋은 정보 감사합니다!!!!
<< Home