【VBA】10進数を16進数に変換するマクロ
◇前置き
最近、仕事でPLC(※)を使って演算処理をする機会がありました。
※PLC:プログラマブルロジックコントローラー
↑工場などで生産設備を制御するコンピューター的なものですね。
諸々の事情から演算結果をPLC内では16進数で保持して、外部に出力してから10進数に変換することになりました。
↑この辺の事情を語ると長くなるので詳しいことは割愛します。
そこで基数変換をしてくれるマクロを作るに至りました。
※実物は基数変換以外にも色々と処理していますが、今回は基数変換のみを切り取って紹介します。
◇概要
例のごとく、こんな感じのExcelを作りました。
B列に10進数を入力して変換ボタンをクリックするとC列に16進数が出力されます。
◇ソースコード
ソースコードはこんな感じです。
Sub Number_10_to_16() Dim Num10 As Long Dim i As Integer Dim count As Integer i = 0 count = 0 For i = 3 To 14 Num10 = Range("B" & i) If Range("B" & i).Value <> "" Then Range("C" & i).Value = WorksheetFunction.Dec2Hex(Num10) count = count + 1 End If Next MsgBox count & "件のデータを10進数⇒16進数に変換しました。" End Sub
◇使い方
実際に動かしてみましょう。
まずは適当な値を入力します。
変換ボタンをクリックすると........
無事変換されました!
◇最後に
基数変換自体、エンジニアやプログラマーといった職業でしか使わない知識だと思います。
基数変換の中だと16進数⇔10進数は比較的よく使う方ではないでしょうか。
ワークシート関数を使うと短いコードで処理が出来るので、複雑なマクロに組み込む際にもオススメです。
この記事も誰かの役に立つとうれしいです。