和風スパゲティのレシピ

日本語でコーディングするExcelVBA

VBAでインクリメント演算子(++i)を使う方法

インクリメント演算子とは、

i = i + 1

このコードを

++ i

こうやって短縮表現するための演算子です。


他言語経験者の方にはおなじみの書き方ですね。


さてこの演算子をVBAで使用する方法ですが、
残念ながらVBAにはインクリメント演算子がありません。


流石に演算子を自作するのは不可能ですので、
自作の関数で無理やり代用しましょう。


Long型の引数を参照渡しByRefで受け取って、
1を足して返すだけでこの処理はできますので、関数はこんな感じになります。

Sub 十十(ByRef i As Long)
    i = i + 1
End Sub

 
この関数を使えば、

i = 1
十十 i
MsgBox i

これで「2」が表示されるようになります。


おおこれこそまさにインクリメント演算子!


Do文だって、

Do While i < 10


    十十 i
Loop

こんな自然になります。

いい感じですね!



さてもうお気づきと思いますが、「十」←これじゅうです。
 

i = i + 1

↑これを簡単に入力するのがインクリメント演算子の真価ですので、
じゅうじゅうで変換なんかしていては、真のインクリメント演算子になれません。


ということで、この関数を作ったら、ユーザー辞書に

単語 読み
十十 ++

と、全角のプラスを2回でこれに変換できるようにしておきましょう。

「十十 」と、半角スペースも単語に含めるのがミソです。



これで名実ともにインクリメント演算子になれましたね!



あとはコードのフォントですが、明朝体などではこの「十」という漢字に、

この「ウロコ」と呼ばれる装飾ができてしまいます。

インクリメント演算子として活用するには邪魔な装飾ですので、
この関数を利用する際はウロコのないフォントを選んでみてください。


フォントを変えたくなければ十を使わずに、
†和風スパゲティのレシピ† などに使用する中二演算子を使って、

Sub ††(ByRef i As Long)
    i = i + 1
End Sub

でも代用ができますのでお好きな方で実装ください。



以上でVBAにおけるインクリメント演算子の使い方の解説を終了します。


要するにインクリメント演算子はVBAでは使えないということですので、
あきらめて、しっかりと1を足す四則演算でやりましょう。



といいつつ、私はこの関数を普通に使っています。

流石に人に引き継ぎそうなマクロでは使っていませんが、
使い捨てマクロで自分だけが使う分には、便利かはさておき息抜きにはなりますね。

 

VBAでデクリメント演算子(--i)を使う方法

Sub ーー(ByRef i As Long)
    i = i - 1
End Sub

これでOKです。


「じゅうじゅう」ときたら「いちいち」とやりたくなりますが、
そんなことしなくても伸ばし棒「ー」でOKです。

マイナスと同じキーで入力できますので、
辞書登録の必要がなくていいですね。