• ベストアンサー

文字列の検索について

RichTextBoxの文字列の中の太字にした文字列や、斜体にした文字列などを検索したいのですが、InStrでできますか? もしくは他にやり方があったら教えてください。お願いします。ちなみにVB6.0です。

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

  • ベストアンサー
回答No.2

こんな感じで地道に探せばいけますねぇ。 このコードは太字だけ探してます。 Exit Forする時の条件を斜体の場合とか増やせば良いと思います。 ----------------------------------------------- Dim txtlen As Integer Dim i As Integer txtlen = Len(RichTextBox1.Text) For i = 0 To txtlen - 1 RichTextBox1.SelStart = i RichTextBox1.SelLength = 1 If RichTextBox1.SelBold = True Then Exit For End If Next If i > txtlen Then MsgBox "太字はない" Else MsgBox i + 1 & "番目の文字が太字" End If

cross22
質問者

お礼

教えていただいたコードを参考にして問題を解決することができました。初心者なもので、とても助かりました。本当にありがとうございました。

その他の回答 (1)

回答No.1

RichTextBoxはあまり使った事が無いので、やり方はわからないのですが・・。 InStrではできません。 一文字ずつ見ればやってやれない事はないのではないでしょうか。

cross22
質問者

補足

ご回答頂きましてありがとうございます。大変、参考になりました。 もしよろしければ、"1文字ずつ見る"やり方をご教授頂きたいのですが。暇な時で構いませんので宜しくお願い致します。

