繰り返し文例題

住所録を作ってみましょう。入力項目は郵便番号、住所1、住所2、名前、電話番号、とします。上部の青い項目から入力させ、設定ボタンを押すと、ページ下に用意した表の末尾に入力データをセットします。名前は姓と名で別々に入力してもらい、表示のときにスペースを入れてつないで書き込みます。まず図24のような表を作成します。

図24:繰り返し処理例題画面

入力箇所は3行のB列からG列までです。入力したデータは6行以降の空いている行に書き込みます。

[リスト19]settei(繰り返し処理例題.xlsm)

Sub settei()
    y = 6
    Do While Cells(y, 2) <> ""    '表の末尾検索
        y = y + 1
    Loop
    Cells(y, 2) = Cells(3, 2)    '郵便番号
    Cells(y, 3) = Cells(3, 3)    '住所1
    Cells(y, 4) = Cells(3, 4)    '住所2
    Cells(y, 5) = Cells(3, 5)    '電話番号
    Cells(y, 6) = Cells(3, 6) & " " & Cells(3, 7)   '氏名

    Range(Cells(3, 2), Cells(3, 7)).Select
    Selection.ClearContents  '入力したデータを消す
    Cells(3, 2).Select
End Sub

空いている行を探すのに、Do Whileを使いました。郵便番号は必ず入れてもらうと仮定しています。氏と名の間には全角スペースをいれています。データを設定した後、入力枠をクリアして、郵便番号の入力位置にカーソルを持っていってます。

図25:繰り返し処理例題実行画面

まとめ

For文とDo文について説明しました。条件をきめ、その条件式に基づいて繰り返し処理を行うものです。特にFor文(For … Next)については詳しく説明したつもりです。繰り返し処理でFor文を克服すれば、Do文も恐くありません。繰り返し処理の命令をまとめて表にしました。

命令 概要
For … Next 変数の値が初期値と終了値で指定した値の間繰り返します。
For Each … Next グループで指定したデータの最初から終了まで取り出しながら繰り返します。
Do … Loop Exit Do文で抜けるまで繰り返します。
Do While 条件式 … Loop 条件式が正しい間繰り返します。開始時に条件式が正しくないと一度も実行されません。
Do … Loop While 条件式 条件式が正しい間繰り返します。開始時に条件式が正しくなくても一度は実行されます。/td>
Do Until 条件式 … Loop 条件式が正しくない間繰り返します。開始時に条件式が正しいと一度も実行されません。
Do … Loop Until 条件式 条件式が正しくない間繰り返します。開始時に条件式が正しくても一度は実行されます。

繰り返し処理の命令のまとめ

これで、プログラムを組むのに最低限必要な知識は身につけました。あとは、いろいろな例題を実際に書いてみて、体で覚えていけると思います。次回は「ユーザーフォーム」について説明します。Excelにも「フォーム」というものがあり、セルの上にフォームを表示して、そこで、必要なデータを入力して、セルに書き込むことができます。フォームを利用することで、ワークシートを直接操作するのとはちょっと違う使い方ができて、また面白いと思います。

WINGSプロジェクト 横塚利津子著/山田祥寛監修
<WINGSプロジェクトについて>テクニカル執筆プロジェクト(代表山田祥寛)。海外記事の翻訳から、主にWeb開発分野の書籍・雑誌/Web記事の執筆、講演等を幅広く手がける。2009年4月時点での登録メンバは30 名で、現在も一緒に執筆をできる有志を募集中。