見出し画像

【稼ぐ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行ずつ分割処理して入っていきます。

まとめ

配列を使って、ループ処理できた。

配列とループさえわかれば、あーこれ処理できるなーという感覚が掴めてくる。

案件に出くわした時に、あ!できる!と思いつくようになるんだ。

添付ファイル


いつもお読みいただき、ありがとうございます。 書くだけでなく読みたいので、コメント欄で記事名入れてもらうと見に行きます。