なんだかGoodVibes

日々の勉強メモです。

【VBA】進数変換

こんにちは。
本日は、VBAで10進数から他の進数に変換するサンプルです。


概要

本記事では、

  • 10進数から2進数
  • 10進数から8進数
  • 10進数から16進数

への変換のサンプルを記載します。


サンプル

Option Explicit

Sub Main()
    Dim d As Long
    d = 32
    
    ' 10進数から2進数に変換
    Dim b As Long: b = 0
    Dim baseNum As Long: baseNum = 1
    Dim num As Long: num = 32

    Do
        b = b + (num Mod 2) * baseNum
        num = num \ 2
        baseNum = baseNum * 10

        If num <= 0 Then
            Exit Do
        End If
    Loop
    
    ' 10進数から8進数に変換
    Dim o As Long: o = 0
    o = Oct(d)
    
    ' 10進数から16進数に変換
    Dim h As Long: h = 0
    h = Hex(d)

    Dim r As String
    r = "10進数=" & d & vbCrLf & "2進数  =" & b & vbCrLf & "8進数  =" & o & vbCrLf & "16進数=" & h
    
    Debug.Print (r)
End Sub

結果は以下です。

10進数=32
2進数  =100000
8進数  =40
16進数=20

まとめ

これを少し改変したら
エクセルのシートに記入した内容を元に
進数の変換をするようなツールも作れますね。
以上です。