• ベストアンサー

テキストボックスの文字を変換(特定の文字へ)

お世話になります。VBまったくの初心者です。 テキストボックスの文字をStrConvでカタカナやひらがなにする方法がありますが、 これを特定の文字に、例えば"あいう"ならば"あ"="あひる"、"い"="いのしし"、 "う"="うさぎ"と対応させて"あひるいのししうさぎ"などの文字列に変換することは 可能でしょうか? "あ"は"あひる"のように一文字ずつならできたのですが、"あいう"のようにつなげると 上手くいきません。 何か方法があるようでしたら、あるいは不可能でしたらその旨教えて下さい。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

>"あ"は"あひる"のように一文字ずつならできたのですが の意味が良く捉えられません。 >、"あいう"のようにつなげると上手くいきません。 この意味も判りません。 ---- 原文は、「ひらがな」の連なりとしていいのですね。 そしてコマンドボタン等クリックされた後処理を始めて言いのですか。1文字入れるごとに即座に変換するのですか。 原文の1文字に複数文字が対応し、1意的に対応するのですね。「あ」はある時は「あひる」ある時は「あなぐま」 にするとかないでしょうね。 1意的対応であれば、対応テーブル(表)を持ち、テーブルを引けば良いだけで、問題にするほどの事もない。 エクセルで言えば、VLOOKUP関数を使うイメージです。恥ずかしく初等的にやると Sub test01() Dim a(10), b(10) a(1) = "あ": b(1) = "あひる" a(2) = "い": b(2) = "いのしし" a(3) = "う": b(3) = "うさぎ" text1 = "あいう" x = "" For i = 1 To Len(text1) For j = 1 To 3 If Mid(text1, i, 1) = a(j) Then x = x & b(j) End If Next j Next i MsgBox x End Sub Text1はText1.textを当てる。 上記をコマンドボタンのイベントプロセヂュアーに変える。 配列a,bの要素は増やす。

choco_monaka
質問者

お礼

ご回答ありがとうございました。 >この意味も判りません。 大変失礼致しました。テキストボックスtxt1に"あ"と入力してコマンドボタン1をクリック すると、テキストボックスtxt2に"あひる"が表示できましたが、txt1に"あいう"と続けて 入力すると、"あひるいのししうさぎ"と表示させたいのに"あひる"と表示されてしまうのです。 文字は必ず一意的に対応します。 お仕事のため締め切りが遅くなってしまうかもしれません。申し訳ありません。 取り急ぎお礼まで。

choco_monaka
質問者

補足

コードを引用させていただき、試してみましたら期待していたように 実行できました。ありがとうございました。 もっとお勉強します。お世話になりました。

その他の回答 (1)

  • -boya-
  • ベストアンサー率35% (176/494)
回答No.1

可能だと思いますが、全部の文字を変換する場合、特定の文字だけ を変換する場合、文字列の長さ、、、 それぞれ条件によって色々と方法があると思いますが、、、 ○Mid関数を使って文字列の左から一文字ずつ拾っていき、 他の文字列変数につなげていく。 →別の文字列変数ChStrを用意しておいて、Mid(TB,i,1)を For i=1 to len(TB)で回していき、Mid(省略)の値が 変換を必要とする文字列だった時は変換してChStr=ChStr&"変換後"、 それ以外はChStr=ChStr&Mid(省略)を行う。 (※TB=テキストボックス) とかですかね?他にもInStr関数を使ったり、Split関数で 特定の文字ごとに切り分けたり、、、 あくまで素人の参考意見です。

choco_monaka
質問者

お礼

ご回答ありがとうございました。 急にお仕事が立て込んでしまい、すぐに検証できないのですが、時間が出来次第、参考書を 片手に試してみたいと思っています。Mid思いつきませんでした。 締め切るのがちょっと遅くなってしまうかもしれませんがご容赦ください。まずはお礼まで。

関連するQ&A