|
▼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バイトで変換するようにしました。
確認してみて下さい。
|
|