VBの計算で使う演算子


Visual Basicの演算子は算数の計算とは違う演算子を用いるものもあります。

演算子 意味 計算例 結果
+ 加算 5 + 3 8
- 減算 7 - 2 5
* 乗算(×) 8 * 6 48
/ 除算(÷) 27 / 9 3
\ 整数除算 17 \ 4 4
Mod 剰余 17 Mod 4 1
^ べき乗 2 ^ 3 8

演算子の優先順位

(    )の中の式→べき乗(^)→マイナス符号(-)→乗算(*)・除算(/)→整数除算(\)→剰余(Mod)→加算(+)・減算(-)


比較演算子


数値や文字列を比較するには比較演算子を使用します。演算結果が、真ならTrue、偽ならFalse、どちらかがNullの場合はNullとなります。

A < B AはBより小さい
A <= B AはB以下
A > B AはBより大きい
A >= B AはB以上
A = B AとBは等しい
A <> B AとBは等しくない

平方根を求める


平方根を求めるにはSqr関数を使用します。例えば、以下のようにすると2の平方根を表示することができます。

MsgBox Sqr(2)

結果はDouble型で返ってきます。


絶対値を求める


数値の絶対値を求めるにはAbs関数を使用します。数値の絶対値とは、その数値から符号を取り除いたものをいいます。例えば、以下のようにすると変数aの絶対値を表示することができます。

Dim a As Integer

a = -7
MsgBox Abs(a)

数値の整数部分のみを求める


数値の整数部分のみを求めるには、Int関数またはFix関数をしようします。Int関数と Fix関数は、どちらも小数部分を取り除いた整数値を返しますが、負の数の場合は、Int関数が引数を超えない最大の負の整数を返すのに対して、Fix関数は引数以上の最小の負の整数を返します。例えば、引数に -3.14 を指定すると、Int関数は -4、Fix関数は -3 をそれぞれ返します。

Dim a As Double

a = -3.14
MsgBox Int(a)
MsgBox Fix(a)

数値の符号を求める


数値の符号を求めるにはSgn関数を使用します。引数で指定した値が正の数の場合は1、負の数の場合は-1を返します。引数に0を指定した場合は、0を返します。

以下では数値がそれぞれ正の数、負の数、0のときのSgn関数の結果を返します。

Dim a As Integer, b As Integer, c As Integer

a = 3
b = 0
c = -3

MsgBox Sgn(a), , "a = 3のとき"
MsgBox Sgn(b), , "b = 0のとき"
MsgBox Sgn(c), , "c = -3のとき"

年、月、日、時、分、秒だけをそれぞれ取得する


年、月、日、時、分、秒だけをそれぞれ取得するにはそれぞれ取得する関数が用意されています。以下の表を参照してください。

Year関数
Month関数
Day関数
Hour関数
Minute関数
Second関数

普通はしませんが、以下のようにすると現在の日付・時刻を表示することができます。

MsgBox "現在は " & Year(Now) & "年" & Month(Now) & "月" & _
Day(Now) & "日 " & Hour(Now) & "時" & Minute(Now) & "分" & _
Second(Now) & "秒 です。"

文字列の長さ(文字数)を取得する


文字列の長さ(文字数)を取得するにはLen関数を使用します。結果はLong型で返ってきます。引数にはString型の変数を指定することもできます。

例えば、以下のようにすると文字数を表示できます。

Dim a As Long

a = Len("サルも木から落ちる")
MsgBox a

文字列の一部を取得する


文字列の一部を取得するにはLeft関数、Right関数またはMid関数を使用します。Left関数は左端から、Right関数は右端から引数で指定した文字数分を取得します。Mid関数は指定した開始文字列から指定した文字数分の文字列を返します。

例えば、以下のようにして文字列の一部を取得・表示します。

Dim str As String
Dim a As String, b As String, c As String

str = "サルも木から落ちる"

a = Left(str, 2)
b = Mid(str, 4, 1)
c = Right(str, 3)
MsgBox a
MsgBox b
MsgBox c

文字列から数値を取得する

文字列から数値を取得するにはVal関数を使用します。文字列の中から数字を読み込み、数字以外のものが見つかるまでの数字を数値に変換して返します。この際に、スペースやタブは無視されます。例えば、以下のコードではVal関数は123 という値を返します。

Dim a As Integer

a = Val("12 3c5")
MsgBox a

文字列から特定の文字を検索する


文字列から特定の文字を検索するにはInStr関数を使用します。

構文

InStr([start, ]string1, string2[, compare])

start 検索する開始位置を指定します。省略すると、先頭の文字から検索されます。省略可能です。
string1 検索の対象となる文字列を指定します。
string2 引数 string1 で検索する文字列を指定します。
compare 文字列比較の比較モードを指定する番号を設定します。省略可能です。

引数string1の文字列の中から引数string2の文字を検索し、先頭からの位置を取得します。

以下ではInStr関数を使用してMの位置を取得・表示します。

Dim str As String, ret As Long

str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
ret = InStr(str, "M")
MsgBox ret

2つの文字列を比較する


2つの文字列を比較するにはStrComp関数を使用します。第1引数と第2引数に比較する文字列を指定します。第3引数には比較モードを指定できます。0を指定するとバイナリモード、1を指定するとテキストモードで比較します。第3引数は省略可能です。結果は一致する場合のみ0を返します。それ以外は、1または-1を返します。

以下では2つの文字列を比較してその結果を表示します。

Dim str1 As String, str2 As String

str1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
str2 = "ABCDEFGHIJKLMNOPQRSTUVWZZZ"
MsgBox StrComp(str1, str2)

アルファベットを大文字・小文字に変換する


アルファベットを大文字・小文字に変換するにはUCase関数またはLCase関数を使用します。大文字に変換するにはUCase関数、小文字に変換するにはLCase関数を使用します。

以下では大文字、小文字それぞれに変換した文字列を表示します。

Dim str As String
Dim str1 As String, str2 As String

str = "Visual Basic"
str1 = UCase(str)
str2 = LCase(str)

MsgBox str1
MsgBox str2

文字コードに対応した文字を取得する


文字コードに対応した文字を取得するにはChr関数を使用します。13を指定するとキャリッジリターン(改行)になります。

以下ではChr関数を利用して改行した文字列を表示します。

MsgBox "Visual" & Chr(13) & "Basic"

文字コードを取得する


文字コードを取得するにはAsc関数を使用します。複数の文字列を引数に指定した場合、返されるのは先頭の文字の文字コードです。

以下では文字コードを取得し、表示します。

Dim str As String, ret As Integer

str = "A"
ret = Asc(str)
MsgBox ret

データ型を変換する


データ型を変換するには、変換するデータ型に応じて以下の変換関数を使用します。

関数 戻り値のデータ型
CBool ブール型 (Boolean)
CByte バイト型 (Byte)
CCur 通貨型 (Currency)
CDate 日付型 (Date)
CDbl 倍精度浮動小数点数型 (Double)
CDec 10 進型 (Decimal)
CInt 整数型 (Integer)
CLng 長整数型 (Long)
CSng 単精度浮動小数点数型 (Single)
CVar バリアント型 (Variant)
CStr 文字列型 (String)

以下では、テキストボックス(Text1)に入力された文字を整数型(Integer)に変換して3.14倍した値を表示します。

Dim num As Integer

num = CInt(Val(Text1.text))
Msgbox num * 3.14


戻る

ホーム