반응형

for 10

표 간 서식 복사하기

1. 문제 아래와 같이 표 2개가 있고, 위의 서식이 변하면 아래에 서식이 자동으로 복사되도록 하려고 합니다. 2. 해법 1(실패) 일단 생각할 수 있는 것이 Worksheet_Change 메서드입니다. Sheet1을 클릭한 다음 오른쪽 코드 창에서 Worksheet 객체를 선택한 다음 오른쪽에서 Change 메서드를 클릭합니다. 그러면 아래와 같이 Worksheet_Change 서브 프러시저가 생성됩니다. "일정한 범위 내 값이 바뀐다면"이라는 조건문은 아래와 같이 정형화되어 있습니다. Private Sub Worksheet_Change(ByVal Target As Range) Dim keyCells As Range Set keyCells = Range("c5:d8") If Not Application..

Excel 2024.05.03

한글이 아닌 엑셀로 하는 메일 머지(2)

다. 연결키를 가져오는 매크로 작성(1) 매크로 작성 명단 시트에 만들어둔 연결키 중 B열의 번호를 하나씩 고지서 시트의 L6셀에 넘겨주면 됩니다. 코드를 작성하기 위해 개발 도구 - Visual Basic을 클릭합니다. 만약 개발 도구 탭이 보이지 않는다면 파일 - 옵션 - 리본 사용자 지정에서 개발 도구 탭에 체크하고 확인 버튼을 눌러야 합니다. => https://lsw3210.tistory.com/142#google_vignette 그리고, 삽입 - 모듈을 클릭해서 Module1을 만든 다음 오른쪽 에디터 창에 아래 내용을 복사해서 붙여 넣습니다.Sub 고지서개별인쇄() Dim sht1 As Worksheet, sht2 As Worksheet Dim i As Integer, endRow As In..

EXCEL - VBA 2024.03.28

두 개의 표를 날짜에 따라 맞춰서 표시하기(2) - Dictionary

1. Dictionary의 개념Dictionary는 키와 값이 한 쌍으로 된 구조로 Json파일의 Key, Value와 비슷합니다. 그런데 Json 파일을 다룰 때는 주로 Value 관점에서 접근했는데, Dictionary는 그동안 사용한 경험으로는 고윳값을 만들기 위해 Key 위주로 사용합니다. Dictionary의 가장 큰 특징은 Key가 하나뿐이 존재하지 않는다는 것으로, 중복된 데이터를 거르는데 많이 사용하고, 속도도 매우 빠릅니다. 2. Dictionary 선언 방식에 따른 비교VBA에서 Dictionary를 사용할 때는 참조를 지정해서 이용하는 방식과 참조를 지정하지 않고 VBA의 Object 라이브러리를 이용하는 두 가지 방법이 있으며, 추천은 첫 번째 도구 - 참조 방식인데 이것의 단점은 ..

EXCEL - VBA 2024.01.25

좌표를 이용해 엑셀에 도면 표시하기(3)

