| 
    
     |  | ▼HyperVTEC さん: おはようございます。
 
 >ExcelVBAで、textboxに入力した文字列をJIS8単位コードに変換するプログラムを作りたいのですが・・・
 シフトJISではなく、JISコードでいいんですね?
 (もっとも半角の場合は、どっちでも一緒でしたっけ?)
 
 以下に示すコードは、Userform1にTextbox1とTextbox2及び、Commandbutoon1を
 貼り付けたときの例題です。
 Textbox1に入力された文字列をCommandbutoon1のクリックにより、
 Textbox2にJISコードを2進数で表示します。
 
 Userform1のモジュールに
 
 '=============================================================
 Private Sub CommandButton1_Click()
 Dim bitnum
 TextBox2.Text = ""
 With TextBox1
 i = 1
 Do While i <= Len(.Text)
 If LenB(StrConv(Mid(.Text, i, 1), vbFromUnicode)) = 1 Then
 bitnum = 8
 Else
 bitnum = 16
 End If
 'TextBox2.Text = TextBox2.Text & sp_dec2bin(Asc(Mid(.Text, i, 1)), bitnum)
 '    ↑シフトJISの場合は、上のコード
 TextBox2.Text = TextBox2.Text & sp_dec2bin(Evaluate("code(""" & Mid(.Text, i, 1) & """)"), bitnum)
 i = i + 1
 Loop
 End With
 End Sub
 '===================================================================
 Function sp_dec2bin(dnum, Optional scl = 8) As Variant
 '機能  指定された数値を2進数文字列に変換する
 'input dnum 変換する数値
 '    scl 変換桁数
 'output sp_dec2bin 2進数文字列
 Dim wk As Long
 wk = dnum
 sp_dec2bin = ""
 For idx = scl - 1 To 0 Step -1
 ans = wk And (2 ^ idx)
 sp_dec2bin = sp_dec2bin & IIf(ans > 0, 1, 0)
 Next idx
 End Function
 
 全角文字も2バイトで変換するようにしました。
 確認してみて下さい。
 
 
 |  |