当ブログに掲載しているサンプルは、すべて利用者の自己責任という形でお願いします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。
記事そのもののリンクについてはご自由に行っていただいてよいです。

テクてく Lotus 技術者 Slack に参加しよう!

2009年7月22日水曜日

数値をx進数に変換してみる

10進数からx進数への変換のサンプルです。
とは言っても、
2進数、8進数、16進数のみです。
それぞれBin、Oct、Hex関数を使うだけの簡単なものです。
この中で使えそうなのは、BinとHex関数ですね。

入力できる10進数に限界があるのは、Long型だからです。
ノーツでは、数値はそこまでしか扱えないので、注意が必要です。

ヘルプを見ると分かりますが、BinやHexもLong型の限界までしか変換をサポートしていません(戻り値の最大桁数が決まっています)。


ちなみに、10進数への変換を行う関数はないんですね。ちょっと残念。

Sub Click(Source As Button)
    On Error Goto ErrProc
    
    Const MSGTITLE = "数値のバイナリ表現"
    Dim ret As String
    
    '基本となる数値の入力
    ret = Inputbox( "-2,147,483,648~2,147,483,647の数値を入力してください。", MSGTITLE, "0" )
    
    '入力チェック
    If ret = "" Then
        Msgbox "キャンセルがクリックされたので、処理を中止します。", _
        MB_OK + MB_ICONINFORMATION, MSGTITLE
        Exit Sub
    End If
    If Not ( Isnumeric( ret ) ) Then
        Msgbox "入力された値は数値ではありません。", _
        MB_OK + MB_ICONEXCLAMATION, MSGTITLE
        Exit Sub
    End If
    
    'x進数への変換結果
    Msgbox _
    "10進数表現:" & Chr$(9) & ret & Chr$(10) & _
    " 2進数表現:" & Chr$(9) & Bin$( Clng(ret) ) & Chr$(10) & _
    " 8進数表現:" & Chr$(9) & Oct$( Clng(ret) ) & Chr$(10) & _
    "16進数表現:" & Chr$(9) & Hex$( Clng(ret) ), _
    MB_OK + MB_ICONINFORMATION, MSGTITLE
    Exit Sub
ErrProc:
    Msgbox _
    "エラーコード:" & Chr$(9) & Cstr(Err) & Chr$(10) & _
    "エラーメッセージ:" & Chr$(9) & Error & Chr$(10) & _
    "エラー発生行:" & Chr$(9) & Cstr(Erl), _
    MB_OK + MB_ICONSTOP, MSGTITLE
    Exit Sub
End Sub






【PR】ノーツ/ドミノに関するお問い合わせは下記まで【PR】

Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

0 件のコメント: