進数変換リンク

他のn進数からn進数への変換は以下をご参照ください。

VBAで2進数から8進数へ変換する
VBAで2進数から10進数へ変換する
VBAで2進数から16進数へ変換する
VBAで8進数から2進数へ変換する
VBAで8進数から10進数へ変換する
VBAで8進数から16進数に変換する
VBAで10進数から2進数へ変換する
VBAで10進数から8進数へ変換する
VBAで10進数から16進数へ変換する

8進数から16進数へ変換する考え方

8進数から16進数に変換するには、一度10進数に変換してからHex関数を使って16進数に変換します。

8進数から10進数の変換は「VBAで8進数から10進数へ変換する」をご参照ください。

8進数から16進数に変換する関数

第一引数に変換元となる8進数文字列を指定し、第二引数が変換後の10進数文字列が返却されます。

例えば第一引数に”37″とセットした場合は第二引数に”1F”がセットされて関数が終了します。

コードは2段階の処理に分かれています。1つ目は8進数から10進数への変換で、2つ目はHex関数を使った10進数から16進数への変換です。

ここではあえて8進数から10進数への変換をコードで書いていますが「VBAで8進数から10進数へ変換する」で紹介しているOctToDec()を使って以下のように書いても同じ意味になります。

厳密には引数の8進数文字列のチェックがOctToHex()とOctToDec()の2回になる違いはありますが処理速度にもほとんど影響はありません。

使い方

8進数文字列をいくつか持つ配列を作って、ループでOctToHex関数を呼び出し、変換結果をイミディエイトウィンドウに出力するサンプルです。

実行結果
1 1
2 2
3 3
4 4
5 5
6 6
7 7
10 8
11 9
12 A
13 B
14 C
15 D
16 E
17 F
20 10
21 11
22 12
23 13
24 14
25 15
26 16
27 17
30 18
31 19
32 1A
33 1B
34 1C
35 1D
36 1E
37 1F
40 20
41 21
42 22
43 23
44 24
45 25