
string(9)のエリア"Aa1アあa "の文字を1文字ずつASCII変換して、16進変換し、string(18)のエリアに格納します
すると"416131B182A08281202020"と変換されます
(一文字ずつ Hex(Asc(Buf))を使用しました)
逆に、"416131B182A08281202020"を"Aa1アあa "に戻したいのですが、
どのような関数を使えばよいのかわかりません。
困っています。教えてください。よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
VB既存の関数ではできないと思うので、自分で関数を作るなりしてください。
ヒントです。
ASC関数により変換された2バイト文字(シフトJIS)の1バイト目は81~9FおよびE0~FC(すべて16進)になります。
16進数から10進数に戻すには、頭に"&H"をつけます。(&H82A0 = 「あ」のシフトJISコード)
文字を数字に変換するのはVal関数、数字(文字コード)から文字に変換するのはChr関数です。
ヒントのおかげで無事解決いたしました。
サンプルの2文字からうっかり、2バイト文字の頭には82がつくと限定してしまうところでした。
ありがとうございます!!
No.3
- 回答日時:
Dim text As String
Dim outText As String
Dim i, wk
text = "416131834182A0828120" '質問の中の文字はたぶん間違いだと思います
For i = 1 To Len(text) Step 2
wk = Val("&H" & Mid(text, i, 2))
If wk > 127 Then
wk = Val("&H" & Mid(text, i, 4))
i = i + 2
End If
outText = outText & Chr(wk)
Next
Debug.Print outText
回答ありがとうございます。
無事解決いたしました。
ちなみに「ア」は半角だったんです。
質問の投稿が半角が全角に変換されることを知りませんでした。
投稿したところ、半角は全角に・・って書かれていたのですが、質問の変更、追記の仕方がわからず、そのままになってしまいました。
変換後に2バイト文字だったかどうか確認するのもありなんだと。。
ところが前述していますとおり半角「ア」でしたので、B1を変換すると177となり、正しく変換できませんでした。
先の方のヒントを用い、自分でコーディングしましたが
しばらくVBから離れていたので(言い訳ですね(^^;)よりスマートですので
コーディングは参考にさせていただきます。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
みんなに挑戦してほしい「色彩検定」
これまで多くの方々が受検したが「色彩検定」。その目的や活用法は人それぞれ。今回は、色彩検定に影響を受けた男女3名にインタビュー。
-
16進コード文字列を文字列に変換
Visual Basic(VBA)
-
10進数をアスキーコードに変換
Visual Basic(VBA)
-
アスキーコードへの変換について VB6(初心者)
Visual Basic(VBA)
-
4
16進数の変換処理
Visual Basic(VBA)
-
5
16進数の文字列をアスキーコード表を使用して変換
Access(アクセス)
-
6
VBでバイナリデータについて。
Visual Basic(VBA)
-
7
16進をASCIIコードに変換する手法
C言語・C++・C#
-
8
VB.NETで16進数+16進数や16進数*nをやる方法
Visual Basic(VBA)
-
9
PLCとPCの通信
Visual Basic(VBA)
-
10
VBA バイナリ―から文字列にする方法
Visual Basic(VBA)
-
11
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
12
[VB.net] Excelへの画像貼り付け処理についての疑問
Visual Basic(VBA)
-
13
VBでUSB制御プログラム作成する方法
Visual Basic(VBA)
-
14
VBA2005 16進を2桁で表示したい。
Visual Basic(VBA)
-
15
シリアル通信におけるバイトデータの送受信(VB.NET)
Visual Basic(VBA)
-
16
VBでグローバル変数を宣言するには
Visual Basic(VBA)
-
17
VB.NETでフォーム上にExcelのような表を表示する方法
Visual Basic(VBA)
-
18
エクセル VBA でのCOMポート認識
その他(プログラミング・Web制作)
-
19
VB.netで、シリアル通信のタイムアウト処理について
Visual Basic(VBA)
-
20
VB2008EE でS-JISでエンコードできない
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
全角英数字とハイフンを半角に...
-
5
javaの初歩的な質問です。
-
6
C言語32bitから64bitの移行につ...
-
7
JavaのStringクラスに「外字」...
-
8
Windows-31Jからutf-8への変換...
-
9
IBM漢字コード⇒SJIS変換方法
-
10
文字化け対策について
-
11
画像のテキストデータ化・暗号...
-
12
文字化けします。
-
13
javascriptで文字列のsjis利用...
-
14
「C#」文字コードの取得&文字変換
-
15
jspでString型からlong型への変換
-
16
文字コード変換
-
17
substring バイト単位でやりたい
-
18
スマホでテキストボックスの随...
-
19
Visual Basic でのコードをASCI...
-
20
カタカナ変換
おすすめ情報
公式facebook
公式twitter