VBA最終列の取得/不規則な処理
VBAにて、最終列の取得ができません。
また、繰り返し処理を3列処理、step5、3列処理、step5…と繰り返し行う方法もご教授いただきたいです。
エクセルはo365を使用しております。
①最終列の取得
実際は300列近くの表になります。
最終行は取得できたのですが、最終列がなぜかエラーも出ず、処理が行われません。
②不規則な繰り返し処理
画像の水色部分のみ処理を行いたいです。
3列処理と記載したのですが、セル結合しているので、考え方が合っているのかも不明です。
塗りつぶされているセル一つ一つに処理を行いたいです。
また、行列共に可変します。
実行したいマクロは、選択したブックのSheets(1)の表の中の水色に入力されている文字列が「1」か「2」か判断するというものです。
「1」と入力されていれば → 別ブックのA1セルに1をカウント
「2」と入力されていれば → 別ブックのB1セルに1をカウント
※水色セルは参考で用意したものなので、実際は塗りつぶしされていません。
※空白のセルもあります
①②の解消法のご教授をよろしくお願い致します。
===============================================
Option Explicit
Sub kurikaeshi()
Dim retu As Long, gyou As Long
Dim File As Workbook
Set File = Workbooks("test.xlsx")
Dim ws1 As Worksheet, ws2 As Worksheet
Set ws1 = File.Sheets(1)
Set ws2 = ThisWorkbook.Sheets(1)
Workbooks.Open FileName:=ThisWorkbook.Path & "/" & File
For retu = 2 To ws1.Cells(4, ws1.Columns.Count).End(xlToLeft).Column 'ここが処理されません
For gyou = 4 To ws1.Cells(ws1.Rows.Count, 2).End(xlUp).Rows
If ws1.Cells(gyou, retu).Value = "1" Then
ws2.Range("A1") = ws2.Range("A1") + 1
If ws1.Cells(gyou, retu).Value = "2" Then
ws2.Range("B1") = ws2.Range("B1") + 1
End If
Else
Exit Sub
End If
Next gyou
Next retu
End Sub
お礼
御回答有難う御座いました。 期待する値がちゃんと取れました。