Anno Domini
라틴어로 주님의 해
분류 전체보기
- A.D. 2024.12.03
- 확장 영역 자동 선택 2024.11.28
- [직장인 필수] 엑셀 VBA 자동화, 이 영상으로 마스터하세요! | 초보자 맞춤, 4시간 완성 코스 2024.11.27
- 유용한 사이트 2024.11.14
- am, pm 2024.11.13
- 도토리 2024.11.12
- ReDim의 주요 목적 2024.11.11
- V=range("NFE")와 V=range("NFE").Value의 차이점 2024.11.10
- VBA 코드에서 언더스코어(_)의 기능 2024.11.09
- 변수명 A와 A()의 차이 2024.11.08
A.D.
확장 영역 자동 선택
확장 영역 자동 선택
Sub ExpandRange()
Dim Rng As Range
Dim StartCell As Range
Dim LastRow As Long
Dim LastCol As Long
' 초기 시작 셀 설정 (예: A1)
Set StartCell = Range("A1")
' 마지막 행과 마지막 열 찾기
LastRow = StartCell.Worksheet.Cells(StartCell.Worksheet.Rows.Count, StartCell.Column).End(xlUp).Row
LastCol = StartCell.Worksheet.Cells(StartCell.Row, StartCell.Worksheet.Columns.Count).End(xlToLeft).Column
' 동적 범위 정의
Set Rng = StartCell.Worksheet.Range(StartCell, StartCell.Worksheet.Cells(LastRow, LastCol))
' 결과 출력
MsgBox "새로 정의된 범위: " & Rng.Address, vbInformation, "확장된 영역"
End Sub
코드 설명
- 시작 셀 지정
- Set StartCell = Range("A1")를 통해 데이터가 시작되는 첫 번째 셀을 지정합니다.
- 마지막 행과 열 찾기
- LastRow: 시작 열에서 데이터가 있는 마지막 행을 찾습니다.
- LastCol: 시작 행에서 데이터가 있는 마지막 열을 찾습니다.
- 동적 범위 정의
- Range(StartCell, Cells(LastRow, LastCol))를 사용하여 새로 확장된 영역을 동적으로 설정합니다.
- 결과 확인
- 확장된 범위를 메시지 박스로 출력하여 확인할 수 있습니다.
데이터 추가 후 자동 실행 (워크시트 변경 이벤트 활용)
데이터가 추가될 때마다 자동으로 영역이 확장되도록 하려면 워크시트 변경 이벤트를 활용할 수 있습니다.
이벤트 코드: 워크시트 변경 감지
Private Sub Worksheet_Change(ByVal Target As Range)
Dim StartCell As Range
Dim LastRow As Long
Dim LastCol As Long
Dim Rng As Range
' 초기 시작 셀 설정 (예: A1)
Set StartCell = Me.Range("A1")
' 마지막 행과 열 찾기
LastRow = Me.Cells(Me.Rows.Count, StartCell.Column).End(xlUp).Row
LastCol = Me.Cells(StartCell.Row, Me.Columns.Count).End(xlToLeft).Column
' 동적 범위 정의
Set Rng = Me.Range(StartCell, Me.Cells(LastRow, LastCol))
' 확장된 범위를 표시 (선택적)
Debug.Print "확장된 영역: " & Rng.Address
End Sub
사용 방법
- 해당 코드를 변경하려는 워크시트의 코드 창에 추가합니다.
- VBA 편집기에서 해당 워크시트를 선택 후 추가.
- 데이터를 추가하거나 변경하면 자동으로 동작합니다.
결과
- 원래 데이터: $A$1:$B$10
- 새 데이터 추가: A11 또는 B11에 데이터를 추가하면 자동으로 $A$1:$B$11로 범위가 확장됩니다.
- 확인 방법: Rng 변수에 새롭게 확장된 영역이 저장됩니다.
위 코드는 엑셀에서 데이터를 동적으로 관리할 때 유용합니다.
'VBA' 카테고리의 다른 글
Collection (0) | 2024.12.27 |
---|---|
VBA Tips (0) | 2024.12.17 |
[직장인 필수] 엑셀 VBA 자동화, 이 영상으로 마스터하세요! | 초보자 맞춤, 4시간 완성 코스 (0) | 2024.11.27 |
ReDim의 주요 목적 (0) | 2024.11.11 |
V=range("NFE")와 V=range("NFE").Value의 차이점 (0) | 2024.11.10 |
[직장인 필수] 엑셀 VBA 자동화, 이 영상으로 마스터하세요! | 초보자 맞춤, 4시간 완성 코스
[직장인 필수] 엑셀 VBA 자동화, 이 영상으로 마스터하세요! | 초보자 맞춤, 4시간 완성 코스
https://youtu.be/NAJpBaUU_9M?si=oPJSNvPTyUxzmWpR
'VBA' 카테고리의 다른 글
VBA Tips (0) | 2024.12.17 |
---|---|
확장 영역 자동 선택 (0) | 2024.11.28 |
ReDim의 주요 목적 (0) | 2024.11.11 |
V=range("NFE")와 V=range("NFE").Value의 차이점 (0) | 2024.11.10 |
VBA 코드에서 언더스코어(_)의 기능 (0) | 2024.11.09 |
유용한 사이트
1. ReasearchRabbit
논문 관련 문헌 검색
https://www.youtube.com/watch?v=phWqcGcxeE4
https://www.jcu.edu.au/__data/assets/pdf_file/0008/1958831/Research-Rabbit-Overview.pdf
2. PopAi
논문 요약
3. Napkin.Ai
발표자료 시각화
https://youtu.be/G1n_MJUsG28?si=cBwAJ05qkD-4Z4Wk
'알면 힘이되는 것' 카테고리의 다른 글
PDF파일 종이 크기에 맞게 인쇄 (0) | 2025.03.04 |
---|---|
태양 적위 계산 (0) | 2025.01.15 |
멀티스카프 쓰는 방법 (0) | 2024.06.27 |
Perplexity (0) | 2024.06.26 |
Windows11 바탕화면 바로가기 (0) | 2024.06.19 |
am, pm
am은 "ante meridiem"을, 즉 "오전"을 나타내고, pm은 "post meridiem"을, 즉 "오후"를 나타냅니다.
도토리
토토리
acorn
ReDim의 주요 목적
ReDim은 VBA에서 동적 배열의 크기를 변경할 때 사용되는 키워드입니다. Dim을 사용해 배열을 선언할 때 크기를 미리 지정하지 않고, 코드 실행 중 필요한 크기로 배열을 조정할 수 있습니다.
ReDim의 주요 목적
- 동적 배열 크기 조정: 초기에는 크기를 알 수 없는 배열의 요소 개수를 ReDim을 사용해 설정할 수 있습니다.
- 메모리 효율성: 필요한 크기만큼만 배열을 설정하고, 데이터 추가나 변경에 따라 배열 크기를 조정함으로써 메모리를 효율적으로 사용할 수 있습니다.
- 실행 중 배열 크기 변경: 배열 크기를 코드 실행 도중 변경해야 할 때 유용합니다.
사용 예시
다음은 동적 배열을 ReDim으로 설정하고 변경하는 예입니다.
Sub Example()
Dim myArray() As Integer ' 크기를 지정하지 않은 배열 선언
' 배열의 크기 설정 (초기 크기: 5)
ReDim myArray(1 To 5)
myArray(1) = 10
' 배열 크기 재설정 (변경된 크기: 10)
ReDim myArray(1 To 10)
End Sub
ReDim Preserve의 사용
기존 데이터가 있는 배열 크기를 변경하면서 데이터를 유지하려면 ReDim Preserve를 사용해야 합니다. Preserve를 붙이지 않으면 배열의 모든 요소가 초기화됩니다.
Sub ExampleWithPreserve()
Dim myArray() As Integer
ReDim myArray(1 To 5)
myArray(1) = 10
' 배열 크기 변경, 기존 데이터 유지
ReDim Preserve myArray(1 To 10)
End Sub
주의사항
- ReDim Preserve는 배열의 마지막 차원만 변경할 수 있습니다.
'VBA' 카테고리의 다른 글
확장 영역 자동 선택 (0) | 2024.11.28 |
---|---|
[직장인 필수] 엑셀 VBA 자동화, 이 영상으로 마스터하세요! | 초보자 맞춤, 4시간 완성 코스 (0) | 2024.11.27 |
V=range("NFE")와 V=range("NFE").Value의 차이점 (0) | 2024.11.10 |
VBA 코드에서 언더스코어(_)의 기능 (0) | 2024.11.09 |
변수명 A와 A()의 차이 (0) | 2024.11.08 |
V=range("NFE")와 V=range("NFE").Value의 차이점
V = Range("NFE")와 V = Range("NFE").Value는 엑셀 VBA에서 셀 값을 변수에 저장할 때 약간의 차이가 있습니다.
차이점
- V = Range("NFE"):
- 이 코드는 Range("NFE") 객체 자체를 V에 할당하는 것입니다.
- V는 이제 Range 객체의 참조를 가지며, V를 통해 Range 객체의 다양한 속성(Value, Formula, Address 등)에 접근할 수 있습니다.
- 즉, V.Value, V.Formula 등을 통해 해당 셀의 값이나 수식을 직접 확인하고 조작할 수 있습니다.
Dim V As Range Set V = Range("NFE") ' Range 객체를 참조 MsgBox V.Value ' V를 통해 해당 셀의 값에 접근
- V = Range("NFE").Value:
- 이 코드는 Range("NFE")의 값만을 V에 할당하는 것입니다.
- V는 셀의 Value 속성에 할당된 데이터만 저장하므로, V는 이제 셀의 값만을 가지는 변수로, 셀의 다른 속성이나 메서드에는 접근할 수 없습니다.
Dim V As Variant
V = Range("NFE").Value ' NFE 셀의 값만 가져옴
MsgBox V ' 셀의 값 표시
요약
- Range("NFE"): 셀 자체(Range 객체)를 참조로 할당. 셀의 다양한 속성에 접근 가능.
- Range("NFE").Value: 셀의 값만 할당. 값만을 읽거나 사용하려고 할 때 적합.
따라서, 단순히 셀의 값을 가져오려는 경우 V = Range("NFE").Value를 사용하는 것이 적합하며, 셀의 다른 속성이나 셀의 범위를 직접 제어하려면 V = Range("NFE")와 같이 Range 객체 참조를 사용하는 것이 좋습니다.
'VBA' 카테고리의 다른 글
[직장인 필수] 엑셀 VBA 자동화, 이 영상으로 마스터하세요! | 초보자 맞춤, 4시간 완성 코스 (0) | 2024.11.27 |
---|---|
ReDim의 주요 목적 (0) | 2024.11.11 |
VBA 코드에서 언더스코어(_)의 기능 (0) | 2024.11.09 |
변수명 A와 A()의 차이 (0) | 2024.11.08 |
Option Explicit 사용하는 이유는? (0) | 2024.11.07 |
VBA 코드에서 언더스코어(_)의 기능
VBA 코드에서 **언더스코어(_)**는 줄 바꿈 문자로 사용됩니다. VBA에서는 한 줄에 모든 코드를 작성해야 하는 제한이 있기 때문에, 코드가 길어질 경우 언더스코어를 사용해 다음 줄로 이어서 작성할 수 있습니다. 이를 통해 코드의 가독성을 높일 수 있습니다.
사용 방법
언더스코어를 줄의 끝에 넣고 다음 줄에서 코드를 계속 작성하면 됩니다. 이때, 언더스코어 앞뒤에는 반드시 공백이 있어야 합니다.
Sub Example()
Dim total As Integer
total = 10 + 20 + 30 + _
40 + 50 + 60 ' 언더스코어로 줄 바꿈
MsgBox total
End Sub
주의 사항
- 언더스코어 뒤에는 아무 내용도 없어야 합니다. 이어지는 줄은 다음 코드의 일부로 인식됩니다.
- 문장 하나를 여러 줄에 걸쳐 작성하는 데 유용하며, 함수나 서브루틴 선언, If 문, For 문 등에서도 사용할 수 있습니다.
예시
긴 조건문을 언더스코어를 사용해 여러 줄로 나눌 수도 있습니다.
If total > 0 And total < 100 And _
total Mod 10 = 0 Then
MsgBox "조건이 만족되었습니다."
End If
'VBA' 카테고리의 다른 글
ReDim의 주요 목적 (0) | 2024.11.11 |
---|---|
V=range("NFE")와 V=range("NFE").Value의 차이점 (0) | 2024.11.10 |
변수명 A와 A()의 차이 (0) | 2024.11.08 |
Option Explicit 사용하는 이유는? (0) | 2024.11.07 |
변수명 끝에 &와 # (0) | 2024.10.23 |
변수명 A와 A()의 차이
VBA에서 변수명을 A로 선언하는 것과 A()로 선언하는 것에는 중요한 차이가 있습니다.
- A : 일반 변수입니다. A는 단일 값(스칼라)을 저장하는 변수로, 숫자나 문자열과 같은 단일 데이터를 저장할 수 있습니다.
Dim A As Integer
A = 10 ' 단일 정수 값을 저장
- A() : 배열입니다. A()는 여러 개의 값을 저장할 수 있는 배열 변수로, 특정 인덱스를 통해 각 요소에 접근할 수 있습니다. 배열은 한 번에 여러 값을 저장할 때 유용합니다.
Dim A(1 To 5) As Integer ' 5개의 정수를 저장할 수 있는 배열
A(1) = 10 ' 첫 번째 요소에 값 할당
A(2) = 20 ' 두 번째 요소에 값 할당
주요 차이점
- 데이터 저장 방식: A는 단일 값을 저장하지만, A()는 여러 값을 인덱스를 통해 저장할 수 있습니다.
- 용도: A는 단일 데이터를 저장하는 용도이고, A()는 여러 개의 관련된 데이터를 저장하는 용도입니다.
- 메모리 할당: A()와 같은 배열은 저장할 데이터 크기를 미리 정의하거나 동적으로 할당해야 하며, 메모리 관리가 필요할 수 있습니다.
동적 배열의 경우
배열의 크기를 코드 실행 중에 변경하고 싶다면, 동적 배열을 사용할 수 있습니다. 다음과 같이 ReDim을 사용하여 배열의 크기를 지정할 수 있습니다.
Dim A() As Integer
ReDim A(1 To 5) ' 배열의 크기 설정
따라서, A와 A()는 사용 목적과 저장 방식에서 큰 차이가 있습니다. A()는 특히 다수의 데이터를 효율적으로 관리할 때 유용합니다.
'VBA' 카테고리의 다른 글
V=range("NFE")와 V=range("NFE").Value의 차이점 (0) | 2024.11.10 |
---|---|
VBA 코드에서 언더스코어(_)의 기능 (0) | 2024.11.09 |
Option Explicit 사용하는 이유는? (0) | 2024.11.07 |
변수명 끝에 &와 # (0) | 2024.10.23 |
Mohr's circle VBA code (0) | 2023.06.16 |