Home » エクセルマクロ・Excel VBAの使い方 » VBAでデクリメント演算子は?

VBAでデクリメント演算子は?

おそらくは、何らかのプログラミング言語の経験がある方による、
「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文をどう書けばカウンター変数を減らせるのか、ということになるでしょう。

Sub samp()
 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の後ろに、マイナスの増分値を指定しましょう。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » VBAでデクリメント演算子は?

「エクセルマクロ・Excel VBAの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.