Excel Microsoft VBA

繰り返し処理(Do~Loop)を使いこなそう!【VBA入門講座#9】

サブロー
こんにちは。サブローです。

『Microsoft Excel』(以下Excel、エクセル)の中の機能としてある[VBA] について基本的な説明をしていきます。

仕事の改善や個人的な知識向上に役立ててください(^o^)

第9回目の今回は

・VBAで繰り返し処理(Do~Loop)

について解説していきますので、よろしくお願いします。

前回までのVBAに関するINDEXは下記を参照してくださいね。

↓サブログ内部リンク(VBA用INDEX)↓

Excel VBA講座-目次(INDEX)

サブローExcel VBAに関する説明を今後増やして行く予定なので、各リンクに飛ぶような目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 目次(INDEX) 講座No内容 ...

続きを見る




繰り返し処理1 ~Do Until・・・Loop~

条件に一致するかどうかを判定したあとに繰り返し処理を行いたい場合、【Do Until・・・Loop】ステートメントを使用します。

<書式>

Do Until 条件式

条件に一致するまで実行する処理内容

Loop

<説明>

条件が満たされるまで繰返し処理を行います。またループを抜ける条件式が繰り返す処理よりも前に描かれているため、繰返し処理が行われないこともあります。

<コード記入例>

Sub 繰返1()

’セルD2を選択します。
Range("D2").Select

'選択しているセルから左に1つめにあるセルが空白である場合、処理を繰り返します(★)。
Do Until ActiveCell.Offset(0, -1).Value = ""

'選択しているセルに、選択しているセルから左に2つめと1つめにある値を掛けた結果を入力します。
ActiveCell.Value = ActiveCell.Offset(0, -2).Value * ActiveCell.Offset(0, -1).Value

'選択しているセルから下に1つ移動します。
ActiveCell.Offset(1, 0).Select

'処理を繰り返します(★に移動)
Loop

End Sub




繰り返し処理2 ~Do ・・・Loop Until~

同様な条件での繰り返し処理をしたあとに条件判定を行い、条件に一致するまで処理を繰り返して行う場合、【Do・・・Loop Unitl】ステートメントを使用します。

<書式>

Do

条件に一致するまで実行する処理内容

Loop Until 条件式

<説明>

条件が満たされるまで繰返し処理を行います。またループを抜ける条件式が繰り返す処理よりも後に描かれているため、繰返し処理は1度は行われます。

<コード記入例>

Sub 繰返2()

’セルD2を選択します。
Range("D2").Select

'下記の処理を実行します(★)。
Do

'選択しているセルに、選択しているセルから左に2つめと1つめにある値を掛けた結果を入力します。
ActiveCell.Value = ActiveCell.Offset(0, -2).Value * ActiveCell.Offset(0, -1).Value

'選択しているセルから下に1つ移動します。
ActiveCell.Offset(1, 0).Select

'選択しているセルから左に1つめにあるセルが空白である場合、処理を繰り返します(★に移動)
Loop Until ActiveCell.Offset(0, -1).Value = ""End Sub

繰り返し処理3 ~Do ・・・Loop While~

同様な条件での繰り返し処理をしたあとに条件判定を行い、条件に一致する間は処理を繰り返して行う場合、【Do・・・Loop While】ステートメントを使用します。

<書式>

Do

条件式に一致する間は実行する処理内容

Loop While 条件式

<説明>

条件が満たされる間は繰返し処理を行います。またループを抜ける条件式が繰り返す処理よりも後に描かれているため、繰返し処理は1度は行われます。

<コード記入例>

Sub 繰返3()

’セルD2を選択します。
Range("D2").Select

'下記の処理を実行します。(★)
Do

'選択しているセルに、選択しているセルから左に2つめと1つめにある値のかけ算した結果を入力します。
ActiveCell.Value = ActiveCell.Offset(0, -2).Value * ActiveCell.Offset(0, -1).Value

'選択しているセルから下に1つ移動します。
ActiveCell.Offset(1, 0).Select

'選択しているセルから左に1つめにあるセルが空白でない間は、処理を繰り返します。(★に移動)
Loop While ActiveCell.Offset(0, -1).Value <> ""

End Sub

モグゾー
それでは、今回はここまで。最後までお読みいただきありがとうございました!

2020年4月6日公開




~INDEX一覧~

エクセル関数の勉強 1

サブローエクセル/Excel関数の一覧にしています。本ブログ内で記事にしているものは、講座の列にリンク付けを随時行います(^o^) ※使用頻度のランクに関しては、個人的な主観でランク付けをしています。 ...

2

サブロー危険物取扱者試験 乙4種対策講座の目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 【目次/INDEX】 講座ID分類内容リンク 1共通#1『危険物取扱者試験』の ...

3

サブローQC(品質管理)検定に関する説明が増やして行く予定なのでリンクに飛ぶような目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 モグゾー対象級を記載していますが、あく ...

4

サブローExcel VBAに関する説明を今後増やして行く予定なので、各リンクに飛ぶような目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 目次(INDEX) 講座No内容 ...

-Excel, Microsoft, VBA
-, ,

Copyright© サブログ , 2020 All Rights Reserved Powered by AFFINGER5.