[VBA]変数をインクリメントするには、サブルーチンを使う 〜 ByRef

VBAの変数は、プロシージャに参照を渡すと
Aliasのように参照元も書き変えることができます。

Sub inc(ByRef i)
   i = i+1
End Sub

Sub test_inc
   Dim k
   k = 20
   inc k
   inc k
   Debug.Print k '=> 22
End Sub

ちなみに値をコピーして渡したい場合はByValです。
デフォルトはC言語などと異なり参照渡し(ByRef)なのでご注意。
VBAもこういうちょっとしたルーチンが標準としてあれば、ストレスなくコーディングできるのですが・・・ まあ、C言語でもswapマクロとかよく作りましたし、 昔からのプログラミング言語はこんなものでしょうか。