茨の道も一歩から

インフラ構築からプログラミング(Python・JavaScript)までITに関するブログです。

60日目:Excel マクロ/VBA

Excel マクロ/VBAの講義4日目。 今日も昨日に引き続き講義の合間に、MOS Excel Expert(第2回模擬試験)。

【講義内容】

  • Chapter4 変数と制御構文

【ワンポイント】

IF~Then~ElseIf~Else~End If

Sub shiken3()
    Worksheets("If~Then").Select
    tensuu = Range("C24").Value
    If tensuu >= 80 Then
        MsgBox (Range("k23").Value)
    ElseIf tensuu >= 60 Then
        MsgBox (Range("k24").Value)
    Else
        MsgBox (Range("k25").Value)
    End If
End Sub

Select Case~Case Else~End Select

Sub syozoku()
    Worksheets("Select~Case").Select
    syozokuCode = Range("C8").Value
    Select Case syozokuCode
    Case 100
        MsgBox (Range("K7").Value)
    Case 200
        MsgBox (Range("K8").Value)
    Case Else
        MsgBox ("部署コードを確認して下さい。")
    End Select
End Sub

連続値の条件

Sub point()
    Worksheets("Select~Case").Select
    p = Range("C17").Value
    Select Case p
    Case Is >= 1000
        MsgBox (Range("K16").Value)
    Case 800 To 999
        MsgBox (Range("K17").Value)
    Case 300 To 799
        MsgBox (Range("K18").Value)
    Case Else
        MsgBox ("がんばってポイントを貯めてね。")
    End Select
End Sub

複数値での条件

Sub kubun()
    Worksheets("Select~Case").Select
    code = Range("C25").Value
    Select Case code
    Case 100, 110, 120
        MsgBox (Range("K24").Value)
    Case 201, 211, 221
        MsgBox (Range("K25").Value)
    Case 300, 305, 310
        MsgBox (Range("K26").Value)
    Case Else
        MsgBox ("コードを確認して下さい。")
    End Select
End Sub

For~Next

For i = 1 To 10 Step 2
    MsgBox(i)
Next i

Output

1, 3, 5, 7, 9

Sub getSheetsName()
    For i = 1 To Worksheets.Count
        sheetName = Sheets(i).Name
        MsgBox ("シート" & i & "の名前は、" & Chr(10) & _
                sheetName & Chr(10) & " です。")
    Next
End sub

Do~Loop

Do While~Loop

Sub loop1()
    Worksheets("Do~Loop").Select
    Range("C7").Select
    Do While ActiveCell.Value <> ""
        MsgBox (ActiveCell.Value)
        ActiveCell.Offset(0, 1).Select
    Loop
End Sub

Do~Loop While

Sub loop2()
    Worksheets("Do~Loop").Select
    Range("C14").Select
    Do
        MsgBox (ActiveCell.Value)
        ActiveCell.Offset(0, 1).Select
    Loop While ActiveCell.Value <> ""
End Sub

Do Until~Loop

Sub loop3()
    Worksheets("Do~Loop").Select
    Range("C22").Select
    Do Until ActiveCell.Value = ""
        kamoku = ActiveCell.Value
        ActiveCell.Offset(1, 0).Select
        tensuu = ActiveCell.Value
        MsgBox (kamoku & "は、" & tensuu & "点です。")
        ActiveCell.Offset(-1, 1).Select
    Loop
End Sub

Do~Loop Until

Sub loop4()
    Worksheets("Do~Loop").Select
    Range("C29").Select
    Do
        ActiveCell.Font.Bold = True
        ActiveCell.Font.Italic = True
        ActiveCell.Offset(0, 1).Select
    Loop Until ActiveCell.Value = ""
End Sub

【今日の積み上げ】

Excel マクロ基本操作