おそらくは、何らかのプログラミング言語の経験がある方による、
「vba for文 デインクリメント」
「excel vba for文 デクリメント」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
VBA(Visual Basic for Applications)の、デクリメント演算子を探していらしたのでしょう。
JavaScriptなどのデクリメント演算子
中カッコを使うC系の言語では、「--」というデクリメント演算子が用意されています。
例えばJavaScriptなら、
for(var i=5; i>0; i--){ }
といったfor文で、カウンター変数・iを「5 4 3 2 1」とデクリメントできます。
このfor文の「i--」で使われている「--」に該当する演算子を探していたのが、
「vba for文 デインクリメント」
「excel vba for文 デクリメント」
という検索キーワードでしょう。
VBAにデクリメント演算子はない
結論からいうとVBAにデクリメント演算子はありません。
Visual Basicでは、名前のとおり初心者のために、他の方法でも表現可能な演算子は用意しなかったのでしょう。
C系の言語では、デクリメント演算子を使った「i--」という式は、代入演算子と算術演算子を使った「i = i - 1」と同じ結果を得られます。
「i--」を使ったfor文
for(var i=5; i>0; i--){ }
は、代入演算子と算術演算子を使って、
for(var i=5; i>0; i=i-1){ }
とも書けます。
VBを設計した人たちは「i = i - 1」と書くことができる「i--」は用意しなかったのです。
For~Next文でカウンター変数のマイナスの増分値
VBAにはデクリメント演算子がないことがわかると、じゃあ、For~Next文をどう書けばカウンター変数を減らせるのか、ということになるでしょう。
Dim i As Long For i = 5 To 1 Step -1
MsgBox i
Next i
VBAのFor~Next文で、カウンター変数をデクリメントするには、上記プロシージャの、
For i = 5 To 1 Step -1
の「Step -1」ようにStepの後ろに、マイナスの増分値を指定しましょう。
- Newer:VBAでシートをPDF保存する
- Older:RangeとColumnsの違い
Home » エクセルマクロ・Excel VBAの使い方 » VBAでデクリメント演算子は?