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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Excel(エクセル) エクセルの質問です 3 2023/07/16 17:33
- Excel(エクセル) ExcelのIF関数 2 2022/04/14 16:11
- その他(Microsoft Office) WordやExcelで英数字のみ半角または全角にしたい 6 2022/08/03 08:18
- Excel(エクセル) Excelの空文字判定について 7 2023/01/06 13:25
- フリーソフト フォルダ、ファイル名の一括変換について 3 2023/03/16 09:23
- C言語・C++・C# S-JIS → JIS コード変換するには 3 2023/02/09 23:55
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
16進コード文字列を文字列に変換
Visual Basic(VBA)
-
アスキーコードへの変換について VB6(初心者)
Visual Basic(VBA)
-
16進をASCIIコードに変換する手法
C言語・C++・C#
-
-
4
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
5
VB.NETで16進数+16進数や16進数*nをやる方法
Visual Basic(VBA)
-
6
シリアル通信で0x00を送信したいのですが。
C言語・C++・C#
-
7
16進数を10進数に変換する方法...
Visual Basic(VBA)
-
8
VisualBasic6.0のFormat関数でmSecを表示したい
Visual Basic(VBA)
-
9
16進数の文字列をアスキーコード表を使用して変換
Access(アクセス)
-
10
VB.NET2005 TextBox 高さ(Height) 変更
Visual Basic(VBA)
-
11
TCP/IP通信の送信データについて
Visual Basic(VBA)
-
12
10進数をアスキーコードに変換
Visual Basic(VBA)
-
13
2進数データのビット演算
Visual Basic(VBA)
-
14
排他的論理和 BCC(水平パリティ《偶数》)の算出
C言語・C++・C#
-
15
PLCとPCの通信
Visual Basic(VBA)
-
16
なぜ通信には16進数文字列が使われるのでしょうか シリアル通信や、xbeeなど、通信には16進数文字
ネットワーク
-
17
配列の重複する値とその個数を取得したい
Visual Basic(VBA)
-
18
文字列から、null値を除去する方法
Visual Basic(VBA)
-
19
VB上で実行中の無限ループの止め方
Visual Basic(VBA)
-
20
モーダルフォームとモードレスフォーム
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ダブルクォーテーションのrepla...
-
javaで質問です。 文字列2023/2...
-
Path型をString型へ変換する(Java)
-
カタカナの「ソ」以降の文字が...
-
文字列の比較
-
カタカナをローマジに変換する。
-
javaで「全角が含まれているか...
-
error C2440: 'static_cast' : ...
-
javaで入力したの半角カタカナ...
-
String <=> byte配列 の際のエ...
-
javascriptで文字列のsjis利用...
-
byte配列をImageに変換する
-
int型のゼロ埋め
-
Arduino(C言語) String "1101" ...
-
ASCII コード表の文字から10進に
-
エクセルVBAで「〜」が表現でき...
-
【JAVA】CharをByteに変換したい。
-
JAVA 文字コード変換
-
C言語32bitから64bitの移行につ...
-
カタカナ変換
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javaで質問です。 文字列2023/2...
-
ダブルクォーテーションのrepla...
-
Path型をString型へ変換する(Java)
-
カタカナをローマジに変換する。
-
javascriptで文字列のsjis利用...
-
int型のゼロ埋め
-
Visual Basic でのコードをASCI...
-
文字列の比較
-
COBOLで半角カナを全角カナに変換
-
JavaのStringクラスに「外字」...
-
C言語32bitから64bitの移行につ...
-
byte[] を long,float とかに...
-
UTF-8とUnicodeの互換性
-
[Javascript]エンターキー押下...
-
エクセルVBAで「〜」が表現でき...
-
Windows-31Jからutf-8への変換...
-
substring バイト単位でやりたい
-
IBM漢字コード⇒SJIS変換方法
-
byte配列をImageに変換する
-
Arduino(C言語) String "1101" ...
おすすめ情報