1.リッチテキストボックス(RichTextBox)に関する基本的な操作例 |
下記プログラムコードに関する補足・注意事項 動作確認: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. |
検索キーワード及びサンプルコードの別名(機能名) |
リッチテキストボックスにリッチテキスト形式のファイルを読み込み表示する リッチテキストボックスにテキスト形式のファイルを読み込み表示する |