VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

リンク元へ戻ります。 リッチテキストボックス関係のメニュー
1.リッチテキストボックスに関する基本的な操作例
2.リッチテキストボックス← →Word 間でテキストのやり取り
3.リッチテキストボックスの総行数・現在行・現在桁の取得
4.2つのリッチテキストボックスのスクロールの同期をとる
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.その他、当サイト内に掲載のリッチテキストボックスに関するサンプル


1.リッチテキストボックス(RichTextBox)に関する基本的な操作例
1.リッチテキストボックスにリッチテキスト形式(テキスト形式)のファイルを読み込む
2.リッチテキストボックスで右端で折り返されなくする
3.リッチテキストボックスですべてのフォントをデフォルトに設定する
4.リッチテキストボックスでリッチテキスト形式(テキスト形式)でファイルを保存する
5.リッチテキストボックスで選択箇所のフォント属性を設定する
6.リッチテキストボックスで選択箇所のフォントカラーを設定する
7.リッチテキストボックスで指定の文字列を検索して指定のカラーで表示する
8.リッチテキストボックスで連続してリッチテキスト内を検索・置き換えする
9.リッチテキストボックスでリッチテキストを印刷
10.リッチテキストボックスで先頭行を削除
11.リッチテキストボックスで最終行を削除
12.リッチテキストボックスで指定位置に指定数のタブを設定する
13.
14.
15.


 下記プログラムコードに関する補足・注意事項 
動作確認:Windows Vista・Windows 7 (32bit) / VB6.0(SP6) Excel 2010
Option :[Option Explicit]
参照設定:
使用 API:

その他 :プロジェクト→コンポーネント→コントロールで Microsoft Rich Textbox Control 6.0 及び、Microsoft
    :Common Dialog Control 6.0 にチェックを入れ、表示されたコントロールをフォームに貼り付けて下さい。
このページのトップへ移動します。 1.リッチテキストボックスにリッチテキスト形式(テキスト形式)のファイルを読み込む   

Private Sub Command1_Click()
  'リッチテキスト形式のファイルを読み込む場合
  RichTextBox1.LoadFile "C:\VBRescu1\test.rtf", rtfRTF

  'テキスト形式のファイルを読み込む場合
  RichTextBox1.LoadFile "C:\VBRescu1\test.txt", rtfText
End Sub

このページのトップへ移動します。 2.リッチテキストボックスで右端で折り返されなくする
VB6.0 のリッチテキストボックスには、WordWrap プロパティがありません。従って標準設定では、右端で折り返して表示されます。
従って、右端で折り返されなくするには、下記のように設定します。(デザイン時にプロパティでの設定でも可)

Private Sub Command1_Click()
  'テキストの右余白を設定します
  '(大きな値を設定しておけば自動的に折り返さない)
  RichTextBox1.RightMargin = 100000
End Sub

このページのトップへ移動します。 3.リッチテキストボックスですべてのフォントをデフォルトに設定する

Private Sub Command1_Click()
'すべてのフォントをデフォルトに設定
  With RichTextBox1
    .SelStart = 0
    .SelLength = Len(.Text)
    .SelFontName = .Font.Name
    .SelFontSize = .Font.Size
    .SelBold = .Font.Bold
    .SelColor = vbBlack
    .SelItalic = .Font.Italic
    .SelUnderline = .Font.Underline
    .SelStrikeThru = .Font.Strikethrough
  End With
End Sub

このページのトップへ移動します。 4.リッチテキストボックスでリッチテキスト形式(テキスト形式)でファイルを保存する

Private Sub Command1_Click()
  '通常のテキスト形式でファイルを保存する場合
  RichTextBox1.SaveFile "c:\test.txt", rtfText

  'リッチテキスト形式でファイルを保存する場合
  RichTextBox1.SaveFile "c:\test.rtf", rtfRTF
End Sub

このページのトップへ移動します。 5.リッチテキストボックスで選択箇所のフォント属性を設定する

Private Sub Command1_Click()
  With RichTextBox1
    CommonDialog1.Flags = cdlCFBoth
    CommonDialog1.ShowFont

    .SelFontName = CommonDialog1.FontName
    .SelFontSize = CommonDialog1.FontSize
    .SelBold = CommonDialog1.FontBold
    .SelItalic = CommonDialog1.FontItalic
    .SelUnderline = CommonDialog1.FontUnderline
    ' 必要なものを適時追加して下さい。
    'CommonDialogを使用せずに直接設定しても OK です
  End With
End Sub

このページのトップへ移動します。 6.リッチテキストボックスで選択箇所のフォントカラーを設定する

Private Sub Command1_Click()
  With RichTextBox1
    ' CommonDialog1.Flags = cdlCFBoth
    CommonDialog1.ShowColor

    .SelColor = CommonDialog1.Color
    'CommonDialogを使用せずに直接設定しても OK です
  End With
