품목

VBA로 작성된 Excel 매크로의 예

다음의 간단한 Excel 매크로 예제는 VBA를 사용하여 작성되었습니다. 

예상 독서 시간: 3 세부 사항

배열을 사용한 VBA 예

다음 Sub 프로시저는 빈 셀이 나타날 때까지 활성 워크시트의 A열에 있는 셀에서 값을 읽습니다. 값은 배열에 저장됩니다. 이 간단한 Excel 매크로 예제는 다음의 사용을 보여줍니다.

  • 변수 선언
  • 동적 배열;
  • 사이클 Do Until;
  • 현재 Excel 워크시트의 셀을 참조하십시오.
  • VBA 함수 Ubound 내장(배열의 가장 높은 인덱스를 반환).
' Sub procedure store values in Column A of the active Worksheet
' into an array
Sub GetCellValues()
Dim iRow As Integer            ' stores the current row number
Dim dCellValues() As Double  ' array to store the cell values
iRow = 1
ReDim dCellValues(1 To 10)
' Do Until loop to extract the value of each cell in column A
' of the active Worksheet, as long as the cell is not blank
Do Until IsEmpty(Cells(iRow, 1))
   ' Check that the dCellValues array is big enough
   ' If not, use ReDim to increase the size of the array by 10
   If UBound(dCellValues) < iRow Then
      ReDim Preserve dCellValues(1 To iRow + 9)
   End If
   ' Store the current cell in the CellValues array
   dCellValues(iRow) = Cells(iRow, 1).Value
   iRow = iRow + 1
Loop
End Sub

이 프로시저는 활성 워크시트의 A열에 있는 값을 배열에 저장합니다. 다음 사항에 유의하세요.

  • 주기 Do Until 빈 셀을 무시하고 활성 워크시트의 A열에 있는 각 셀의 값을 추출합니다.
  • 조건 "If UBound(dCellValues) < iRow” dCellValues ​​배열이 정보를 담을 수 있을 만큼 충분히 큰지 확인하고, 그렇지 않은 경우 ReDim을 사용하여 배열 크기를 10만큼 늘립니다.
  • 마지막으로 교육​​dCellValues(iRow) = Cells(iRow, 1).Value" 현재 셀을 CellValues ​​배열에 저장합니다.

수학 연산을 사용한 VBA 예

다음 Sub 프로시저는 "Sheet2"라는 워크시트의 A열에서 값을 읽고 해당 값에 대해 산술 연산을 수행합니다. 결과 값은 현재 활성 워크시트의 A열에 인쇄됩니다.

이 매크로는 다음을 보여줍니다.

혁신 뉴스레터
혁신에 관한 가장 중요한 뉴스를 놓치지 마세요. 이메일로 받으려면 가입하세요.
  • 변수 선언
  • Excel 개체(구체적으로 Set 키워드 사용 및 'Sheets' 개체에서 'Columns' 개체에 액세스하는 방법)
  • 사이클 Do Until;
  • 현재 Excel 통합 문서의 워크시트 및 셀 범위에 액세스합니다.
' Sub procedure to loop through the values in Column A of the Worksheet
' "Sheet2", perform arithmetic operations on each value, and write the
' result into Column A of the current Active Worksheet ("Sheet1")
Sub Transfer_ColA()
Dim i As Integer
Dim Col As Range
Dim dVal As Double
' Set the variable 'Col' to be Column A of Sheet 2
Set Col = Sheets("Sheet2").Columns("A")
i = 1
' Loop through each cell of the column 'Col' until
' a blank cell is encountered
Do Until IsEmpty(Col.Cells(i))
   ' Apply arithmetic operations to the value of the current cell
   dVal = Col.Cells(i).Value * 2 + 1
   ' The command below copies the result into Column A
   ' of the current Active Worksheet - no need to specify
   ' the Worksheet name as it is the active Worksheet.
   Cells(i, 1) = dVal
   i = i + 1
Loop
End Sub

수정 날짜 기록이 포함된 VBA 예

시트의 특정 범위에 있는 셀이 업데이트될 때 실행되는 간단한 VBA 매크로를 작성해 보겠습니다. B열(B4~B11)의 변경 사항을 추적하고 A열에 변경 날짜와 시간을 기록한다고 가정해 보겠습니다.
다음과 같이 진행해보자:

  • 탭에서 Developer 옵션 "을 클릭하세요.Visual Basic”을 클릭하여 VBA 편집기를 엽니다.
  • VBA 편집기에서 Sheet2와 관련된 코드 편집기를 두 번 클릭합니다.
  • 오른쪽(또는 왼쪽) 탭에서 워크시트를 선택하고 변경 옵션을 선택하세요.
  • VBA 코드를 추가합니다.
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B1:B10")) Is Nothing Then
        Target.Range("A1:A1").Value = Now
    End If
End Sub

매크로가 활성화된 통합 문서를 저장합니다(예: .xlsm 파일).


이제 B열의 셀(1행에서 10행까지)을 업데이트할 때마다 A열의 셀에 현재 날짜와 시간이 자동으로 표시됩니다.

Ercole Palmeri

혁신 뉴스레터
혁신에 관한 가장 중요한 뉴스를 놓치지 마세요. 이메일로 받으려면 가입하세요.

최근 기사

Veeam은 보호부터 대응, 복구까지 랜섬웨어에 대한 가장 포괄적인 지원을 제공합니다.

Coveware by Veeam은 계속해서 사이버 강탈 사건 대응 서비스를 제공할 것입니다. Coveware는 법의학 및 교정 기능을 제공할 것입니다…

4월 23 2024

녹색 및 디지털 혁명: 예측 유지보수가 석유 및 가스 산업을 변화시키는 방법

예측 유지보수는 플랜트 관리에 대한 혁신적이고 적극적인 접근 방식을 통해 석유 및 가스 부문에 혁명을 일으키고 있습니다.…

4월 22 2024

영국 독점 금지 규제 기관, GenAI에 대한 BigTech 경보 제기

영국 CMA는 인공 지능 시장에서 Big Tech의 행동에 대해 경고를 발표했습니다. 거기…

4월 18 2024

Casa Green: 이탈리아의 지속 가능한 미래를 위한 에너지 혁명

건물의 에너지 효율성을 높이기 위해 유럽 연합이 제정한 "Case Green" 법령은 다음과 같이 입법 과정을 마무리했습니다.

4월 18 2024