반응형

EXCEL - VBA 103

인쇄 내용을 PDF, XPS 파일로 저장하기

PrintOut 메서드를 이용해서 ActiveSheet.PrintOut to:=1, ActivePrinter:="Microsoft Print to PDF" 라고 매크로를 작성할 수도 있지만 ExportAsFixedFormat 메서드를 이용해 PDF 파일 포맷으로 저장할 수 있습니다. 1. 구문expression.ExportAsFixedFormat (Type, FileName, Quality, IncludeDocProperties, IgnorePrintAreas, From, To, OpenAfterPublish, FixedFormatExtClassPtr) expression은 Worksheet 또는 Workbook가 될 수 있습니다. 인수는 아래와 같습니다.인수 명필수/선택데이터 형식설명Type필수xlFi..

EXCEL - VBA 2023.08.24

인쇄관련 PageSetup(페이지 설정) VBA

8. 그 밖의 설정 이 글에서 PrintOut 메소드에 대해 알아봤는데, 좀 더 상세한 페이지 설정에 대해 알아보겠습니다. 가. 워크시트에서 설정하기 메뉴로 보면 파일 - 인쇄를 누르면 아래 화면이 나오는데, 여기서 페이지 설정을 누르면 나오는 페이지 설정 창에서 하는 것을 VBA로 구현하는 것인데, '반복할 행과 열'은 위 화면에서 설정할 수 없고, 페이지 레이아웃 탭의 인쇄 제목 명령을 누르면 나오는 페이지 설정 화면의 시트 탭에서 설정해야 합니다. 나. VBA로 구현하기 Sub 인쇄6() Range("a1").Select Application.PrintCommunication = False With ActiveSheet.PageSetup .PaperSize = xlPaperA4 '용지 규격 A4 '..

EXCEL - VBA 2023.08.23

엑셀 파일 인쇄 하기(PrintOut Method)

아래 파일을 이용해 인쇄하는 방법을 매크로로 작성해 보겠습니다. 시트의 내용은 아래와 같이 2019년도의 행정구역별 지목별 면적입니다. 1. PrintOut 메소드의 구문 Worksheets.PrintOut Method를 보면 오른쪽에 C#과 VB가 있는데, VB를 선택하면 아래와 같이 PrintOut에 대한 구문이 보입니다. 2. 미리 보기 가. 방법 1 위 파일을 연 다음 개발도구 - Visual Basic 명령을 눌러 VB Editor를 실행한 후 삽입 - 모듈을 눌러 모듈을 삽입한 다음 오른쪽 코드 창에 아래와 같이 입력한 후 Sub 인쇄1() ActiveSheet.PrintOut preview:=True End Sub F5키 또는 아래 화면에서 세모 모양의 실행 아이콘을 클릭하면 아래와 같이 인..

EXCEL - VBA 2023.08.22

엑셀 VBA에서의 주석 처리

1. 주석의 기능 주석이란 프로그램에 대한 설명을 추가하는 기능과 프로그램을 디버깅하는 동안 코드를 실행에서 제외시키는 기능을 합니다. 2. 주석 처리 기호 모든 프로그래밍 언어는 주석 기능을 가지고 있는데, 언어별로 주석 처리 기호가 다르며, 한 줄 주석과 여러 줄 주석을 처리하는 방법이 다르기도 합니다. 자바를 예로 들면 한 줄 주석 처리는 //로 처리하고, 여러 줄 주석 처리는 /*로 시작해서 */로 끝납니다. 엑셀 VBA에서는 한 줄이나 여러 줄이나 주석 처리할 때 항상 작은따옴표(')를 사용합니다. 3. '주석 블록 설정' 구성 방법 주석 블록 설정을 편리하게 할 수 있도록 주석 블록 설정과 해제 아이콘이 들어 있는 편집 도구 모음을 표준 도구 모음 아래에 배치할 수도 있고, 컨텍스트(바로 가기..

EXCEL - VBA 2023.08.03

여러 가지 조건을 만족하는 값을 찾을 때(3) - 동적 배열을 이용한 속도 개선

동적 배열을 이용해서 사용자 정의 함수 코드를 수정했더니 훨씬 속도가 빨라졌습니다. 1. 사용자 정의 함수 구문 가. 기존 코드 Option Explicit Option Base 1 Function multi_vlookup(lookup_value, lookup_array, return_array As Range) Dim i As Double '배열은 그대로 두고, 범위일 경우 배열로 변환 Dim Range_to_Array As Variant Debug.Print (vbCrLf & "범위 배열 변환1 : " & Now()) Range_to_Array = lookup_array For i = 1 To UBound(Range_to_Array) If i >= 2 And Len(Range_to_Array(i, 1..

EXCEL - VBA 2023.07.27

여러 가지 조건을 만족하는 값을 찾을 때(2-2) - 사용자 정의 함수(2)

