Excelのワークシート関数のほとんどは、WorksheetFunctionオブジェクトを使用してVBAでアクセスできます。ただし、一部の機能が利用できないように見える場合があります。そのような関数の1つがBIN2DECで、これは2進値を10進値に変換します。使用できない理由は、BIN2DECが実際にはExcelワークシート関数ではなく、AnalysisToolPakアドインの一部であるためです。

その場合、2つのオプションがあります。AnalysisToolPakと同等のVBAを読み込むか、VBAで独自のBIN2DEC関数を作成することができます。最初に行うには、ExcelにAnalysis ToolPak —VBAアドインがインストールされていることを確認してください。使用可能なアドインにリストされていない場合は、Windowsを使用してファイルATPVBAEN.XLAを検索します。 (英語以外の言語バージョンのExcelを使用している場合、ファイルの「EN」

部分は異なります。)これは、有効にする実際のアドインです。

アドインを有効にしたら、VBAエディターを表示し、[ツール]、[ツール]の順に選択します。 [参照]ダイアログボックスを表示するための参照。 atpvbaen.xla参照が選択されていることを確認してください。ダイアログボックスを閉じると、他のワークシート関数と同じようにBIN2DECを使用できます。

もう1つのオプションは、独自のBIN2DEC関数を作成することです。以下は、2進数を含む文字列を受け入れ、その文字列の10進値を表す数値を返す関数の例です。

Function Bin2Dec(sMyBin As String) As Long     Dim x As Integer     Dim iLen As Integer

iLen = Len(sMyBin) - 1     For x = 0 To iLen         Bin2Dec = Bin2Dec + _           Mid(sMyBin, iLen - x + 1, 1) * 2 ^ x     Next End Function

この関数には、実際にはBIN2DECワークシート関数と同じ制限はありません。 10桁を超える2進数で動作します。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(3063)は、Microsoft Excel 97、2000、2002、および2003に適用されます。