매크로에서 용지함 지정 (Microsoft Word)
매크로를 사용하여 문서를 인쇄하는 경우 매크로가 출력을 보낼 실제 프린터를 지정할 수 있다는 것을 이미 알고 있습니다. 해당 프린터에서 사용할 특정 용지함도 지정하려면 어떻게해야합니까? 불행히도 이것은 Word에서 약간의 끈적한 개찰입니다. 간단한 둘러보기와 설명을 통해 그 이유를 명확히 할 수 있습니다.
Word에서 사용하는 용지함은 여러 요인에 따라 달라지며, 일부는 Word 자체의 제어를받지 않습니다. 예를 들어, 다음 중 일부는 사용중인 Word 버전에 따라 달라집니다.
-
도구 | 옵션 | 인쇄, 기본 트레이를 지정할 수 있습니다.
-
파일 | 페이지 설정 | 용지 공급 : 첫 페이지에 사용할 용지함과 다음 페이지에 사용할 용지함을 지정할 수 있습니다.
인쇄 대화 상자 (Ctrl + P *)에서 속성을 클릭하면 (프린터에 따라) 종종 주변을 뒤지고 용지함을 선택할 수 있습니다.
따라서 Word에는 용지함을 지정할 수있는 두 위치가 있으며 프린터에는 사용할 용지함을 설정할 수있는 자체 위치가있을 수 있습니다. 이 최종 설정 영역 (속성 단추를 통해)은 VBA의 “도달 범위”를 벗어납니다. 대화 상자에는 Word 자체가 아닌 프린터 드라이버의 설정이 표시됩니다.
설상가상으로 주어진 인쇄 작업에서 어떤 설정이 우선 순위를 갖는지에 대한 명확한 설명이 없습니다. 페이지 설정 대화 상자의 설정이 프린터 드라이버 설정보다 우선합니까? 프린터 드라이버 설정이 옵션 대화 상자 설정보다 우선합니까? 옵션 대화 상자 설정은 페이지 설정 설정과 어떤 관련이 있습니까? 당신은 아이디어를 얻습니다. 다양한 설정과 다양한 프린터 드라이버 설정 및 프린터 기능이 결합되어 혼동을 일으킬 수 있습니다. 한 가지 조건의 조합에서 작동하는 것이 다른 조건에서는 작동하지 않을 수 있습니다.
즉, 매크로를 통해 용지함 선택을 제어하기 위해 시도 할 수있는 몇 가지 방법이 있습니다. 매크로가 옵션 대화 상자와 페이지 설정 대화 상자에서 설정을 지정할 수 있다는 점을 기억하는 것이 중요합니다. 그러나 매크로는 인쇄 대화 상자의 속성 버튼을 통해 액세스 할 수있는 설정을 지정할 수 없습니다. (자세한 내용은 잠시 후에.)
페이지 설정 트레이 설정을 지정하려면 다음과 유사한 매크로를 사용하면됩니다.
Sub CustomPageSetup() Dim strTrayFirst As String Dim strTrayOther As String Dim lngTrayFirst As Long Dim lngTrayOther As Long 'Other setup code goes here strTrayFirst = System.PrivateProfileString(strIniFile, _ "Printer Trays", "Letter First") If strTrayFirst <> "" Then Select Case strTrayFirst Case "Automatic Sheet Feed" lngTrayFirst = wdPrinterAutomaticSheetFeed Case "Default Bin" lngTrayFirst = wdPrinterDefaultBin Case "Large Capacity Bin" lngTrayFirst = wdPrinterLargeCapacityBin Case "Large Format Bin" lngTrayFirst = wdPrinterLargeFormatBin Case "Lower Bin" lngTrayFirst = wdPrinterLowerBin Case "Manual Feed" lngTrayFirst = wdPrinterManualFeed Case "Middle Bin" lngTrayFirst = wdPrinterMiddleBin Case "Upper Bin" lngTrayFirst = wdPrinterUpperBin Case Else lngTrayFirst = wdPrinterLowerBin End Select End If strTrayOther = System.PrivateProfileString(strIniFile, _ "Printer Trays", "Letter Other") If strTrayOther <> "" Then Select Case strTrayOther Case "Automatic Sheet Feed" lngTrayOther = wdPrinterAutomaticSheetFeed Case "Default Bin" lngTrayFirst = wdPrinterDefaultBin Case "Large Capacity Bin" lngTrayOther = wdPrinterLargeCapacityBin Case "Large Format Bin" lngTrayOther = wdPrinterLargeFormatBin Case "Lower Bin" lngTrayOther = wdPrinterLowerBin Case "Manual Feed" lngTrayOther = wdPrinterManualFeed Case "Middle Bin" lngTrayOther = wdPrinterMiddleBin Case "Upper Bin" lngTrayOther = wdPrinterUpperBin Case Else lngTrayOther = wdPrinterUpperBin End Select End If With ActiveDocument.PageSetup .FirstPageTray = lngTrayFirst .OtherPagesTray = lngTrayOther End With End Sub
이 매크로는 길이에도 불구하고 페이지 설정 대화 상자의 용지 공급 탭에있는 첫 페이지 설정과 다른 페이지 설정의 두 가지 설정 만 설정합니다. 매크로도 완전하지는 않지만 실제 “설정”이 자신의 매크로에서 수행 될 수있는 방법의 예일뿐입니다. 이 특정 코드는 INI 파일 (파일 이름은 strIniFile 문자열에 지정됨)에서 두 가지 설정을 읽은 다음 검색된 값을 기반으로 설정을 만듭니다. 사용하려는 INI 파일의 이름을 제공하고 올바른 형식의 적절한 정보를 포함하도록 설정되었는지 확인해야합니다. (INI 파일 설정은이 팁의 범위를 벗어나지 만 다른 항목에서 많은 정보를 사용할 수 있습니다.) INI 파일에서 설정을 읽으면 Word가 이해할 수있는 설정으로 변환 된 다음 최종 With … 끝 구조로 대화 상자가 변경됩니다.
앞서 언급 한 이유로이 매크로에 예시 된 접근 방식은 모든 상황에서 작동하지 않을 수 있습니다. 그렇지 않은 경우 적어도 매크로에서 프린터에서 사용하는 용지함을 제어하지 못할 수 있습니다. 속성 버튼을 통해 설정된 용지함은 실제로 프린터 드라이버의 제어를받으며 프린터 드라이버 설정은 VBA에 “표시”되지 않습니다. 이 상황에서 잠재적 인 해결책은 단순히 다른 프린터 드라이버를 설정하는 것입니다. 다음 일반 단계를 따르십시오.
-
프린터에서 사용할 용지함 수를 결정합니다.
-
사용하려는 각 용지함에 대해 Windows에서 새 프린터를 정의합니다.
예를 들어, 3 개의 서로 다른 용지함을 사용하려는 경우 각각 용지함을 나타내는 이름을 가진 3 개의 프린터를 정의합니다.
-
프린터 정의를 마우스 오른쪽 버튼으로 클릭하고 프린터 속성을 변경하여 원하는 용지함에 인쇄합니다.
-
다른 프린터 정의 각각에 대해 3 단계를 반복하여 각각에 대해 다른 용지함을 지정했는지 확인합니다.
이 시점에서 여러 프린터 정의가 설정되어 있으며 각 정의는 동일한 프린터의 다른 용지함에 인쇄됩니다. 이제 매크로에서 원하는 프린터를 지정하여 출력물이 원하는 용지함으로 이동할 수 있습니다. 물론이 솔루션의 유일한 단점은 설정 작업이 상당히 많이 필요하다는 것입니다. 50 명의 사용자가있는 사무실에서 작업하는 경우 50 명 모두가 위에서 설명한대로 정의 된 각 프린터를 가지고 있는지 확인해야합니다.
Word에서 사용할 용지함은이 팁의 첫 부분에서 자세히 설명한대로 다양한 대화 상자에서 하나 이상의 설정을 선택하여 사용자가 지정할 수 있습니다. 이 때문에 일부 사람들은 사용자가 용지함을 지정하는 데 사용하는 키 누르기를 에뮬레이션하기 위해 SendKeys 문을 사용하여 성공했습니다. (Word에서 사용할 수있는 VBA 온라인 도움말에서 SendKeys에 대한 정보를 찾을 수 있습니다.)
SendKeys가 실제로하는 일은 사용자가 입력하는 것처럼 일련의 키 누르기로 키보드 버퍼를 채우는 것입니다. 그러나 SendKeys에는 잠재적 인 문제가 있습니다. 키 입력이 실제로 원하는 위치로 이동하는지 확인할 수있는 방법이 없기 때문에 신뢰할 수 없습니다. 다중 스레드 운영 체제 (예 : Windows)에서 다른 프로세스가 개입하여 명령을 탈선시킬 수 있습니다.
결론은 불행히도 “하나의 크기가 모든 것에 적합”하다는 것입니다.
매크로를 사용하여 용지함을 선택하는 솔루션입니다. 한 사람에게 효과가있는 솔루션이 다른 사람에게 효과가 없을 수도 있습니다. 따라서 어떤 솔루션이 자신에게 가장 잘 맞는지 실험해야하지만 다른 모든 사람에게도 효과가있을 것이라고 기 대해서는 안됩니다.
_ 참고 : _
이 페이지 (또는 WordTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.
link : / wordribbon-WordTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요]
.
_WordTips_는 비용 효율적인 Microsoft Word 교육을위한 소스입니다.
(Microsoft Word는 세계에서 가장 널리 사용되는 워드 프로세싱 소프트웨어입니다.)이 팁 (1697)은 Microsoft Word 97, 2000, 2002 및 2003에 적용됩니다. Word의 리본 인터페이스에 대한이 팁 버전 (Word 2007)을 찾을 수 있습니다. 이후) 여기 :
link : / wordribbon-Specifying_a_Paper_Tray_in_a_Macro [매크로에서 용지함 지정]
.