この記事ではCByte関数の使い方と注意点について解説します。
他のよく使うVBA関数一覧はこちら。
CByte関数の使い方と注意点
CByte関数は、数値や文字列をバイト型(Byte型)に変換する関数です。
Byte型は0~255の整数値しか扱えないため、メモリを節約したいときや制御用フラグなどに利用されます。
構文
CByte(式)
- 式 : 変換したい数値または数値文字列
- 戻り値 : Byte型(0~255の整数)
使用例
数値をByte型に変換
Sub Sample()
Dim value As Integer
Dim result As Byte
value = 123
result = CByte(value)
Debug.Print result
Debug.Print TypeName(result)
End Sub
▶ 出力結果
123
Byte
→ 整数をByte型に変換できます。
小数をByte型に変換
Sub Sample()
Dim value As Double
Dim result As Byte
value = 123.7
result = CByte(value)
Debug.Print result
End Sub
▶ 出力結果
124
→ 小数部分は四捨五入されます(銀行丸めが適用されます)。
銀行丸めとは
四捨五入で「ちょうど .5 のとき」、最も近い偶数に丸める方法です。
式 | 結果 |
---|---|
CByte(0.5) | 0 |
CByte(1.5) | 2 |
CByte(2.5) | 2 |
CByte(3.5) | 4 |
CByte(4.5) | 4 |
CByte(5.5) | 6 |
文字列をByte型に変換
Sub Sample()
Dim strValue As String
Dim result As Byte
strValue = "200"
result = CByte(strValue)
Debug.Print result
Debug.Print TypeName(result)
End Sub
▶ 出力結果
200
Byte
→ 数値文字列をByte型に変換できます。
⚠️注意
範囲外の値はオーバーフロー
Byte型は0~255の範囲しか扱えません。
範囲外の値を変換しようとするとエラーになります。
Sub Sample()
On Error Resume Next
Dim result As Byte
result = CByte(300)
If Err.Number <> 0 Then Debug.Print "エラー:" & Err.Description
On Error GoTo 0
End Sub
▶ 出力結果
エラー:オーバーフローしました。
変換できない文字列はエラー
Sub Sample()
On Error Resume Next
Dim result As Byte
result = CByte("abc")
If Err.Number <> 0 Then Debug.Print "エラー:" & Err.Description
On Error GoTo 0
End Sub
▶ 出力結果
エラー:型が一致しません。
小数は銀行丸めされる
少数を変換する際の四捨五入では、銀行丸め
も行われます。(詳細は上記表を参照)
意図と違う結果になる可能性がある点に注意しましょう。
その他のVBA関数
【Excel VBA】VBAでよく使う関数一覧&基本の使い方