ExcelVBAでインクリメント(++i)とデクリメント(–i)を使用したい
VBAマクロを実行する際、++iでiの値を1足すことや、–iでiの値を1減らすことはできません。
VBAには言語として用意されていない為、代替え処理としてサブルーチン化するしかありません。
(自己満足になってしまいますが)
インクリメント(++i)とデクリメント(–i)を使用するサンプルコード
'■インクリメント(プラス1する)のためのサブルーチン
Public Sub inc(ByRef i As Long)
i = i + 1
End Sub
'■デクリメント(マイナス1する)のためのサブルーチン
Public Sub dec(ByRef i As Long)
i = i - 1
End Sub
'■実際の使い方
Public Sub sample()
Dim x As Long: x = 0
inc x
Debug.Print x '1
inc x
Debug.Print x '2
dec x
Debug.Print x '1
End Sub
注意点
- 参照渡しByRefでそのまま元の変数を書き換える形を取っています。




コメント