EXCEL、VBAプログラミング入門24~画面クリアボタン(do-loop処理について)~

以下は当記事に関連する動画です。本動画に関連する動画はすべてニコニコチャンネルにて閲覧可能です。
https://ch.nicovideo.jp/ai-light

本講座のシリーズは以下にて閲覧可能です。
https://www.nicovideo.jp/series/231329

本文に関連する動画は以下にて閲覧可能です。

EXCEL、VBAプログラミングの第24回目で「画面クリアボタン(do-loop処理について)」について解説を行います。

今回は、以下のことについて解説を行っています。
1)はじめに(「Do While」~「Loop」について)
2)「Do While」~「Loop」のサンプルプログラム
3)「Loop」~「Do While」について
4)「Do Until」~「Loop」について

1)はじめに(「Do While」~「Loop」について)
前回は下図の計算機システムで「画面クリア」ボタン処理内で使用している「Do While」~「Loop」について解説を行いましたが、今回はそのループ処理についてさらに補足して解説を行います。

図1.計算機システム

下図は画面クリア処理の後半部分で、「Do While」~「Loop」が行われている部分です。

図2.画面クリアボタン処理後半

「Do While」~「Loop」の処理は以下のようになっております。
  Do While 記録配列数 > 表示配列数
            記録配列(表示配列数 – 1) = 記録配列(表示配列数)
            表示配列数 = 表示配列数 + 1
  Loop

繰返し処理は以下のようになっており、条件式に合致する間はDo WhileからLoopまでを繰り返して処理します。
Do While  条件式
    ~
Loop

つまり、本プログラムではDo Whileの条件式である以下の部分、
記録配列数 > 表示配列数
が成立する際にはループ処理を行います。

2)「Do While」~「Loop」のサンプルプログラム
以下にサンプルを示します。このプログラムはセルのA1~A5に1~5を表示します。
Sub test()
    i = 1
    ‘i=1~5まで5回ループします。
    Do While i <= 5
    ‘シート名「Sheet1」のセル(A1~A5)にiの値を代入します。
                   Worksheets(“Sheet1”).Cells(i, 1).Value = i
          ‘iをカウントアップします。
                     i = i + 1
      Loop

End Sub

Cells(i, 1)
にてi行目の1列目に対して値を代入して、セルのi行目の1列目に値を表示します。

3)「Loop」~「Do While」について
その他の繰返し処理について解説を行います。
Loop
    ~
Do While  条件式
という処理があります。この処理はループ処理の最後で再度のループを行うかを判別します。

「Do While」~「Loop」との違いですが、
Do While  条件式
    ~
Loop
では、ループする前に条件式でループをするかどうかを判別しますので、条件の内容によっては一度も処理をせずに終了することがありますが、
Loop
    ~
Do While  条件式
ではループの最終行で判別を行いますので、最低でも1回はループ内が処理されます。

先ほどのプログラムを「Loop」~「Do While」を用いて記載すると以下のようになります。
Sub test()
    i = 1
    ‘i=1~5まで5回ループします。
    Loop
    ‘シート名「Sheet1」のセル(A1~A5)にiの値を代入します。
                    Worksheets(“Sheet1”).Cells(i, 1).Value = i
            ‘iをカウントアップします。
                      i = i + 1
     Do While i <= 5

End Sub

4)「Do Until」~「Loop」について
Do Until 条件式
    ~
Loop
というループ処理もあります。Do Untilはその次に続く条件式が成立しない時にループ処理を行います。

これまでにあげたサンプルプログラムをDo Untilを使って記載すると以下のようになります。

Sub test()
    i = 1
    Do Until i > 5
        Worksheets(“Sheet1”).Cells(i, 1).Value = i
        i = i + 1
    Loop
End Sub

上記の条件では1~5回目のループの時、つまりi=1~5の時には条件式が成り立たないのでループしますが、6回目のループの時にはi=6となって条件式が成り立つのでループ処理を終了します。

同様に
Do
    ~
Loop  Until 条件式
というループ処理の方法もあります。

プログラム言語というのは、同様な処理に対して様々な記載方法があります。

 


ニコニコチャンネル(月額固定で見放題)
http://ch.nicovideo.jp/ai-light
本記事に関連する動画講座を閲覧できます。一部の動画は無料でも閲覧できます。

YouTubeチャンネル(無料動画配信中)
https://www.youtube.com/user/ailightcom
ITと経営に関する動画を配信しております。
よろしければ、チャンネル登録をお願い致します。

無料から学べる講座
https://www.ai-light.com/itkeiei/
本記事に関連する動画講座をセット販売しております。
その他、ITと経営に関する動画もセット販売しております。

格安ホームページ制作所
https://www.ai-light.com/hp2
インターネットマーケティングに関する記事が無料で閲覧可能です。

株式会社アイライト公式HP
https://www.ai-light.com/
(Access・Excelでシステム開発会社を探されている法人様はこちら)

ITでお困りのことがございましたら、まずはご相談(コンサルティング)
https://www.ai-light.com/itconsulting.html


弊社は、主に中小企業様向けの業務システム開発ホームページ制作パソコンサポートコンサルティングなど、ITに関する様々なサービスを格安で提供しております。
特に小規模な業務システム開発の分野では、主にAccess(アクセス)を利用した柔軟で効率的な開発を得意としており、関西でダントツの実績があります。

業務システム開発に関しては、以下のような内容で対応しております。
・顧客管理などの単機能なシステムは20万円~50万円が多い。
・受注から入金まで業務全体システムで100万円~350万円ぐらいが多い。
・Access(アクセス)-SQLserverで大規模システム開発は350万円~1500万円が多い。

詳細は、Access(アクセス)、Excel(エクセル)、WEBサイト製作による小規模システム開発のページをご参考ください。

大阪商工会議所からの推薦を受けて、中小企業庁運営の中小企業支援事業に専門家として登録されました。
通称ミラサポ。3回まで無料でのコンサルティングが可能です。ご興味がある方はご連絡ください。
https://www.mirasapo.jp/


(近畿大学にて非常勤講師も務めたバリバリの技術屋が経営する会社)

Access(アクセス)Excel(エクセル)SQL server バーコード Webシステムを使った業務システムのシステム開発の無料相談を受付中

株式会社 アイライト 担当:内藤 響(Naito Ko)
〒550-0005 大阪市西区西本町1丁目5番9号 日清ビル 5F
(四つ橋線 本町駅 24番出口すぐ)
まずは、メール・電話でご相談ください。
TEL : (06) 6599-8890 E-mail : info@ai-light.com
お電話が混んでいる場合が多いので、つながりにくい場合は
TEL : (06) 6535-5117までお願いします。