web-dev-qa-db-ja.com

x = x + 1のVBA略記?

Sub btn1_Click()
Static value As Integer
value = value + 1
MsgBox value
End Sub

大学でVB.netコースを受講していたときに、変数に ''を追加するよう指示する短い方法があったことを誓います。たぶんx = + 1。 Visual StudioではなくAccessを使用しています。 VBE内でそれを試みると、+が削除されます。 Option Explicitも変更なしで削除しました

答えがノーになると仮定すると、それを短縮する方法はありません。

39
greggmcfg

悲しいことに、VBAにはoperation-assignment演算子がありません。

(追加割り当て+=などはVB.Netで利用可能です)

無意味な回避策。

function Inc(ByRef i As Integer)
   i = i + 1  
end function
...
Static value As Integer
inc value
inc value
69
Alex K.

関数でインクリメントされた数値を直接呼び出したい場合、このソリューションはよりうまく機能します:

Function inc(ByRef data As Integer)
    data = data + 1
    inc = data
End Function

例えば:

Wb.Worksheets(mySheet).Cells(myRow, inc(myCol))

関数inc()が値を返さない場合、上記の行はエラーを生成します。

6
etfa