4. 사용자 정의 함수 설명 가. Option Explicit 변수에 대한 선언을 명시적으로 하라는 것입니다. 5행에 커서를 둔 상태에서 위 편집 도구 모음(보기 > 도구모음 > 편집을 눌러 추가)에서 주석 블록 설정 아이콘을 눌러 5행을 주석처리하면 해당 줄 맨 앞에 작은따옴표가 추가되고, 글자가 녹색으로 바뀝니다. 이제 기본 도구 모음에서 엑셀 아이콘을 눌러 엑셀로 돌아간 다음 C2셀에서 F2키를 눌러 편집모드로 들어간 다음 엔터 키를 누르거나, 수식 입력 줄을 클릭해서 커서를 넣은 다음 엔터 키를 눌러 수식을 실행하면 아래와 같이 '변수가 정의되지 않았습니다'란 에러 메시지가 표시됩니다. 따라서, 변수 i엘 대한 주석을 풀어서 변수 i는 선언을 해야 합니다. 나. Option Base 1 배열의 인..

EXCEL - VBA 2023.07.26

여러 가지 조건을 만족하는 값을 찾을 때(2-1) - 사용자 정의 함수(1)

XLookup함수가 뛰어나기는 하지만 Excel 2021 버전이상에서만 사용할 수 있기 때문에 사용자 정의 함수를 만들어 사용하려고 합니다. 만들면서 한 열만 지정하는 경우는 범위로 되고, 열을 &연산자로 연결하면 배열로 돼서 이를 해결하느라 고생 좀 했습니다. 사용자 정의 함수는 추가기능 파일, 확장자 xla(m) 파일에 모아 놓고 사용하는 것이 좋습니다. 그렇지만 설명이므로 모듈에 만드는 것을 기준으로 설명하겠습니다. 1. VBA 에디터 실행 및 모듈 삽입 개발도구 탭이 없다면 파일 - 옵션에서 Excel 옵션 창을 연 후 리본 사용자 지정 메뉴를 선택하고, 개발도구 왼쪽에 체크해야 합니다. 개발 도구 탭을 누른 후 Visual Basic 명령을 눌러 Visual Basic 에디터를 엽니다. 그리고,..

EXCEL - VBA 2023.07.25

텍스트로 된 수식의 값 구하기(4 - 2) - 사용자 정의 함수

텍스트로 된 수식의 값 구하기(4 - 1) - Evaluate 함수에서 VBA의 Evaluate 함수를 이용해 수식의 값을 구할 수 있다는 것을 알았는데, https://lsw3210.tistory.com/entry/%ED%85%8D%EC%8A%A4%ED%8A%B8%EB%A1%9C-%EB%90%9C-%EC%88%98%EC%8B%9D%EC%9D%98-%EA%B0%92-%EA%B5%AC%ED%95%98%EA%B8%B04-1-Evaluate-%ED%95%A8%EC%88%98 직접 실행창에서 매번 실행할 수는 없으므로 사용자 정의 함수를 만들어 사용해야 합니다. 1. VB 에디터 실행 개발도구 - Visual Basic을 눌러 VB Editor를 연 다음 엑셀 파일명을 클릭한 다음 사용자 정의 폼 삽입 옆의 콤..

EXCEL - VBA 2023.07.20

텍스트로 된 수식의 값 구하기(4 - 1) - Evaluate 함수

1. Evaluate 함수 가. 정의 엑셀 이름을 오브젝트 또는 값을 변환합니다(Converts a Microsoft Excel name to an object or a value). 이름(Name)은 수식(Formula)이 될 수도 있고, 셀 주소 또는 범위 등이 될 수도 있습니다. 나. 구문 expression.Evaluate (Name) - expression은 오브젝트를 가르키는 변수로 Application, Book1.xlsx, Sheet1 등이 될 수 있습니다. - Name은 아래와 같이 다양한 형태가 될 수 있는데, VBA 에디터를 실행한 후 직접 실행창에서 간단히 결과를 확인할 수 있습니다. 다. Name의 종류 및 사용 예 Name 사용 예 Formulas 수식으로 텍스트로 된 수식도 가..

EXCEL - VBA 2023.07.19

텍스트로 된 수식의 값 구하기(1) - 곱하기만

아래와 같이 텍스트로 된 수식의 값을 구해보겠습니다. 1. 한자릿수 곱하기숫자1*숫자2에서 숫자 1이 1자리로 고정된 경우는 Left함수와 Mid함수를 이용해 값을 구할 수 있습니다. Left 함수의 구문은 Left(텍스트, 가져올 문자수)이며, Mid함수의 구문은 Mid(텍스트, 시작 위치, 가져올 문자의 개수)입니다. 따라서, D2셀에 A3셀의 수식의 값을 구하는 수식을 =LEFT(A3,1)*MID(A3,3,10)라고 입력하면 됩니다.위 수식에서 LEFT(A3,1)은 A3셀에서 왼쪽 한 글자를 가져오는 것이므로 1이 되고, MID(A3,3,10)은 A3셀에서 세 번째 위치부터 10개의 문자를 가져오라는 의미인데, A3셀을 보면 * 다음에 숫자 2만 있으므로 10이 아니라 1이라고 해도 되지만, 10이..

EXCEL - VBA 2023.07.16
반응형