(라) For ~ Next 반복문 실행 For i = 2 To 21 BottomRow = 작은값행(Sheets(3).Cells(i, 2).Value, eastRange) topRow = 작은값행(Sheets(3).Cells(i, 3).Value, eastRange) RightCol = 작은값열(Sheets(3).Cells(i, 4).Value, northRange) + 1 LeftCol = 작은값열(Sheets(3).Cells(i, 5).Value, northRange) - 1 Set shp = ActiveSheet.Shapes.AddShape(msoShapeRectangle, Cells(topRow, LeftCol).Left, Cells(topRow, LeftCol).Top, _ Cells(topRow..

EXCEL - VBA 2023.11.16

매크로 - 범위가 아닌 배열로 처리하기

이 글에서는 범위로 처리했는데, 배열로 처리하는 것을 다뤄보겠습니다. 1. 코드 작성 및 실행먼저 개발 도구 - Visual Basic을 누르고, 삽입 - 모듈을 클릭해서 모듈을 추가합니다. 그리고, 코드 창에 아래 내용을 복사해서 붙여 넣습니다.Sub 배열로곱하기() Dim rng As Range, c As Range Dim val Dim i As Long Range("e1") = Now() Set rng = Range(Range("a1"), Range("a1").End(xlDown)) val = rng For i = 1 To UBound(val) val(i, 1) = val(i, 1) * 2 Next Range("b1:b" & UBound(val)) = val Range("e2") = Now() En..

EXCEL - VBA 2023.09.04

매크로 - 범위로 처리하기

그동안은 매크로 작성 시 범위로 처리하는 것만 알고 있었는데, 최근에 유튜브를 보니 셀마다 처리하는 것이 아니라 배열에서 처리한 후 한꺼번에 범위에 일괄로 데이터를 입력하는 것이 훨씬 빠르다는 내용을 보고 충격을 받아 정리하고자 합니다. 먼저 범위로 처리하는 방법을 알아보겠습니다. A열에 2를 곱한 값을 B열에 넣는다고 할 때 범위로 처리하는 것은 아래와 같습니다. 1. 코드 작성 및 실행 먼저 개발 도구 - Visual Basic을 누르고, 삽입 - 모듈을 클릭해서 모듈을 추가합니다. 그리고, 코드 창에 아래 내용을 복사해서 붙여 넣습니다. Option Explicit Sub 곱하기() Dim rng As Range, c As Range Set rng = Range(Range("a1"), Range("..

EXCEL - VBA 2023.09.03

구구단 만들기(4) (엑셀 VBA 구구단 프로그램 확장)

[프로그램 구현] Option Explicit Sub 구구단() Dim i As Integer, j As Integer 'i는 구구단 앞 숫자, j는 구구단 뒷 숫자 Dim iRow As Integer, iCol As Integer, iLastCol '셀 주소 행, 열, 마지막 열 Dim iLastDan As Variant, iDisplayDan As Variant '구구단 최종 단수, 한 줄에 표시할 단수. 취소 버튼이 있기 때문에 Variant로 줘야 합니다. Application.ScreenUpdating = False '처리하는 동안 화면 갱신하지 않음 ' 문장 2개를 나란히 쓸 때는 콜론으로 연결 iRow = 3: iCol = 1 Do iLastDan = Application.InputBox("..

EXCEL - VBA 2022.12.13

구구단 만들기(3) (엑셀 VBA 프로그래밍 기초)

프로그램을 짜는 것은 논리(로직)만 만들어지면, 그다음은 그것을 해당 언어의 문법에 맞게 구성해 나가면 됩니다. ​ 구구단 어릴 적 많이 외웠던 것인데, 프로그램으로 만들어보면 기초 쌓는데 도움이 될 듯하여 골랐습니다. 만들 모양은 아래와 같습니다. 매크로 기록하기에서는 2단, 3단 등 단수 제목을 복잡해서 뺐는데, 프로그램을 짤 때는 그렇게 어렵지 않아 넣었습니다. [프로그램 로직] ​ ① A1에 '구 구 단'이라고 입력하고, A1에서 W1까지 범위를 '병합하고 가운데 정렬'한 후, 글자크기를 16, 굵게로 설정합니다. ​ ② A3에 '2 단'이라 입력하고, A3에서 E3까지 병합하고 가운데 정렬한 후, 글자를 굵게 합니다. ​ ③ 2단은 A4부터 E12까지 입력하는데, A열은 모두 2이고, B열은 *..

EXCEL - VBA 2022.12.12

For ~ Next 반복문

동일한 작업을 반복해서 실행하는 것이 반복문입니다. For문은 For ~ Next문과 For Each ~ Next문이 있습니다. 먼저 For ~ Next문에 대해 다루고, For Each ~ Next문은 따로 다루도록 하겠습니다. 1. 구문 2. 구문에 대한 설명 counter 필수 요소. 숫자 변수로서 For 루프의 컨트롤 변수. start 필수 요소. counter의 초기 값. end 필수 요소. counter의 최종 값. step 선택 사항. For 루프를 돌 때 매번 변화되는 카운터의 양. 기본값은 1 statements 선택 사항. For와 Next사이에서 지정된 숫자만큼 반복 실행하는 하나이상의 문장 Exit For 선택 사항. For 루프의 밖으로 제어를 이동. Next 필수 요소. For ..

EXCEL - VBA 2022.11.11

윗셀과 같은 값 지우기(2) - while 문

for문과 while문은 아래와 같은 차이점이 있는데, for 문 while문 for i=시작값 to 종료값 [step 간격] 실행문 next i= 시작값 while i=종료값) 실행문 i = i + 1 (또는 i = i - 1) Wend 시작값, 종료값과 간격을 한 줄에서 지정 시작값, 종료값, 증감식을 별도로 지정 ​ while문을 구체적으로 적용해 보겠습니다. ​ ​ 2. While 문 ​ 어제 작업한 아래 파일의 for문 아래에 while 문을 작성하겠습니다. ​ 가. 공통되는 부분 위로 이동 ​ 아래를 보면 dim 변수 선언문과 마지막 줄인 EndRow을 구하는 구문 2줄이 2개의 sub 모듈에 공통적으로 있습니다. ​ 따라서, 맨 위 Option Explicit 아래로 옮기는데, 옮긴 다음 '..

EXCEL - VBA 2020.07.10
반응형