Excel-VBA For Each 可視セルにループ処理をするマクロ

2019/12/11

プログラム

t f B! P L
Excel VBAマクロ。今回は
For Each 可視セルにループ処理をするマクロ
を示す。

■Excel-VBA For Each 可視セルにループ処理をするマクロ

Sub sample29()
Dim MR As Long
Dim MC As Long
MR = Cells(Rows.Count, 1).End(xlUp).Row 'ω'最終行,A:A
MC = Cells(1, Columns.Count).End(xlToLeft).Column 'ω'1:1,最終列

 Cells(1, 1).AutoFilter Field:=15, Criteria1:=Array("新方式")

For Each c In Range(Cells(2, MC + 1), Cells(MR, MC + 1)).SpecialCells(xlCellTypeVisible)
        X = Cells(c.Row, 8) + 3
     Cells(c.Row, MC + 1) = X
  Next c
End Sub
※[2.~3.] 変数宣言。
※[4.~5.] 最終行数、最終列数取得。
※[7.] 15列目(O列)を「新方式」でフィルタ抽出。
※[9.] c = 可視セルの範囲、でループ処理。
※[10.] 8列目(H列)セルの値に+3してXに格納。
※[11.] Xの値を最終列の次列に格納。
※[12.] 次セルにうつる。全セル処理でループ終了。

■マクロ実行対象

「部品データ_191128.xlsx」の「部品表」シート。8列目(H列)。

■マクロ実行結果

実行すると、20列目(T列)可視セルに
8列目(H列)セル値+3がループ処理で格納される。

■あとがき

今回はExcel VBAマクロ。
For Each 可視セルにループ処理をするマクロ
を示した。

For Each は指定したセル範囲に対して
処理を実行する場合に使う。
なので範囲に可視セルを指定して
処理することもできる。

LibreOffice Basicで使う場合は
コードの先頭行に
「Option VBASupport 1」を記述する。
Option VBASupport 1

他にループはFor To Nextなどもあるので参考。
指定した数値範囲に対して
ループ処理を実行する場合に使う。
Excel-VBA 配列を使って列の値を足し算・引き算するマクロ
以上。

ブログ アーカイブ

ラベル

このブログを検索

スポンサーリンク

自己紹介

機械メーカー総合職正社員10年勤務後退職。 エクセルVBAプログラム歴 5年。 LibreOffice(無料)でVBAマクロ検証。
■Fortniteクエスト攻略動画■
■Twitter■
⇒詳細プロフィールを表示

QooQ