Sie sind auf Seite 1von 4

Option Explicit

Option Compare Text

'constantes para el redimensionado de los controles


Const MARGEN As Single = 80
Const ANCHO_BOTON As Single = 2000
Const ALTO_BOTON As Single = 380

'subrutina para buscar


'---------------------------------------------------------------------
Sub BuscarTexto(RichTextBox As Object, Optional ByVal PosIni As Integer)

Dim Pos As Integer


Dim PalabraClave As String

'TipoBusqueda corresponde si se busca Mayus y Minus identicas...


Dim TipoBusqueda As Long

'La variable PalabraClave toma el valor de txt_Buscar


PalabraClave = txt_Buscar.Text

'Verificar si PalabraClave no esta vaca


If Len(PalabraClave) Then
'Verificar si Mayusculas y Minusculas esta desactivada
If Check1.Value = 0 Then
TipoBusqueda = vbTextCompare
Else
TipoBusqueda = vbBinaryCompare
End If

'Busca desde la PosIni que se indico...


Pos = InStr(PosIni + 1, RichTextBox.Text, PalabraClave, TipoBusqueda)
If Pos > 0 Then
'Si devolvio mayor de 0...se encontro

With RichTextBox
RichTextBox.SelStart = Pos - 1
RichTextBox.SelLength = Len(PalabraClave)
RichTextBox.SetFocus
End With
Me.Caption = "Se encontro la palabra."
Else
'No se encontr
RichTextBox.SetFocus
Me.Caption = "No se encontro."
End If
End If

End Sub

' Subrutina para reemplazar el texto seleccionado


'---------------------------------------------------------------------
Private Sub RemplazarTexto(RichTextBox As Object, _
Optional ByVal PosIni As Integer)
Dim Pos As Integer
Dim PalabraClave As String

'TipoBusqueda corresponde si se busca Mayus y Minus identicas...


Dim TipoBusqueda As Long

'La variable PalabraClave toma el valor de txt_Buscar


PalabraClave = txt_Buscar.Text

'Verificar si PalabraClave no esta vacia


If Len(PalabraClave) Then

'Verificar si Mayus y Minus esta desactivada


If Check1.Value = 0 Then
TipoBusqueda = vbTextCompare
Else
TipoBusqueda = vbBinaryCompare
End If
'Busca desde la PosIni que se indico..
Pos = InStr(PosIni + 1, RichTextBox.Text, _
PalabraClave, TipoBusqueda)
If Pos > 0 Then
'Si devolvio mayor de 0...se encontro
RichTextBox.SelStart = Pos - 1
RichTextBox.SelLength = Len(PalabraClave)
RichTextBox.SetFocus

'Eliminamos el contenido del clipboard


Clipboard.Clear
Clipboard.SetText txt_Reemplazar.Text
'Pega el contenido
SendKeys "^(V)"

Me.Caption = "Se encontro y reemplazo la cadena de texto."


Else
'No se encontr
RichTextBox.SetFocus
Me.Caption = "No se encontro."
End If
End If

End Sub

' Abre y carga un archivo en el control RichTextBox con el mtodo LoadFile


'---------------------------------------------------------------------

Private Sub Cmd_Abrir_Click()

On Error GoTo ErrOut

Dlgopen.Filter = " Archivos de Texto (*.txt)|*.txt"


Dlgopen.ShowOpen

If Dlgopen.CancelError = True Then Exit Sub

'Cdigo encargado para cargar textos en un control RichTextBox


RichTextBox1.Text = vbNullString
RichTextBox1.LoadFile (Dlgopen.FileName)
Exit Sub

'Rutina de Error
ErrOut:
MsgBox Err.Description
End Sub

' Para buscar la frase


'---------------------------------------------------------------------
Private Sub cmd_Buscar_Click()
'Funcin que busca el texto escrito en el txt_Buscar
Call BuscarTexto(RichTextBox1)
End Sub

' busca la siguiente frase


'---------------------------------------------------------------------
Private Sub cmd_Buscar_Siguiente_Click()
'Sigue buscando mas coincidencias
Call BuscarTexto(RichTextBox1, RichTextBox1.SelStart + 1)
End Sub

'reemplaza el texto seleccionado


'---------------------------------------------------------------------
Private Sub cmd_Remplazar_Click()

'Funcin que busca y reemplaza el texto seleccionado _


por el texto escrito en el txt_Reemplazar
Call RemplazarTexto(RichTextBox1, RichTextBox1.SelStart)

End Sub

'Caption de los controles del formulario


'---------------------------------------------------------------------
Private Sub Form_Load()

cmd_Buscar.Caption = " Buscar "


cmd_Buscar_Siguiente.Caption = " Buscar siguiente "
cmd_Remplazar.Caption = " Reemplazar "
Cmd_Abrir.Caption = " Abrir archivo "

Check1.Caption = " Mayscula / Minscula "


Check1.Value = Unchecked

txt_Buscar.Text = ""
txt_Reemplazar.Text = ""
End Sub

'Para Posicionar y redimensionar los controles en el formulario


'---------------------------------------------------------------------
Private Sub Form_Resize()

On Local Error Resume Next

Me.AutoRedraw = True

Me.CurrentX = MARGEN
Me.CurrentY = MARGEN

Me.Print " Buscar"

Me.CurrentX = MARGEN
Me.CurrentY = 550

Me.Print " Reemplazar: "

'Redimensiona y posiciona los controles textBox


txt_Buscar.Move MARGEN * 15, MARGEN, Me.ScaleWidth - ANCHO_BOTON * 1.5
txt_Reemplazar.Move MARGEN * 15, txt_Buscar.Top + txt_Buscar.Height + MARGEN, _
Me.ScaleWidth - ANCHO_BOTON * 1.5

Check1.Move MARGEN, txt_Reemplazar.Top + txt_Reemplazar.Height + MARGEN * 4, _


Me.ScaleWidth - ANCHO_BOTON * 1.5

'Redimensiona y posiciona los CommandButton


cmd_Buscar.Move Me.ScaleWidth - (ANCHO_BOTON - MARGEN * 4), MARGEN, _
ANCHO_BOTON - MARGEN * 6, ALTO_BOTON

cmd_Buscar_Siguiente.Move Me.ScaleWidth - (ANCHO_BOTON - MARGEN * 4), _


MARGEN + cmd_Buscar.Top + cmd_Buscar.Height, _
ANCHO_BOTON - MARGEN * 6, ALTO_BOTON

cmd_Remplazar.Move Me.ScaleWidth - (ANCHO_BOTON - MARGEN * 4), _


MARGEN + cmd_Buscar_Siguiente.Top +
cmd_Buscar_Siguiente.Height, _
ANCHO_BOTON - MARGEN * 6, ALTO_BOTON

Cmd_Abrir.Move Me.ScaleWidth - (ANCHO_BOTON - MARGEN * 4), _


MARGEN + cmd_Remplazar.Top + cmd_Remplazar.Height, _
ANCHO_BOTON - MARGEN * 6, ALTO_BOTON

'Redimensiona y posiciona el RichtextBox


RichTextBox1.Move MARGEN, Cmd_Abrir.Top + Cmd_Abrir.Height + MARGEN * 4, _
Me.ScaleWidth - MARGEN * 2, _
Me.ScaleHeight - (Cmd_Abrir.Top + Cmd_Abrir.Height + MARGEN
* 6)

End Sub

Das könnte Ihnen auch gefallen