スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

複数の列をループで処理する @VBA

CATEGORYVBA
複数の列を行方向にループさせたい場合は、こんな感じ。
    Set tmp_sheet = Sheets("Sheet1")
    Set tmp_range = tmp_sheet.Range("F:H,J:J")

    last_row = ...		' 最終行
	For r = 3 To last_row
		For Each tmp_area In tmp_range.Areas		' Range の Area
            For c = 1 To tmp_area.Columns.Count
				Set cell = tmp_area.Cells(r, c)
				real_r = cell.Row		' セルの行
				real_c = cell.Column	' セルの列
				addr = cell.Address(False, False, xlA1)
				...
            Next
        Next
    Next


行の指定があるなら、Range を For Each でも良いのだけれど、行を指定しないと最終行までループしちゃうのだ。
	' これは 10行目まで
    Set tmp_range = tmp_sheet.Range("F1:H10,J1:J10")
	For Each cell In tmp_range
		...
	Next

	' データが入ってない最終行まで対象にしちゃう!
    Set tmp_range = tmp_sheet.Range("F:H,J:J")
	For Each cell In tmp_range
		... 延々と終わらない(100万行目とか)
	Next

MSDN
関連記事
スポンサーサイト

VBA

0 Comments

Leave a comment

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。