OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

VBで全角文字をバイト参照したい

  • 困ってます
  • 質問No.172521
  • 閲覧数400
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 69% (36/52)

こんばんは
またまた壁にぶちあたっています!

VBでテキストから参照した全角文字をMidB関数等で部分参照し、
それぞれ一バイトずつのエリアに設定したいのですが、取得した値を
VB(Windows?)が認識出来ない為か「?」となります。
内容を壊さずに取得する方法があれば教えて頂きたいのですがm(__)m

サンプル
Dim strBuff1 As String * 1
Dim strBuff2 As String * 1

txtInput = "西"

strBuff1 = LeftB(StrConv(txtInput,FromUnicode),1)
strBuff2 = RightB(StrConv(txtInput,FromUnicode),1)

以上のコーディングで「strBuff1」、「strBuff2」にそれぞれ「?」が
設定されます
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.2
レベル12

ベストアンサー率 65% (276/422)

なるほど・・・
以前に何度かここの掲示板で似たようなものを載せてるので、それを一行にまとめた関数を書いておきます。

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

お礼率 69% (36/52)

どれどれ、早速試してみよう・・・
・・・お~本当だ!

上手く行きました。
そうですね、Unicode変換して元に戻してあげないと行けないんですね
うっかりしてました^^

とても助かりました、有難う御座います!
投稿日時 - 2001-11-21 20:06:06
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル12

ベストアンサー率 65% (276/422)

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

分解して得た情報 [strBuff1] と [strBuff2] から「西」という文字を作成したいのですか?

どのような結果を求めているのかがわかりません。
補足コメント
rukaandkaito

お礼率 69% (36/52)

説明不足でしたか?

結論から言うと半角全角混在のエリアを10バイトずつで切った情報にしたい
と言う事なのですが、PCと汎用機とのデータ移動のためのツールを作成しています
投稿日時 - 2001-11-21 18:53:12
  • 回答No.3
レベル13

ベストアンサー率 59% (729/1235)

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

Dim b() As Byte
b = StrConv(txtInput, vbFromUnicode)
お礼コメント
rukaandkaito

お礼率 69% (36/52)

それは質問内容にも書いてあるとおりですよね・・・
し、しまったスペルを間違えてる
×:FromUnicode
○:vbFromUnicode
失礼しました^^
投稿日時 - 2001-11-21 20:07:59
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