関連するQ&A

  • 文字列検索で

    よろしくお願いします。 文字列検索instr関数で、特定文字(スペース)でない文字を検索したいのですが、どのようにしたらいいですか? instr関数では、できないのでしょうか? たとえば、 文字列" osietegoo "  →  3 文字列"    situmon"  →  7 スペースでない文字が出現する位置を知りたいです。 instr(文字列,"o")ではなく、" "ではない、、、としたいのですが、できますか?

  • 文字列検索で・・・

    Instr関数で文字列の存在チェックを行っています。 この場合、変数indexに1が入った場合 Instr("aaa1_a.sql","index") <----- この場合問題はないのですが、 Instr("aaa12_a.sql","index") <-----となる場合も値がとれてしまうので どうしたものかと困っています。 うまく検索させる方法はないでしょうか? ちなみに検索する文字列には aaa数字.sql aaa数字_a.sql aaa数字_b.sql というパターンがあります。 どなたかよきアドバイスをいただけませんでしょうか? よろしくお願い致します。

  • Word2003の検索・置換について

    検索・置換のダイアログボックスを使い、 書式がフォントやスタイル(太字・斜体) が設定されている文字を、 太字に置換えようと思い、 検索する文字列に設定し、 置換後の文字列をクリックし、置換ようとしたところ、 なぜか、検索する文字列の書式に設定がなってしまいました 何回か試していると、ちゃんと設定がなるときもあるのですが、 ならないときもあります。 どうすれば確実に設定を一回でできるでしょうか?

  • ワードの置換機能で、書式を置換しましたら、一点わからないことがあります

    ワードの置換機能で、書式を置換しましたら、一点わからないことがあります。 文書全体の、「太字」を全て「斜体」に変えようとして、 置換を使って、検索する文字列の書式を「太字」、置換後の文字列の書式は「斜体」を 設定したところまでは良いのですが、 結果が、全て太字の文字が斜体に変わっているのです。 置換を使って、文字色を変えると、前の色が残ることなく変わるのですが、 太字の場合は、なぜ残ってしまうのでしょうか。 他のやり方でかえることもできるのはわかりますが、 置換機能を使って変えたいので、 その理由がわかる方、 どうか教えてください。

  • メモ帳のような文字列検索

     リッチテキストを使ってVBの勉強用にMDIテキストエディタを作っています。  今、文字列の検索と置換部分を作っているのですが、このときメモ帳の検索で使うようなものはどうやって作ればいいんでしょうか。  つまり、検索用のフォームを出したまま、テキスト部分を選択状態(色を反転させた状態)にさせたり、下から上への検索をしたいのですが出来ません。  一応、リッチテキストのFind、もしくはInStr関数を使って、上から下への簡単なものは出来ているのですが、下から上には検索できませんし、検索した後フォーカスをリッチテキストにしなければ、検索した文字列が選択状態にさせられません。  下から検索させるにはInStrRev関数があることは分かったのですが、これだとFindでは出来る『完全一致する単語のみ検索』などが使えなさそうです。  まぁ、これは特にどうでもいいのですが(バイナリモードにすれば大文字小文字の区別は出来ますし)、検索用フォームを手前にさせることはどうやっても出来ません。  色々なサイトにある、『常に手前にフォームを表示』というものも見つけたのですが、これをやっても上手くいきませんし、一旦リッチテキストにフォーカスを移してから再び検索用フォームにフォーカスを移しても選択状態は消えてしまいます。  どうにかして、Findと同等に下から上へと検索させたり、検索用のフォームを手前にさせたまま続けて検索させるということをさせたいのですが、その方法があれば教えてください。 --------- 開発環境 VB6.0SP5 WinME

  • 文字列の比較について

    お世話になります。 次のような文字列の比較を考えているのですが 123456789 123456ABC89 この場合、ABCを7に置き換えると文字列が一致する ので、「7」と「ABC」を取り出したいのですが、 どのように調べたらよいでしょうか? VBはいろいろと関数も用意されているので、現在は instrとinstrrevを使って相違のある場所を調べようと していますがなかなか思うようにいきません。 お願いします。

  • VB.NETの初心者です。 RichTextBoxの文字列の行間を狭く

    VB.NETの初心者です。 RichTextBoxの文字列の行間を狭く変更したいのですがやり方が判りません。何方かお教え頂きたくよろしくお願い申し上げます。

  • テキストの文字列検索で、検索した文字の色を変える方法は?

    教えてください。 テキストボックスの内容を読み込んで、指定した文字列を検索するというコードを書いているのですが、 jl = InStr(i, Text2.Text) If (jl > 0) Then のように、テキストを一行ずつOpen~で読み込んで、Instrで指定した文字があるかどうかを判定しています。 これでは、検索した文字があったかどうか、という判定はできますが、検索あるいは置き換えした文字がどれであるか、またトータル何件あったかが分かりません。 検索ならば、一つずつ対象文字を発見したときにその文字の場所で止めて、またその文字の色を変える方法が分かりません。 また、置き換えならば、全文対象に一気に置き換えて、その置き換えた文字の色を変えて分かりやすくしたいのですが、その方法が分かりません。 検索あるいは置き換えの方法はマニュアルにあるのですが、その場所で止めて色を変えるというコードがなかなか載っていません。 どなたか教えてくださいませ。 お願いいたします。

  • 文字列検索の参照文字列の指定について

    Excelでセルに任意の文字列をペーストします。そのセルは別のブックにリンクしているのでペーストする度にリンク先のセルでは文字列が更新されます。リンク先のブックにはワークシートが10あっていづれかのシートのA列にその文字列がある事になっています。更新された文字列を検索する作業を繰り返すのでマクロで組み込もうと思ったのですがFIND関数にしても、VBでCell.Find(What:=....と書くにも参照する文字列を直接指定してやらないと動きません。参照する文字列が相対的に変化するので「特定のセルの中に入力された文字列」を参照してブック内を検索したいということなのですが、実現するにはどうしたらようでしょうか?

  • VBE上の文字検索で「パターン文字列が不正です」

     今晩は、質問させていただきます。どうぞよろしくお願いいたします。  環境:Win7 Home SP1      Excel2007 でございます。  VBエディタ上のプログラムの文字列をCtrl+Fから検索いたしますと、 何故か「パターン文字列が不正です。」のメッセージボックスが出てまいります。 挙動といたしましては、 ・検索しております文字列は、明らかにコード上にあるものでございます。 ・テキストエディタ(秀丸)上に全コードをコピーしてみると、その上での検索は普通にできます。  (→おそらくVBエディタ上のみでの不具合。) ・検索する文字によっては検索できたりもしますが、それらも何故か  検索結果(背景が青くなる文字列)が後ろへずれております。(全角1文字もしくは2文字分)  →添付図のようになります。 ・全角漢字も半角英字も検索ができなかったり、検索結果がズレたり致します。  「パターン文字列が不正です」で検索しておりますと、「VBAによる検索」の際に、LKEを使うとこのようなコメントが出るようでございますが、今回のような「VBエディタ上のコード検索」は見つけられませんでした。。。  皆様のPC上でこのような挙動をしたことはございますでしょうか??  もしお詳しい方がいらっしゃいましたら,どうぞよろしくお願いいたします。

専門家に質問してみよう