Excelで10進数から2進数へ変換する方法|関数とVBAでの完全ガイド

Excelで10進数を2進数に変換する方法を詳しく解説。DEC2BIN関数の使い方、VBAマクロでの実装、エラー対策まで、実際のサンプルコード付きでわかりやすく説明します。16進数変換も紹介。

November 4, 2025
16to10 Team
2 min read
Other Languages
Table of Contents

This article is not available in en. Showing ja version.

はじめに

Excelを使用して10進数を2進数に変換する方法を知りたい方へ。この記事では、Excelの組み込み関数からVBAマクロまで、実践的な変換手法を詳細に解説します。プログラミング初心者から上級者まで、確実に理解できる内容となっています。

10進数と2進数の基礎知識

10進数は私たちが日常的に使用する0から9までの数字で表される数値体系です。一方、2進数は0と1のみで構成され、コンピューターの内部処理で使用される基本的な数値表現です。

10進数から2進数への変換は、デジタルシステムやプログラミングにおいて頻繁に必要とされる基本的な操作です。Excelではこの変換を簡単に行うことができます。

Excel関数を使用した10進数から2進数への変換

DEC2BIN関数の基本構文

Excelで10進数を2進数に変換する最も簡単な方法は、DEC2BIN関数を使用することです。

EXCEL
=DEC2BIN(数値, [桁数])
  • 数値: 変換したい10進数の数値(必須)
  • 桁数: 返す2進数の桁数(オプション)

実際の使用例

セルA1に10進数「15」がある場合:

EXCEL
=DEC2BIN(A1)

結果: 1111

EXCEL
=DEC2BIN(15, 8)

結果: 00001111

対応範囲の注意点

DEC2BIN関数は-512から511までの整数のみ対応しています。この範囲外の数値を変換する場合は、後述のVBAマクロを使用する必要があります。

VBAマクロを使用した高度な変換

基本の変換マクロ

より大きな数値や複雑な変換が必要な場合は、VBAマクロが効果的です。

VBA
Function DecimalToBinary(ByVal decimalNum As Long) As String
    If decimalNum = 0 Then
        DecimalToBinary = "0"
        Exit Function
    End If
    
    Dim binaryStr As String
    binaryStr = ""
    
    While decimalNum > 0
        binaryStr = (decimalNum Mod 2) & binaryStr
        decimalNum = decimalNum \ 2
    Wend
    
    DecimalToBinary = binaryStr
End Function

ワークシートでの使用方法

EXCEL
=DecimalToBinary(255)

結果: 11111111

他の基数変換との連携

16進数への変換

Excelでは2進数だけでなく、16進数への変換も簡単に行えます。

EXCEL
=DEC2HEX(255)

結果: FF

複数基数の一括変換

EXCEL
A1: 255
B1: =DEC2BIN(A1)   // 11111111
C1: =DEC2HEX(A1)   // FF
D1: =DEC2OCT(A1)   // 377

よくあるエラーと解決策

#NUM! エラーの対処

数値が対応範囲外の場合に発生します:

EXCEL
=DEC2BIN(1000)  // #NUM! エラー

解決策:

VBA
=IF(A1>511, "範囲外", DEC2BIN(A1))

負の数の取り扱い

負の数を変換する場合:

EXCEL
=DEC2BIN(-5, 10)

結果: 1111111011(2の補数表現)

実践的な応用例

複数セルの一括変換

A列に10進数が並んでいる場合:

EXCEL
B1: =DEC2BIN(A1, 10)

これを下方向にコピーすることで、一括変換が可能です。

カスタム書式での表示

VBAを使用して動的に2進数表示を行う方法:

VBA
Sub DisplayBinary()
    Dim rng As Range
    For Each rng In Selection
        rng.NumberFormat = "0"
        rng.Value = Application.WorksheetFunction.Dec2Bin(rng.Value, 8)
    Next rng
End Sub

よくある質問(FAQ)

Q: 511より大きい数値を変換するには?

A: VBAマクロを使用するか、数値を分割して変換する必要があります。前述のDecimalToBinary関数は長整数型に対応しているため、より大きな数値を処理できます。

Q: 2進数から10進数に戻す方法は?

A: BIN2DEC関数を使用します:

EXCEL
=BIN2DEC("1111")  // 結果: 15

Q: 小数部を含む数値は変換できますか?

A: Excelの標準関数では整数のみ対応しています。小数部を処理するにはカスタム関数の作成が必要です。

まとめ

Excelでの10進数から2進数への変換は、DEC2BIN関数を使用することで簡単に行えます。基本的な変換からVBAを使用した高度な処理まで、状況に応じて最適な方法を選択してください。

より詳細なExcel関数については、Microsoft Officeサポートを参照することをお勧めします。また、数値システムの基礎理論については、コンピューターサイエンスの基礎資料も参考になります。

この記事が、Excelを使用した10進数から2進数への変換に関する理解を深める一助となれば幸いです。