更新日:、 作成日:
VBA Hex 関数:数値を 16 進数に変換する
はじめに
Excel VBA マクロの Hex 関数から数値を 16 進数に変換する方法を紹介します。
Hex 関数は、指定した数値を 16 進数の文字列に変換します。
255 なら FF を返します。
&HFF のように、頭に &H を付けて 16 進数の数値を入力できます。
「Val 関数」から、&HFF のように、頭に &H を付けた 16 進数の文字列を 10 進数に変換できます。
Hex 関数の引数と戻り値
Hex(数値)
数値を 16 進数の文字列に変換します。
引数「数値」 | Long 型の範囲の整数を指定します。 |
戻り値の型 | 文字列型 (String) |
16 進数とは
16 進数とは 0 ~ 9 と A ~ F を使って、次のように 16 で桁が繰り上がる数値のことです。
10 進数 | 16 進数 |
0 | 0 |
1 | 1 |
2 | 2 |
・・・ | |
8 | 8 |
9 | 9 |
10 | A |
11 | B |
12 | C |
13 | D |
14 | E |
15 | F |
16 | 10 |
17 | 11 |
18 | 12 |
一般的に使っている数値は 10 で繰り上がるので 10 進数です。
スポンサーリンク
解説
引数「数値」が小数を含む値のときは、整数に偶数丸めしてから 16 進数に変換します。
変換できる数値の範囲は、Long 型の範囲 -2,147,483,648 ~ 2,147,483,647 の間です。
範囲外の値を指定すると「エラー 6 オーバーフローしました。」が発生します。
数値以外の値を指定すると「エラー 13 型が一致しません。」が発生します。
16 進数を 10 進数に変換
16 進数の文字列を 10 進数に変換するには &HFF のように、頭に &H を付けた文字列を「Val 関数」で変換します。
16進数を入力
16 進数の数値をコードで入力するには &HFF のように、頭に &H を付けます。
使用例
Hex 関数の使用例を紹介します。
16 進数に変換する
16 進数に変換します。
Dim s As String
s = Hex(9)
Debug.Print(s) ' 9
s = Hex(10)
Debug.Print(s) ' A
s = Hex(15)
Debug.Print(s) ' F
s = Hex(16)
Debug.Print(s) ' 10
s = Hex(255)
Debug.Print(s) ' FF
s = Hex(-1)
Debug.Print(s) ' FFFF
s = Hex(-2)
Debug.Print(s) ' FFFE
s = Hex("2147483648") ' オーバーフロー
s = Hex("Tips") ' 型が一致しません
16 進数の文字列を 10 進数に変換する
「Val 関数」を使用して、16 進数を 10 進数に変換できます。
Dim s As String
Dim l As Long
s = Hex(16) ' 10
l = Val("&H" & s) ' &H10
Debug.Print(l) ' 16
s = Hex(255) ' FF
l = Val("&H" & s) ' &HFF
Debug.Print(l) ' 255
16 進数を入力する
16 進数を数値として入力します。
Dim l As Long
l = &H9
Debug.Print(l) ' 9
l = &HA
Debug.Print(l) ' 10
l = &HFF
Debug.Print(l) ' 255
スポンサーリンク