
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)
-
16進数を10進数に変換する方法...
Visual Basic(VBA)
-
16進数の変換処理
Visual Basic(VBA)
-
-
4
VB.NETで16進数が正しいかどうかの判定方法を教えて
Visual Basic(VBA)
-
5
VB.NETで16進数+16進数や16進数*nをやる方法
Visual Basic(VBA)
-
6
VBでバイナリデータについて。
Visual Basic(VBA)
-
7
VB6.0でのバイナリデータの扱いについて
Visual Basic(VBA)
-
8
vb.netで画面のコントロールId名を変数で動的に制御し処理する方法
Visual Basic(VBA)
-
9
ASCIIコードを文字に変換したい
C言語・C++・C#
-
10
[VB.net] StringからByte配列への変換
Visual Basic(VBA)
-
11
シリアル通信で0x00を送信したいのですが。
C言語・C++・C#
-
12
CRC16計算について
C言語・C++・C#
-
13
byte配列の内容をstringにコピーしたい
Visual Basic(VBA)
-
14
VBA2005 16進を2桁で表示したい。
Visual Basic(VBA)
-
15
アスキーコードへの変換について VB6(初心者)
Visual Basic(VBA)
-
16
バイト型のデータを16進表記でファイルに書き込むには?
Visual Basic(VBA)
-
17
チェックサムの実装方法について
Visual Basic(VBA)
-
18
文字列の後ろから必要分だけ削除したい。
Visual Basic(VBA)
-
19
VB.NET2003 テキストボックスに半角英数字以外入力させない
Visual Basic(VBA)
-
20
数値を浮動小数点32bitHEXコードに変換
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ダブルクォーテーションのrepla...
-
javaで質問です。 文字列2023/2...
-
Path型をString型へ変換する(Java)
-
C言語32bitから64bitの移行につ...
-
Windows-31Jからutf-8への変換...
-
error C2440: 'static_cast' : ...
-
カタカナの「ソ」以降の文字が...
-
どんな時にIteratorを使うと便...
-
JAVAでSJISのコード変換
-
Visual Basic でのコードをASCI...
-
TEXTAREAからのデータを改行入...
-
byte型のマイナスの扱いについて
-
JAVAでのShift-JISとEUC-JP間の...
-
Visual Studio 6.0でビルド可能...
-
int型のゼロ埋め
-
javaの初歩的な質問です。
-
javascriptで文字列のsjis利用...
-
文字コード変換
-
substring バイト単位でやりたい
-
オブジェクトの中のプロパティ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javaで質問です。 文字列2023/2...
-
ダブルクォーテーションのrepla...
-
javascriptで文字列のsjis利用...
-
javaの初歩的な質問です。
-
Visual Basic でのコードをASCI...
-
JavaのStringクラスに「外字」...
-
Path型をString型へ変換する(Java)
-
エクセルVBAで「〜」が表現でき...
-
int型のゼロ埋め
-
JAVAでのShift-JISとEUC-JP間の...
-
C言語32bitから64bitの移行につ...
-
UTF-8とUnicodeの互換性
-
文字列の比較
-
COBOLで半角カナを全角カナに変換
-
substring バイト単位でやりたい
-
Windows-31Jからutf-8への変換...
-
カタカナをローマジに変換する。
-
[Javascript]エンターキー押下...
-
byte型のマイナスの扱いについて
-
文字化け対策について
おすすめ情報