繰り返し文例題
住所録を作ってみましょう。入力項目は郵便番号、住所1、住所2、名前、電話番号、とします。上部の青い項目から入力させ、設定ボタンを押すと、ページ下に用意した表の末尾に入力データをセットします。名前は姓と名で別々に入力してもらい、表示のときにスペースを入れてつないで書き込みます。まず図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を使いました。郵便番号は必ず入れてもらうと仮定しています。氏と名の間には全角スペースをいれています。データを設定した後、入力枠をクリアして、郵便番号の入力位置にカーソルを持っていってます。
まとめ
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 名で、現在も一緒に執筆をできる有志を募集中。