+ 演算子
2 つの数値の合計を求める場合に使用します。
構文
結果 = expression1 + expression2
+ 演算子の構文には、次の 3 つの指定項目があります。
指定項目 | 説明 |
---|---|
result | 必須。任意の数値変数。 |
expression1 | 必須。任意の式です。 |
expression2 | 必須。任意の式です。 |
解説
演算子を + 使用すると、加算または文字列連結が行われるかどうかを判断できない場合があります。 連結には & 演算子を使用して、あいまいさをなくし、自己文書化コードを提供します。
少なくとも 1 つの式が Variant でない場合は、次の規則が適用されます。
条件 | Then |
---|---|
両方の式が数値データ型 (Byte、Boolean、Integer、Long、Single、Double、Date、Currency、または Decimal) の場合 | 加算が行われます。 |
両方の式が String の場合 | 連結が行われます。 |
一方の式が数値データ型で、もう一方の式が任意の Variant (Null 以外) の場合 | 加算が行われます。 |
一方の式が String で、もう一方の式が任意の Variant (Null 以外) の場合 | 連結が行われます。 |
1 つの式が EmptyVariant です | もう一方の式が変更されずに result として返されます。 |
一方の式が数値データ型で、もう一方の式が String の場合 |
Type mismatch エラーが発生します。 |
いずれかの式が Null の場合 | result が Null になります。 |
両方の式が Variant 式の場合は、次のルールが適用されます。
条件 | Then |
---|---|
両方の Variant 式が数値の場合 | 加算が行われます。 |
両方の Variant 式が文字列の場合 | 連結が行われます。 |
一方の Variant 式が数値で、もう一方が文字列の場合 | 加算が行われます。 |
数値データ型の式だけで単純な加算を行う場合、result のデータ型は、通常、精度が高い方の式と同じになります。 精度が最も低いのは Byte で、Integer、Long、Single、Double、Currency、Decimal の順に高くなります。 この順序の例外を次に示します。
条件 | result の値 |
---|---|
単一および長整数型が追加されます | Double。 |
結果のデータ型は、有効範囲をオーバーフローする Long、Single、または Date バリアントです。 | Double バリアントに変換されます。 |
結果のデータ型は、有効範囲をオーバーフローする Byte バリアントです | Integer バリアントに変換されます。 |
結果のデータ型は、有効範囲をオーバーフローする Integer バリアントです | Long バリアントに変換されます。 |
日付は任意のデータ型に追加されます | 日付。 |
いずれかまたは両方の式が Null の場合、result は Null になります。 両方の式が Empty の場合、result は Integer になります。 ただし、一方の式だけが Empty の場合は、もう一方の式が変更されずに result として返されます。
注:
加算および減算で使用される精度の順序は、乗算で使用される精度の順序とは異なります。
例
この例では、 演算子を + 使用して数値を合計します。 演算子を + 使用して文字列を連結することもできます。 ただし、あいまいさをなくすには、代わりに & 演算子を使用する必要があります。 演算子で作成された式のコンポーネントに + 文字列と数値の両方が含まれている場合、算術結果が割り当てられます。 コンポーネントが排他的に文字列である場合、文字列は連結されます。
Dim MyNumber, Var1, Var2
MyNumber = 2 + 2 ' Returns 4.
MyNumber = 4257.04 + 98112 ' Returns 102369.04.
Var1 = "34": Var2 = 6 ' Initialize mixed variables.
MyNumber = Var1 + Var2 ' Returns 40.
Var1 = "34": Var2 = "6" ' Initialize variables with strings.
MyNumber = Var1 + Var2 ' Returns "346" (string concatenation).
関連項目
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。