EXCEL(VBA)繰り返し処理をする。
基本マクロの一つ(自分流)の説明をしたことがありませんでしたのでUPします。
INPUTというシートから指定した項目をOUTPUTのシートに移す単純な処理です。
上から順番に実行する処理です。
A)Set set_data02 = Worksheets(mySheetName002).Range(“A1")
は、変数(set_data02)に、ワークシートの場所をセットします。
シートにピンを刺して場所を決めるイメージですかね。
B)set_data02.Offset(0, 3).Value = set_data01.Offset(0, 11).Value
ですが、A)で刺したピンの位置から見てどこのデータを見るかです。
OUTPUTのピンを刺してある位置から列方向(右)に3個目の所に
INPUTのピンを刺してある位置から列方向(右)に11個目の所を代入です。
C)Set set_data02 = set_data02.Offset(1, 0)
ピンを刺してある位置を、行方向(下)に1個動かすです。
D)
Do Until set_data01.Offset(0, 0).Value = “"
Loop
ピンを刺してある場所がスペースになったら抜けるです。
例マクロ
Dim set_data01 as Object Dim set_data02 as Object '### シート名セット ### mySheetName001 = "INPUT" mySheetName002 = "OUTOUT" '###クリア### Sheets(mySheetName002).Select Cells.Select Selection.Delete Shift:=xlUp '###head 作成### Set set_data02 = Worksheets(mySheetName002).Range("A1") set_data02.Offset(0, 0).Value = "コード" set_data02.Offset(0, 1).Value = "商品名" set_data02.Offset(0, 2).Value = "冊数" set_data02.Offset(0, 3).Value = "金額" '###開始位置SET### Set set_data01 = Worksheets(mySheetName001).Range("A2") Set set_data02 = Worksheets(mySheetName002).Range("A2") '### スペースまで。(データが無くなるまで) ### Do Until set_data01.Offset(0, 0).Value = "" set_data02.Offset(0, 0).Value = set_data01.Offset(0, 0).Value set_data02.Offset(0, 1).Value = set_data01.Offset(0, 2).Value set_data02.Offset(0, 2).Value = set_data01.Offset(0, 10).Value set_data02.Offset(0, 3).Value = set_data01.Offset(0, 11).Value '### INPUT OUTPUT 次行へ ### Set set_data01 = set_data01.Offset(1, 0) Set set_data02 = set_data02.Offset(1, 0) Loop MsgBox(" 終了メッセージ ")
Discussion
New Comments
No comments yet. Be the first one!