
【稼ぐVBA】ループの使い方 【ファイル添付有】 #Excel #VBA
私はこんなんでも、実際にVBAで稼いでますからご安心を。
空白スペースで区切られたデータをどう処理するか その3
【ノンプログラマー&初心者向けVBA講座】です。
私のように苦労する人を減らそうという試みです。
前回
課題
ループを覚える。
VBAエディタでの作業
Sub Graph_Data_Make()
Dim sheet_TOP As Worksheet
Dim split_STR() As String
Set sheet_TOP = Worksheets("TOP")
split_STR = Split(sheet_TOP.Range("A1"), " ")
End Sub
問題
A1セルの文字しか分割できない。
4行、全て分割したい。
4行を取り込む1
Sub Graph_Data_Make()
Dim sheet_TOP As Worksheet
Dim split_STR() As String
Set sheet_TOP = Worksheets("TOP")
split_STR = Split(sheet_TOP.Range("A1"), " ")
split_STR = Split(sheet_TOP.Range("A2"), " ")
split_STR = Split(sheet_TOP.Range("A3"), " ")
split_STR = Split(sheet_TOP.Range("A4"), " ")
End Sub
取り込めている。
順番に。
でも、これが処理する行が何十行もあると、A1A2と手書きで増やすことを想像してしまう。
吐きそう。
ループさせよう
4行だから4回繰り返せばいい。
変化が必要なのは、A1の1の部分だけ。
Sub Graph_Data_Make()
Dim sheet_TOP As Worksheet
Dim split_STR() As String
Set sheet_TOP = Worksheets("TOP")
For i = 1 To 4
split_STR = Split(sheet_TOP.Range("A1"), " ")
Next i
End Sub
でも、これだと、A1の内容を4回分割してしまう。
For
For i = 1 To 4
Forで囲んで、iという入れ物に、順番に1から4を格納する。
Next i
Next i
Next iで閉じたところまでを繰り返す。
変えたい場所をiで置き換え
split_STR = Split(sheet_TOP.Range("A1"), " ")
変更
split_STR = Split(sheet_TOP.Range("A" & i), " ")
iを数値の所に入れて、&でAとつないでいます。
””の位置に気をつける。
これで動かすと
split_STRに、処理したい4行が、1行ずつ分割処理して入っていきます。
まとめ
配列を使って、ループ処理できた。
配列とループさえわかれば、あーこれ処理できるなーという感覚が掴めてくる。
案件に出くわした時に、あ!できる!と思いつくようになるんだ。
添付ファイル
いいなと思ったら応援しよう!
