メインコンテンツへスキップ
見出し画像

#6 繰り返し処理をやってみよう!【Excelマクロ講座】

    画像
    画像

    繰り返し処理「For~Next」を使ってみる

    Sub 繰り返し処理()
    
    '変数宣言
    Dim i As Integer
    
    '繰り返し処理
    For i = 0 To 3
    
        '変数iの中を確認
        MsgBox i
    
    Next i
    
    End Sub
    画像
    画像

    【解説】
    Dim i As Integer

     繰り返し処理で使うために変数を宣言(カウンター変数)
     変数名は「i」 データ型は整数型
    For i = 0 To 3
     For … 
    繰り返し処理が始まりますよという合図
    i… 繰り返す”回数”を入れていくための変数
    0 to 3… 0から3まで順番にiに代入していくよ(つまり繰り返す回数!)
    Next i … 繰り返し処理はここまでだよという合図(Nextの後ろのiは省略可)

    ・カウンター変数は何でも良いけどiがよく使われる
    ・For 変数 = 値 To 値 から Next の間に繰り返したい処理を書く

    画像

    ヒント:変数を使ったセルの操作はcells()を使おう!


    ~~~シンキングタイム~~~

    答え!

    Sub 答え()
    
    For i = 1 To 3
    
        Cells(i, 1).Value = i
    
    Next i
    
    End Sub

    ★point
    カウンター変数はカウンターとしての役割だけでなく色々利用できる!
    Cells()の行や.Valueもカウンター変数iで指定すれば順番に入力していってくれる!

    他にもやり方は色々あるので参考までに!

    画像

    ヒント:
    シートの追加:Worksheets.Add

    ※挿入されたシートが自動でアクティブシート(作業中のシート)になる
    シートの名前:ActiveSheet.Name = "名前"
    文字列と変数の結合: & や + を使う


    ~~~シンキングタイム~~~

    答え!

    Sub 答え()
    
    For i = 1 To 3
    
        Worksheets.Add
        ActiveSheet.Name = "シート" & i
    
    Next
    
    End Sub

    もっとシンプルに書くと

    Sub 答え()
    
    For i = 1 To 3
    
        Worksheets.Add.Name = "シート" & i
    
    Next
    
    End Sub

    とも書ける!

    色々試してみよう!

    他の繰り返し処理

    画像

    Do While ~ Loop

    画像

    条件式が一致している間処理を繰り返してくれる!
    例えば…

    画像
    Sub 繰り返し処理2()
    
    '変数を宣言して代入
    Dim n
    n = 1
    
    '3じゃない間=3が出るまで ループ開始
    Do While Cells(n, 1).Value <> 3
    
      Cells(n, 2).Value = "○"
      
      '次の行へ
      n = n + 1
      
    Loop
    
    End Sub

    【解説】
    Dim n

     as~を省略するとバリアント型変数(どんなデータでも格納できる)に!
    n=1
     値を入れておかないと0のまま。次の Cells(n,1).value でエラーになってしまうので代入を忘れず!
    Do While Cells(n, 1).Value <> 3
     「 Cells(n, 1).Value <> 3」で値が3以外の時
     ※<>は「~ではない」という演算子(空白ではない、などに使える!)
    Cells(n, 2).Value = "○"
    B列に○を入力していく
    n = n + 1
     nを1増やす
     これを忘れるとnの値が変わらず無限ループに!(要注意!)

     ※もし無限ループして画面が固まった場合は「Esc」キーでマクロを強制終了しよう!

    画像

    memo:
    Do…Loop には全部で4パターンある

    ★条件式が前にくるか後ろに来るか
    処理をする前に条件をチェックするか、処理をしてからチェックするかの違い
    ①Do While 条件
      処理
     Loop

    ②Do 
      処理
     Loop While 条件

    ★条件が正しくない間繰り返す処理の場合
    ③Do Until 条件
      処理
     Loop

    ④Do 
      処理
     LoopUntil 条件

    なので上記の例なら

    Do While Cells(n, 1).Value <> 3
    
    ↓
    
    Do Until Cells(n, 1).Value = 3

    とも書ける!

    つまり…
    繰り返す回数が決まっているなら
     For Next
    繰り返す条件が決まっているなら
     Do…Loop

    これを頭の片隅に置いておこう!

    ここまでお疲れさまでした!

    次回:
    条件分岐でできることの幅が広がる!
    ifを使って複雑な処理に挑戦しよう!

     
     
    漫画家・イラストレーター 新卒で総務に配属。事務歴・Excel歴7年。会社の人に聞かれて教えているうちにExcelに詳しくなる。 今はフリーランスとして在宅でできる仕事をしながら、夫と娘と猫に囲まれてゆるりと暮らしている。

    あなたへのおすすめ