VBA 기본 조작(프로그램 제어)

3037 단어 VBA
VBA 초보자를위한 기본 조작 방법 (프로그램 제어)을 소개하고 싶습니다.

짝수와 홀수 결정
Dim msg As String                     '変数msgを設定する
If Range("A1").Value Mod 2 = 0 Then   '偶数の判定する
   msg = "odd number"                 '偶数の場合の処理
Else                                  'それ以外の場合(今回は偶数以外)
   msg = "even number"                'それ以外の場合の処理
End If                                '処理の終了
MsgBox msg                            'メッセージボックスを表示する

이번에는 If 문을 사용하여 판정 처리를하고 있습니다. 코드에서 특히 두 번째 줄이 중요합니다.If Range("A1").Value Mod 2 = 0 Then
もしも A1の値を 2で割って0になった 場合に
라는 바람에 읽을 수 있습니다.

1~10의 숫자를 차례로 셀에 입력한다(For문)
For i = 1 To 10     'iを1~10まで変動する
   Cells(i, 1) = i  'セルを指定してiを入力する
Next i              '次のiへ移行します

이번에는 For문을 사용하고 있습니다. i의 값은 1에서 시작하고 Next i에서 2로 마이그레이션합니다. 이것을 i가 10이 될 때까지 반복한다는 내용이 되어 있습니다.

For문의 이중 루프의 예
For i = 1 To 9
   For j = 1 To 9
      Cells(i, j) = i * j
   Next
Next

이 처리에 의해 아래의 사진과 같이 99개의 표를 만들 수 있습니다!


1~10의 숫자를 차례로 셀에 입력한다(Do_Loop)
i = 1                  '変数iの値を指定
Do While i <= 10       'iが10以下の範囲で繰り返しを指定
   Cells(i, 1) = i
   i = i + 1
Loop

피보나치 수열
Dim P As Long
Dim F As Long
Dim F1 As Long
Dim F2 As Long
F1 = 1
For P = 1 To 10
    F1 = F1 + F2
    F2 = F
    F = F1
    Range("A" & P).Value = F
Next

1~30까지를 표시하고 조건에 따라 일부 표시를 변경
i = 0
Do While i <= 29
   i = i + 1
      If i Mod 3 = 0 Then       '3で割って0になった場合
         Cells(i, 1) = "Fizz"   'Fizzと表示する
      ElseIf i Mod 5 = 0 Then   '5で割って0になった場合
         Cells(i, 1) = "Buzz"   'Buzzと表示する
      Else
         Cells(i, 1) = i
   End If
Loop

이번에는 If문과 For문과 Do Loop을 소개했습니다. VBA의 처리에서는 꽤 사용 빈도가 높은 구문이므로 사용법을 마스터합시다.



보다 실용적인 for 문
Sub test()
    Dim i
    Dim ctrRow
    Dim endRow

    ctrRow = 2
    '最終行を取得する
    endRow = Range("A2").End(xlDown).Row

    For i = 2 To endRow
        'C1「OK」と同じ判定の項目の時
        If (Range("C" & i).Value = Range("C1").Value) Then
            Range("E" & ctrRow).Value = Range("A" & i).Value
            Range("F" & ctrRow).Value = Range("B" & i).Value
            Range("G" & ctrRow).Value = Range("C" & i).Value
            Range("H" & ctrRow).Value = Range("D" & i).Value
            ctrRow = ctrRow + 1
        End If
    Next i
End Sub


for문을 사용하면 이런 식으로 데이터 중 일부를 참조하여 메이트한 데이터를 추출할 수 있습니다.

좋은 웹페이지 즐겨찾기