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])
|
引数string1の文字列の中から引数string2の文字を検索し、先頭からの位置を取得します。
以下ではInStr関数を使用してMの位置を取得・表示します。
| Dim str As
String, ret As Long str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ret = InStr(str, "M") MsgBox ret |
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)) |