§1 テキストエディタの制作 VB6
 (6) 置換機能の追加 T 前へ 目次へ 次へ 

 置換とは、探し出したい文字列(検索文字列)と置き換えたい文字列(置換文字列)を入力すると、テキストから一致する文字列を探し出して、それを置き換えたい文字列に置き換えることである。


 1. 文字列置換のサンプル

図1-6-1

 新規フォームを用意し、ラベル3個、テキストボックス3個、ボタン1個を配置する。Text1オブジェクトのHideSelectionプロパティはFalseに設定する。(図1-6-1)

 検索文字列と置換文字列を入力して置換ボタンをクリックすると一つ目の置換が行われる。

 同じ検索文字列のまま、もう一度置換ボタンをクリックすると発見した文字列の次から検索を再開し、見つかれば置換する。
 検索文字列が見つからなかったときは、メッセージを表示する。

・プログラムリスト

Dim pt As Integer      '検索文字列を発見した位置

Private Sub Command1_Click()
    Dim sLen As Integer    '検索文字列の長さ

    sLen = Len(Text2.Text)    '検索文字列の長さ
    If sLen = 0 Then          '検索文字列なし
        Exit Sub
    End If
    pt = InStr(pt, Text1.Text, Text2.Text)    '検索
    If pt = 0 Then        '見つからない
        MsgBox "検索文字列が見つかりませんでした"
    Else                  '見つかった
        '範囲選択
        Text1.SelStart = pt - 1    'SelStartは0からカウントする
        Text1.SelLength = sLen
        '置き換え・範囲選択
        Text1.SelText = Text3.Text         '
        Text1.SelStart = pt - 1            '
        Text1.SelLength = Len(Text3.Text)  '
    End If
    pt = pt + sLen    '見つかった文字列の次から検索
End Sub

Private Sub Text2_Change()
    pt = 1    '1文字目から検索
End Sub

 サンプルでは、検索文字列が見つかったときに、確認なしで文字列を置換するようになっている。しかし、一般的なアプリケーションでは、置換するかどうかを確認するようになっていることが多い。
 この確認は、印の3行が置換の処理なので、この3行の直前で行う。確認はMsgBox関数を使うと簡単で良い。


 (6) 置換機能の追加 T 前へ 目次へ 次へ 
Copyright © 2001,2002 Hiroshi Masuda 

 

 

inserted by FC2 system