教えてください。
テキストボックスの内容を読み込んで、指定した文字列を検索するというコードを書いているのですが、
jl = InStr(i, Text2.Text)
If (jl > 0) Then
のように、テキストを一行ずつOpen~で読み込んで、Instrで指定した文字があるかどうかを判定しています。
これでは、検索した文字があったかどうか、という判定はできますが、検索あるいは置き換えした文字がどれであるか、またトータル何件あったかが分かりません。
検索ならば、一つずつ対象文字を発見したときにその文字の場所で止めて、またその文字の色を変える方法が分かりません。
また、置き換えならば、全文対象に一気に置き換えて、その置き換えた文字の色を変えて分かりやすくしたいのですが、その方法が分かりません。
検索あるいは置き換えの方法はマニュアルにあるのですが、その場所で止めて色を変えるというコードがなかなか載っていません。
どなたか教えてくださいませ。
お願いいたします。
No.1ベストアンサー
- 回答日時:
テキストボックスの一部分の文字の色を変える、ということは不可能です。
(テキストボックスだけで実現するのは)諦めてください。
Text1.SelStart = 15
Text1.SelLength = 4
Text1.SetFocus
ただし、こんな風に、任意の部分だけを選択状態にするという手があります。
(上の例では、15文字目から4文字分が選択されます)
テキストボックスなら、これが理想的だと思います。
どうしても一部分だけの色を変更したい場合は、
リッチエディットで無理やり実現させるか、
自前で、独自のテキストボックスのようなものを作成するしかないと
思います。
後者の方法が一般的ですが、VBでは現実的ではない方法です。
また、前者は大変面倒です。
早速のご回答ありがとうございます。
Text1.SelStart = 15
Text1.SelLength = 4
Text1.SetFocus
この例では15文字目から4文字分が選択される、とありますが、
その何文字目から何文字までが検索の対象文字列であるのかという
ことは検索する文字列によって変わってくると思うのですが、
どのように指定してやればいいのでしょうか?
初心者ですみません・・・。
No.2
- 回答日時:
>Text1.SelStart = 15
>Text1.SelLength = 4
>Text1.SetFocus
>
>この例では15文字目から4文字分が選択される、とありますが、
>その何文字目から何文字までが検索の対象文字列であるのかという
>ことは検索する文字列によって変わってくると思うのですが、
>どのように指定してやればいいのでしょうか?
InStr関数を使われてはどうでしょう?
文字列を検索して最初に見つかった位置を返しますので、
その位置と文字列長さえあれば、選択状態にするのも簡単ですよね。
使用方法はMSDNに書かれています。
ご回答ありがとうございます。うっかり見落としていました。Instrは位置を返すんですね。ということは、その位置から「検索対象文字列」の長さを調べて、その文字数分を選択すればいいんですね。
バッチリとはいえませんが、試行錯誤しながらならなんとかできそうな気がしてきました。
やってみます。
ありがとうございました!!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- Mac OS MacBookについて質問です。 文字を打っていると T を打った後文字を打つと必ず検索と置き換えが 2 2023/01/14 23:41
- その他(コンピューター・テクノロジー) 正規表現の置換で一部の文字列をそのまま残したい 2 2022/05/03 19:19
- Visual Basic(VBA) WordのVBAについて 5 2023/01/11 14:38
- Access(アクセス) capeofdragonと申します。 Access2016を使っております。 あるフォームがあり、テ 2 2022/09/09 13:18
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/08 09:05
- Excel(エクセル) Excelでの検索結果を含む行だけを表示させたい 5 2023/03/10 17:08
- ドライブ・ストレージ Windows10でのファイル内の文字列検索 SSDに寿命? 4 2022/07/12 03:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessのクエリで、replace関数...
-
ダブルクォーテーションを文字...
-
文字列にアルファベットが何文...
-
VBScriptでXcopyしたいのですが
-
GetDlgItemTextについて
-
文字列の後ろから必要分だけ削...
-
UNICODE文字が含まれているかの...
-
VS C++6.0のCString にて先頭1...
-
C言語でギリシャ文字は使えます...
-
Windows formアプリで データグ...
-
ExcelVBAを使って、値...
-
VB.NETで DataRow()を利用して...
-
Excelで指定した日付から過去の...
-
特定のセルが空白だったら、そ...
-
VBAでセルをクリックする回...
-
VBA:小数点以下の数字を取得で...
-
テキストボックスのvalueとtext...
-
【Excel VBA】指定行以降をクリ...
-
データ数をカウントしたいのですが
-
エクセルで、絶対値の平均を算...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessのクエリで、replace関数...
-
文字列の後ろから必要分だけ削...
-
UNICODE文字が含まれているかの...
-
ダブルクォーテーションを文字...
-
エクセル関数で記号から記号の...
-
文字列にアルファベットが何文...
-
awk で右端の文字を1文字削除...
-
strcmp( )関数について教えて...
-
C言語でギリシャ文字は使えます...
-
CSVの禁則文字
-
URLで使える文字・使えない...
-
vb.net IVSの漢字を1文字切り...
-
VS C++6.0のCString にて先頭1...
-
環境依存文字?をEnumで定義したい
-
GetDlgItemTextについて
-
アルファベットを含むランダム...
-
◆COUNTIF関数またはダブルクォ...
-
VB 文字判別
-
文字数と単語数を数えるプログラム
-
VBScriptでXcopyしたいのですが
おすすめ情報