End Sub

このページのトップへ移動します。 7.リッチテキストボックスで指定の文字列を検索して指定のカラーで表示する

Private Sub Command1_Click()
  Dim FindResult As Long
  Dim FindOption As Long
  Dim StartPos  As Long

  '大文字と小文字を区別して検索
  FindOption = FindOption Or rtfMatchCase
  With RichTextBox1
    Do
      '検索を実行(見つからなければ -1 が返る)
      FindResult = .Find(Text1.Text, StartPos, , FindOption)
      If FindResult = -1 Then
        'カーソルを先頭に移動(選択状態を解除)
        .SelStart = 0
        MsgBox "処理を完了しました"
        Exit Do
      Else
        .SelColor = vbRed    '文字カラーを赤に設定
        .SelBold = True     '太字に設定
        '見つかった文字列の最後から再検索
        '見つかった位置は文字数だが、次の検索開始位置はバイト数で指定の事
        '内部でUnicode-Ansi-Unicode-Ansiと変換を行っているようです
        StartPos = LenB(StrConv(Left$(.Text, FindResult) & .SelText, vbFromUnicode))
      End If
    Loop
  End With
End Sub

このページのトップへ移動します。 8.リッチテキストボックスで連続してリッチテキスト内を検索・置き換えする

Private Sub Command1_Click()
  Dim FindResult As Long
  Dim FindOption As Long
  Dim StartPos  As Long
  Dim MsgResult As Integer
  '大文字と小文字を区別して検索
  FindOption = FindOption Or rtfMatchCase
  With RichTextBox1
    Do
      '検索を実行(見つからなければ -1 が返る)
      FindResult = .Find(Text1.Text, StartPos, , FindOption)
      If FindResult = -1 Then
        'カーソルを先頭に移動(選択状態を解除)
        .SelStart = 0
        MsgBox "処理を完了しました"
        Exit Do
      Else
        .HideSelection = False
        MsgResult = MsgBox("置き換えますか?", vbYesNo)
        '検索文字を置き換える場合
        If MsgResult = vbYes Then
          .SelText = Text2.Text
        End If
        .HideSelection = True
        '見つかった文字列の最後から再検索
        '見つかった位置は文字数だが、次の検索開始位置はバイト数で指定の事
        '内部でUnicode-Ansi-Unicode-Ansiと変換を行っているようです
        StartPos = LenB(StrConv(Left$(.Text, FindResult) & .SelText, vbFromUnicode))
      End If
    Loop
  End With
End Sub

このページのトップへ移動します。 9.リッチテキストボックスでリッチテキストを印刷

Private Sub Command1_Click()
  With CommonDialog1
    .Flags = cdlPDReturnDC
    .ShowPrinter
    'キャンセルが押されたら設定しない
    If Err.Number Then
      Err.Clear
      Exit Sub
    End If
    '書式付きテキストを印刷デバイスに送信
    RichTextBox1.SelPrint .hDC
  End With
End Sub

これで、カラーででも印刷ができます。

このページのトップへ移動します。 10.リッチテキストボックスで先頭行を削除

Private Sub Command1_Click()
'先頭行を削除
  Dim EndPos As Long
  With RichTextBox1
    If Len(.Text) > 0 Then
      EndPos = InStr(.Text, vbCrLf)
      If EndPos = 0 Then
        .Text = ""
      Else
        .Text = Right$(.Text, Len(.Text) - (EndPos + 1))
      End If
    End If
  End With
End Sub

このページのトップへ移動します。 11.リッチテキストボックスで最終行を削除

Private Sub Command1_Click()
'最終行を削除
  Dim EndPos As Long
  With RichTextBox1
    EndPos = InStrRev(.Text, vbCrLf)
    .Text = Left$(.Text, EndPos)
  End With
End Sub

このページのトップへ移動します。 12.リッチテキストボックスで指定位置に指定数のタブを設定する

Private Sub Command1_Click()
  With RichTextBox1
    .SetFocus
    '設定するタブの数
    .SelTabCount = 4
    'タブの間隔(4文字)
    .SelTabs(0) = 0
    .SelTabs(1) = 500  'Twip Formのモード単位
    .SelTabs(2) = 2000
    .SelTabs(3) = 5000
  End With
End Sub

Private Sub RichTextBox1_GotFocus()
  'TabStop プロパティを持たないコントロールで発生するエラーを無視します。
  Dim Control As Control
  On Error Resume Next
  'Tab キーを押したときのフォーカスの変更を無効にします。
  For Each Control In Controls
    Control.TabStop = False
  Next Control
End Sub

このページのトップへ移動します。 13.


このページのトップへ移動します。 14.


このページのトップへ移動します。 15.


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)
リッチテキストボックスにリッチテキスト形式のファイルを読み込み表示する リッチテキストボックスにテキスト形式のファイルを読み込み表示する




このページのトップへ移動します。