• ベストアンサー

VB2005 Replace 文字の置換え

逆引き大全500の「183 文字列の中の指定した文字を別の文字に置き換える」の項なのですが・・・ ご存知の方がいらっしゃいましたらよろしくお願い致します。 TextBox1 に「今日は本当に天気が良くて」と入力し、 ボタンを押すと「本当」という漢字を「ホント」というカタカナに 置き換えて Label1 に表示するコードなのですが Dim Text1 As String = TextBox1.Text Label1.Text = Text1.Replace("本当","ホント") という記述になっています。 これで実際に動いたのですが、この記述だと、一文字だけしか置換えできません。 ですが、「本当」だけではなく、「天気」という漢字も「テンキ」というカタカナに置き換えたいのです。 テキストボックスに表示された 「今日は本当に天気が良くて」を一度に 「今日はホントにテンキが良くて」と置き換える方法は ありますでしょうか?よろしくお願い致します。

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

  • ベストアンサー
  • unamana19
  • ベストアンサー率62% (56/89)
回答No.3

複数置き換えするのなら、置き換え対文字列を配列などに格納 して、Replaceを複数回行えばいいでしょう。 Text1.Text = Text1.Text.Replace("本当", "ホント").Replace("天気", "テンキ") これでも、目的は達成できますが・・・

torajiro33
質問者

お礼

ご回答ありがとうございます。 続けてReplaceですね・・・ 思いつきませんでした。 ありがとうございます!

その他の回答 (2)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

『本当』『天気』を別々に置換しないとできませんよ Dim Text1 as String = TextBox1.Text ' 本当を変換 Text1 = Text1.Replace("本当","ホント") ' 天気を変換 Label1.Text = Text1.Replace("天気", "テンキ") といった具合です ...

torajiro33
質問者

お礼

ご丁寧に教えて頂いて感謝したいします。 また、よろしくお願い致します。

  • unamana19
  • ベストアンサー率62% (56/89)
回答No.1

Replaceを複数回行えばいいのでは?

torajiro33
質問者

お礼

こんにちわ。回答ありがとうございます。 複数回行ったのですが、片方しか変わらないんです・・・

