
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)
-
ASCIIコードを文字に変換したい
C言語・C++・C#
-
-
4
VBA2005 16進を2桁で表示したい。
Visual Basic(VBA)
-
5
文字列の後ろから必要分だけ削除したい。
Visual Basic(VBA)
-
6
VBでバイナリデータについて。
Visual Basic(VBA)
-
7
シリアル通信で0x00を送信したいのですが。
C言語・C++・C#
-
8
vb.netで画面のコントロールId名を変数で動的に制御し処理する方法
Visual Basic(VBA)
-
9
チェックサムの実装方法について
Visual Basic(VBA)
-
10
DoEvents関数って何?
Visual Basic(VBA)
-
11
[VB.net] StringからByte配列への変換
Visual Basic(VBA)
-
12
VB.NET2003 テキストボックスに半角英数字以外入力させない
Visual Basic(VBA)
-
13
CRC16計算について
C言語・C++・C#
-
14
VBでbyte配列型のインスタンスを生成する方法を教えてください
Visual Basic(VBA)
-
15
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
16
VB2010で、シリアル通信の方法を教えてください。
Visual Basic(VBA)
-
17
配列の重複する値とその個数を取得したい
Visual Basic(VBA)
-
18
Ctrl + Cなど複数の入力キーの感知
Visual Basic(VBA)
-
19
VBAで符号無し整数
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javaで質問です。 文字列2023/2...
-
PerlプログラムをJavaに変換す...
-
javascriptで文字列のsjis利用...
-
DOMのXML宣言値の変更
-
JavaのStringクラスに「外字」...
-
Visual Basic でのコードをASCI...
-
substring バイト単位でやりたい
-
javaでのOracleのデータ登録の...
-
数字を読みに変換する方法について
-
javaの日本語並び替えについて...
-
Path型をString型へ変換する(Java)
-
C言語のポインターに関する警告
-
IF関数でEmpty値を設定する方法。
-
ORA-01858: 数値を指定する箇所...
-
ループ処理の際、最後だけ","を...
-
System.err. printlnとSystem.o...
-
System.exit()の値を取得したい
-
動的配列が存在(要素が有る)か...
-
カタカナの小文字を大文字に変...
-
1~100までの数字を表示したい
マンスリーランキングこのカテゴリの人気マンスリー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" ...
おすすめ情報