
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も見ています
-
16進コード文字列を文字列に変換
Visual Basic(VBA)
-
16進数を10進数に変換する方法...
Visual Basic(VBA)
-
文字列の後ろから必要分だけ削除したい。
Visual Basic(VBA)
-
-
4
VBでバイナリデータについて。
Visual Basic(VBA)
-
5
バイト型のデータを16進表記でファイルに書き込むには?
Visual Basic(VBA)
-
6
vb.netで画面のコントロールId名を変数で動的に制御し処理する方法
Visual Basic(VBA)
-
7
DoEvents関数って何?
Visual Basic(VBA)
-
8
VB6.0でのバイナリデータの扱いについて
Visual Basic(VBA)
-
9
VBA2005 16進を2桁で表示したい。
Visual Basic(VBA)
-
10
[VB.net] StringからByte配列への変換
Visual Basic(VBA)
-
11
VB.NETで16進数が正しいかどうかの判定方法を教えて
Visual Basic(VBA)
-
12
VB.NETで16進数+16進数や16進数*nをやる方法
Visual Basic(VBA)
-
13
ASCIIコードを文字に変換したい
C言語・C++・C#
-
14
シリアル通信で0x00を送信したいのですが。
C言語・C++・C#
-
15
VB.NET2003 テキストボックスに半角英数字以外入力させない
Visual Basic(VBA)
-
16
チェックサムの実装方法について
Visual Basic(VBA)
-
17
VB2010で、シリアル通信の方法を教えてください。
Visual Basic(VBA)
-
18
CRC16計算について
C言語・C++・C#
-
19
Ctrl + Cなど複数の入力キーの感知
Visual Basic(VBA)
-
20
VBAで符号無し整数
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javascriptで文字列のsjis利用...
-
int型のゼロ埋め
-
javaで質問です。 文字列2023/2...
-
javaで入力したの半角カタカナ...
-
文字コード変換
-
Path型をString型へ変換する(Java)
-
複数の画像からランダム抽出し...
-
COBOLで半角カナを全角カナに変換
-
特殊文字「\\」の変換の方法
-
javaの文字コード変換について
-
文字化け対策について
-
C言語のポインターに関する警告
-
System.err. printlnとSystem.o...
-
JSPやサーブレットでSystem.out...
-
JavaScriptの変数をjavaのメソ...
-
Formの値が変更されたかどうか...
-
javaです
-
オブジェクトの中のプロパティ...
-
VBSエラー"オブジェクト型の変...
-
C# DataGridView列カスタマイズ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javaで質問です。 文字列2023/2...
-
Path型をString型へ変換する(Java)
-
ダブルクォーテーションのrepla...
-
C言語32bitから64bitの移行につ...
-
javascriptで文字列のsjis利用...
-
Visual Basic でのコードをASCI...
-
int型のゼロ埋め
-
substring バイト単位でやりたい
-
文字列の比較
-
COBOLで半角カナを全角カナに変換
-
エクセルVBAで「〜」が表現でき...
-
byte[] を long,float とかに...
-
下記問題の答えが"D"になる意味...
-
全角英数字とハイフンを半角に...
-
javaの初歩的な質問です。
-
Windows-31Jからutf-8への変換...
-
JavaのStringクラスに「外字」...
-
CStringをLPCTSTRへ変換
-
TEXTAREAからのデータを改行入...
-
Arduino(C言語) String "1101" ...
おすすめ情報