• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBで全角文字をバイト参照したい)

VBで全角文字をバイト参照する方法

このQ&Aのポイント
  • VBでテキストから参照した全角文字を一バイトずつのエリアに設定する方法を教えてください。
  • 取得した値をVB(Windows?)が正しく認識できないため、文字化けしてしまいます。
  • どのようにすれば内容を壊さずに全角文字を取得できるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.2

なるほど・・・ 以前に何度かここの掲示板で似たようなものを載せてるので、それを一行にまとめた関数を書いておきます。 Sub Main()   MsgBox fixStr("12345678901234567890", 4, 10)   MsgBox fixStr("12345ああ6789ああ01ああ234567890", 4, 10)   MsgBox fixStr("うううううう12345678901234567890", 4, 10) End Sub '引数1:文字列 '引数2:開始バイト目 '引数3:バイト長 Private Function fixStr(inStrings As String, inByteStart As Long, inByteLen As Long) As String   fixStr = StrConv(MidB(StrConv(inStrings, vbFromUnicode), inByteStart, inByteLen), vbUnicode) End Function

rukaandkaito
質問者

お礼

どれどれ、早速試してみよう・・・ ・・・お~本当だ! 上手く行きました。 そうですね、Unicode変換して元に戻してあげないと行けないんですね うっかりしてました^^ とても助かりました、有難う御座います!

その他の回答 (2)

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.3

byte配列に変換した方がやりやすい Dim b() As Byte b = StrConv(txtInput, vbFromUnicode)

rukaandkaito
質問者

お礼

それは質問内容にも書いてあるとおりですよね・・・ し、しまったスペルを間違えてる ×:FromUnicode ○:vbFromUnicode 失礼しました^^

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.1

何がしたいのかが良くわかりません。 2バイト文字の情報を1バイトに分割してどうするのですか? 文字情報が壊れるのは当然ですよ。 分解して得た情報 [strBuff1] と [strBuff2] から「西」という文字を作成したいのですか? どのような結果を求めているのかがわかりません。

rukaandkaito
質問者

補足

説明不足でしたか? 結論から言うと半角全角混在のエリアを10バイトずつで切った情報にしたい と言う事なのですが、PCと汎用機とのデータ移動のためのツールを作成しています