関連するQ&A

  • vb.net 文字コードから漢字へ変換

    vb .net で文字コードから漢字へ変換する方法を教えて下さい。 例えば 「花」という漢字のコードが"82b1" これを、表示させるために me.TextBox1.Text = 関数的なモノ("82b1") というような事はできますか? さらに、 「花」という漢字の異体字で草冠が++になっている文字が "82b1"+"e0103" これを、表示させるために me.TextBox1.Text = 関数的なモノ("82b1","e0103") というような事はできますか? ※IVS対応フォントと環境は既にあるものとします。

  • VB2008 正規表現でHTMLタグを"大文字→小文字"に置換したい

    Visual Basic 2008使用のプログラミング初心者です。 HTMLタグを大文字から小文字に置換するアプリケーションを作成中なのですが記述が間違っているのか、文字列を置換することが出来ません。 以下ソースです。     TextBox1.Text = Regex.Replace(TextBox1.Text, _       "<([\/]?)([\w]+)", _       "$1\L$2") http://dobon.net/vb/dotnet/string/regexreplace.html http://www37.atwiki.jp/emeditor/pages/50.html#id_6996d4b6 この二つのサイトを参考にやってみたのですが 置換を実行すると <BR> → \LBR> こうなってしまいます。 小文字に置換されるようにするにはどこを直せばよいのでしょうか。 教えてください、よろしくお願いします。

  • VB2010でラベルに文字を結合したい

    VB2010でTextboxで辺の長さの数値を入力し、その数値分「*」を表示して正方形を作るアルゴリズムを考えています。どんな感じかは添付画像を参照していただければと思います。 Dim saizu As Integer Dim i, j As Integer saizu = TextBox1.Text For i = 1 To saizu For j = 1 To saizu Label1.Text = "*" Next Label1.Text = vbLf Next 考え方はこんな感じだと思うのですが、このままだとLabel1の中身が毎回更新されてしまい、結局何も表示されないという結果になることに気づきました。 確かVBにはLabelの手前に何か連結演算子のようなものをつけることで、更新されるのではなく追加していくというふうにできたと思うのです(記憶違いならこの質問自体が意味のないことになってしまうのですが…)。検索エンジンでいろいろと検索しては見たのですが、検索ワードがどれも曖昧な所為か私が必要としている答えにたどり着くことができませんでした。 曖昧な質問で申し訳ないのですが、Labelなどで文字を更新するのではなく結合する連結演算子のようなものを回答していただけたらありがたいです。もし、そんなものはないよ、という場合も教えていただければと思います。よろしくおねがいします。

  • VBでタイピングゲーム作成

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged If TextBox1.Text = Label1.Text Then Label1.Text = "haradamunetoki" Label2.Text = "原田宗時" TextBox1.Text = "" Else Label3.Text = "違います" Private TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged End If If TextBox1.Text = Label1.Text Then Label1.Text = "katakurakojuro" Label2.Text = "片倉小十郎" TextBox1.Text = "" Else Label3.Text = "違います" End If ――最初ラベル1にはdatemasamune、ラベル2には伊達政宗と表示してあって、主に判断の基準となるのはラベル1ですが、 最初のEnd If文までの間で繰り返しのような感じになってしまっていて 次の片倉小十郎に行くことができません。 先生に話しを聞いたところ、文法をよく理解していないとのこと…。 次のif文にいくにはどうしたらいいのでしょうか?

  • Visual Sutudio 2003で、文字を反転させるプログラムが正しく動きません。

    Visual Sutudio 2003で、困っています。 TextBox1に、文字を入力してButton1をクリックすると、入力された文字が反転されてLabel3に、表示されるプログラムを作ってみたのですが、上手く動きません。 例えば、「TextBox1」と入力してボタンをクリックすると、「1xoBtxeT」と表示させたいのですが、「1ote」と一文字置きに表示されてしまいます。 「Button1をクリックした時のプログラム」 Dim moji, kekka As String Dim i As Integer Label3.Text = "" moji = TextBox1.Text Label3.Text = moji.Substring(moji.Length - 1, 1) For i = 2 To moji.Length  Label3.Text &= moji.Substring(moji.Length - i, 1)  i = i + 1 Next End Sub 正しく表示させるには、どうすればいいのでしょうか?分かる方、宜しくお願いします。

  • VB.NET ToolTipの表示条件について

    VB2010、Winアプリ こんにちわ。 フォーム上に存在するTextBoxやLabelコントロールに ToolTipを表示させています。 ToolTipを表示させるための条件とかって設定出来ないんでしょうか? その条件というのは 「TextBoxやLabelコントロールの幅以上のテキストが入力されている」 場合のみToolTipを表示させたいというものです。 思いついた方法としては コントロールの幅と入力文字数を係数として格納しておき MouseのHoverとかのイベント時に文字数チェックを行い その判定により表示するかしないかを決定する、 というものぐらいしか自分には思いつきませんでした。 もっとスマートな方法があれば教えていただければと思います。 よろしくお願いします。。。 (TextBoxのWordWrapプロパティで折り返しを判断しているものを 見れれば楽にできるのかなぁなんて思ったりもしましたが どう判断しているかわからなかったもので。。。)

  • 複数コントロールテキストの同一セルへの入力

    はじめまして。 エクセルVBAについて質問させて頂きます。 ユーザーフォームにラベル・テキストボックスそれぞれ1~6があって ラベルのキャプションとテキストボックスのテキストをセル同一セルに 入力したくて With UserForm1 Range("A1") = .Label1.Caption & .TextBox1.Text & .Label2.Caption & .TextBox2.Text _ & .Label3.Caption & .TextBox3.Text & .Label4.Caption & .TextBox4.Text _ & .Label5.Caption & .TextBox5.Text & .Label6.Caption & .TextBox6.Text End With と、このように記述したのでが、これをもっと簡潔に書く方法はございませんでしょうか? ご教授よろしくお願いします。

  • VBA 年月日から日曜日に当たる日の文字を赤くする

    よろしくお願いします。 TextBox2に年号(西暦) ComboBox1に月 TextBox7に日 を、入力します。 入力方法は、Label1からLabel31を押下して日付けを入れます。 したときに各Labelの内、日曜日に該当するLabelならCaptionの文字を赤くする。 Private Sub Label1_Click() TextBox7.Value = 1 ’もし1日が日曜日ならLabel1のCaptionの文字を赤くする End Sub Private Sub Label2_Click() TextBox7.Value = 2 End Sub Private Sub Label3_Click() TextBox7.Value = 3 End Sub ~ Private Sub Label29_Click() TextBox7.Value = 29 End Sub Private Sub Label30_Click() TextBox7.Value = 30 End Sub Private Sub Label31_Click() TextBox7.Value = 31 End Sub 追 ComboBoxで日付けをダウンリスト表示したかったのですが、1列表示で 長くなってしまいます。 ※2列に表示する方法を知らないもので、Labelで2列表示にしました。 もし、ダウンリストを2列表示できるのであれば、ぜひともご教示をお願いします。 無識なものですみません。 何卒宜しくお願い致します。

  • Replace関数

    更新クエリにて、品名置換のReplace関数使用で、サブフォームからボタン操作で更新クエリを実行したら以下の事が出来ます。 Replace([品名],"りんご","りんご青森") 品名 りんご を りんご青森 に置換 Replace([品名],"青森","") 品名 の 文字列から 青森 を無くす置換 これをベースに、サブフォームに、テキストボックス1 テキストボックス2 を配置して テキストボックス1 → りんご を テキストボックス2 → りんご青森 に置換 サブフォームを表示しているフォーム1から参照 Replace([品名],[Forms]![フォーム1]![テキスト1],[Forms]![フォーム1]![テキスト2]) サブフォームから参照 Replace([品名],[Forms]![フォーム1]![履歴].[Form]![テキスト1],[Forms]![フォーム1]![履歴].[Form]![テキスト2]) 上記のフォームに配置したテキストボックスから、任意の置換情報を入力して置換する流れを作っているのですが、いずれのフォームからもテキストボックスの内容を認識出来ない様です。 ご教授頂ければ幸いです。 以上、宜しくお願い致します。

  • vb6のTEXTBOX

    教えて下さい。 vb6の環境下でTextbox、もしくはLabelのでそれに表示させる文字位置を枠内のセンターに持っていきたいのですが、その方法を教えて下さい。 横方向はプロパティ-でセンターに持っていけるのですが。縦方向がわかりません。教えて下さい。