データを別シートにDo~Loop文を使用して転記する方法について説明します。
例題
転記前状態(Sheet1のA2セル~A6セルに登録されているデータ)を、転記後状態(Sheet2のC2セル~C6セルに転記)にするプログラミング方法です。
[転記前]:
[転記後]:
プログラミング
プログラミングは以下の通りとなります。
[記述例]:
Sub サンプル()
Dim 行 As Double
行 = 2
Do Until Trim(Sheets("Sheet1").Range("A" & 行)) = ""
Sheets("Sheet2").Range("C" & 行) = Sheets("Sheet1").Range("A" & 行)
行 = 行 + 1
Loop
End Sub
最初に変数:行を指定します。
次に変数:行には初期値として2をセットします。
最後にDo~Loop文を使用して転記を行いながら変数:行に数字を1づつ足してループさせます。
ループはSheet1シートのA列のセルにデータが入力されていない場合に抜ける事になります。このループによりSheet1シートのA列2行目~6行目のデータをSheet2シートのC列2行目~6行目に転記します。
転記する記述方法は、「=」(イコール)の右側に転記前のセルを指定し、左側に転記先のセルを指定します。
ループ内の記述内容を説明すると、
---------------------------------
最初のループでは変数:行に2がセットされているので、Sheet1シートのA2セルにデータが入力されているかを判定します。Sheet1シートのA2セルにはデータが入力されているため、Sheet1シートのA2セルのデータをSheet2シートのC2セルに転記し、その後に変数:行に1を足し込みます。この足し込みにより変数:行の値は2+1=3となります。
---------------------------------
次のループでは変数:行に3がセットされているので、Sheet1シートのA3セルにデータが入力されているかを判定します。Sheet1シートのA3セルにはデータが入力されているため、Sheet1シートのA3セルのデータをSheet2シートのC3セルに転記し、その後に変数:行に1を足し込みます。この足し込みにより変数:行の値は3+1=4となります。
---------------------------------
次のループでは変数:行に4がセットされているので、Sheet1シートのA4セルにデータが入力されているかを判定します。Sheet1シートのA4セルにはデータが入力されているため、Sheet1シートのA4セルのデータをSheet2シートのC4セルに転記し、その後に変数:行に1を足し込みます。この足し込みにより変数:行の値は4+1=5となります。
---------------------------------
次のループでは変数:行に5がセットされているので、Sheet1シートのA5セルにデータが入力されているかを判定します。Sheet1シートのA5セルにはデータが入力されているため、Sheet1シートのA5セルのデータをSheet2シートのC5セルに転記し、その後に変数:行に1を足し込みます。この足し込みにより変数:行の値は5+1=6となります。
---------------------------------
次のループでは変数:行に6がセットされているので、Sheet1シートのA6セルにデータが入力されているかを判定します。Sheet1シートのA6セルにはデータが入力されているため、Sheet1シートのA6セルのデータをSheet2シートのC6セルに転記し、その後に変数:行に1を足し込みます。この足し込みにより変数:行の値は6+1=7となります。
---------------------------------
次のループでは変数:行に7がセットされているので、Sheet1シートのA7セルにデータが入力されているかを判定します。Sheet1シートのA7セルにはデータが入力されていないため、ループを抜ける事になります。
---------------------------------
との意味になります。
ダンロード
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。