Excel VBA 応用③ プログラムを書いて自動入力する

Excel

環境:Office365 Windows10

さて今回はシステム作成応用編の③回目です。

本日は「For」文をダブルで使用するやり方を解説します。

前回の動画がこちら

「For」文の復習がこちら

では今回の解説ように表を用意します。

こちらです。

電話番号を追加して並び変えました。

条件は前回と同じで、

地名が関東地方評価点が7点以上の会社の合否列に合格と入力すること。

こちらがプログラムになります。

target1

target2

point1

answer

こちらにキーとなる値を変数にいれています。

変数ということは変更可能ということです。

例えば、評価点は5点以上に変更したい場合は、プログラムの処理を変更せず、point1の中身を7→5へ変更してあげればいいし、

関東地方じゃなく近畿地方にしたい場合はtarget2の値を近畿地方へ変更すればよいのです。

For k = 1 to 6

こちらは横軸の列数を繰り返しています。

If Cells(1,k) = “合否”

こちらは条件分岐、もし1行目のk列が合否だった場合のみ下記の処理を行います。

あとは前回と同じです。

For i = 2 to 11 →・2から11まで繰り返します。

If Cells(i,5) >= point1 then →i行目の5列目がpoint1以上だった場合、下記の処理を行います。

If Cells(i,3)=target2 then →i行目の3列目がtarget2と同じだった場合、下記の処理を行います。

Cells(i,k)=answer →i行目のk列目にanswerを入力します。

ところどころ変数に置き換えているので少しわかりづらいですが、これで汎用性もばっちりのプログラムになりました。

こちらを実行してみると、

合否の列に地方が関東地方で評価点が7点以上のE社にのみ合格が入力されました。

これは変数の中身さえ変更すればどの項目でも条件にあった場所に指定の入力が出来ることを表しています。

次回は最終行、最終列、の取得方法です。

データや項目は常に同じ数とは限りません。増えたり減ったりします。

そこで一発で「最終行」や「最終列」を取得する方法を解説します。

コメント

タイトルとURLをコピーしました