教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA プログラミング】(転記3)データを同一シート内に転記する方法を教えて!(Do~Loop文転記)

f:id:m_kbou:20200420133208p:plain

データを同一シート内にDo~Loop文を使用して転記する方法について説明します。

 

 

例題

例題は、<実行>ボタンをクリックすると、転記前状態(A2セル~A6セルに登録されているデータ)を、Do~Loop文を使用した転記後状態(C2セル~C6セルに転記)にするプログラミング方法です。

[転記前]:

f:id:m_kbou:20210220095208p:plain

[転記後]:

f:id:m_kbou:20210220095220p:plain

 

プログラミング

プログラミングは以下の通りとなります。

[記述例]:

Sub サンプル()

  Dim 行 As Double

  行 = 2
  Do Until Trim(Range("A" & 行)) = ""
    Range("C" & 行) = Range("A" & 行)
    行 = 行 + 1
  Loop

End Sub

最初に変数:行を指定します。

次に変数:行には初期値として2をセットします。

最後にDo~Loop文を使用して転記を行いながら変数:行に数字を1づつ足してループさせます。

ループはA列のセルにデータが入力されていない場合に抜ける事になります。

転記する記述方法は、「=」(イコール)の右側に転記前のセルを指定し、左側に転記先のセルを指定します。

ループ内の記述内容を説明すると、

---------------------------------

最初のループでは変数:行に2がセットされているので、A2セルにデータが入力されているかを判定します。A2セルにはデータが入力されているため、A2セルのデータをC2セルに転記し、その後に変数:行に1を足し込みます。この足し込みにより変数:行の値は2+1=3となります。

---------------------------------

次のループでは変数:行に3がセットされているので、A3セルにデータが入力されているかを判定します。A3セルにはデータが入力されているため、A3セルのデータをC3セルに転記し、その後に変数:行に1を足し込みます。この足し込みにより変数:行の値は3+1=4となります。

---------------------------------

次のループでは変数:行に4がセットされているので、A4セルにデータが入力されているかを判定します。A4セルにはデータが入力されているため、A4セルのデータをC4セルに転記し、その後に変数:行に1を足し込みます。この足し込みにより変数:行の値は4+1=5となります。

---------------------------------

次のループでは変数:行に5がセットされているので、A5セルにデータが入力されているかを判定します。A5セルにはデータが入力されているため、A5セルのデータをC5セルに転記し、その後に変数:行に1を足し込みます。この足し込みにより変数:行の値は5+1=6となります。

---------------------------------

次のループでは変数:行に6がセットされているので、A6セルにデータが入力されているかを判定します。A6セルにはデータが入力されているため、A6セルのデータをC6セルに転記し、その後に変数:行に1を足し込みます。この足し込みにより変数:行の値は6+1=7となります。

---------------------------------

次のループでは変数:行に7がセットされているので、A7セルにデータが入力されているかを判定します。A7セルにはデータが入力されていないため、ループを抜ける事になります。

---------------------------------

との意味になります。

f:id:m_kbou:20210220100153p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。また、ボタンにプログラムを割り当てるにはこちらを参考にして下さい。

 

ダンロード

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

 

関連プログラム

www.osiete-excelvba.work

www.osiete-excelvba.work