Cómo insertar código en cursor o la posición de la selección desde un complemento

Seleccione idioma Seleccione idioma
Id. de artículo: 299848 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo describe cómo crear un complemento para Visual Basic 6.0 que agrega una línea de texto al módulo de código activo en la posición de cursor o la selección actual.

Más información

Puede utilizar el método AddFromString del objeto CodeModule en un complemento para insertar texto en la línea que precede el primer procedimiento en un módulo. El método AddFromString no ofrece funcionalidad para insertar texto en una línea específica en un módulo de código. Sin embargo, el método InsertLines del objeto CodeModule ofrece esta funcionalidad.

El código de ejemplo de este artículo utiliza el método GetSelection del objeto CodePane para obtener la posición de selección actual en el módulo de código activo. A continuación, utiliza el método InsertLines para agregar texto en la posición que obtiene de la llamada GetSelection .

Ejemplo paso a paso

  1. Crear un nuevo proyecto de complemento en Visual Basic. Un formulario, frmAddIn y una clase de AddInDesigner, Conectar , se crean de forma predeterminada.
  2. En Explorador de proyectos, haga clic en frmAddIn para seleccionar el formulario.
  3. En el menú proyecto , haga clic en Quitar frmAddIn para quitar el formulario del proyecto.
  4. En Explorador de proyectos, haga clic en Conectar para seleccionar el AddInDesigner.
  5. En el menú Ver , haga clic en el código para mostrar el panel de código para la clase Connect .
  6. En el menú Edición , haga clic en Seleccionar todo para resaltar el contenido de la clase Connect .
  7. En el menú Edición , haga clic en Eliminar para quitar el contenido de la clase Connect .
  8. Agregue el código siguiente a la sección Declaraciones generales de Conectar :
    Option Explicit
    
    Dim VBInstance As VBIDE.VBE
    Dim cbAddIns As CommandBar
    Dim cbcInsertLine As CommandBarControl
    Private WithEvents cbeInsertLine As CommandBarEvents
    
    Private Sub AddinInstance_OnConnection(ByVal Application As Object, _
                ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, _
                ByVal AddInInst As Object, custom() As Variant)
        Set VBInstance = Application
        ' Find the Add-Ins menu.
        Set cbAddIns = VBInstance.CommandBars("Add-Ins")
        ' Add a button to the Add-Ins menu.
        Set cbcInsertLine = cbAddIns.Controls.Add(Type:=msoControlButton)
        ' Assign the Caption and Style of the new button.
        cbcInsertLine.Caption = "Insert Line at Cursor"
        cbcInsertLine.Style = msoButtonCaption
        ' Associate an event object with the new button.
        Set cbeInsertLine = VBInstance.Events.CommandBarEvents(cbcInsertLine)
    End Sub
    
    Private Sub AddinInstance_OnDisconnection( _
                ByVal RemoveMode As AddInDesignerObjects.ext_DisconnectMode, _
                custom() As Variant)
        ' Remove the button from the Add-Ins menu.
        cbAddIns.Controls(cbcInsertLine.Caption).Delete
        ' Free the object variables.
        Set cbcInsertLine = Nothing
        Set cbAddIns = Nothing
        Set cbeInsertLine = Nothing
        Set VBInstance = Nothing
    End Sub
    
    Private Sub cbeInsertLine_Click(ByVal CommandBarControl As Object, _
                handled As Boolean, CancelDefault As Boolean)
        Dim lngStartLine As Long
        Dim lngStartColumn As Long
        Dim lngEndLine As Long
        Dim lngEndColumn As Long
        ' Only add a new line if a code pane is present.
        If VBInstance.CodePanes.Count > 0 Then
            ' Retrieve the starting line of the
            ' selection in active code pane.
            VBInstance.ActiveCodePane.GetSelection lngStartLine, _
               lngStartColumn, lngEndLine, lngEndColumn
            ' Add a line at the location that is
            ' retrieved in the GetSelection statement.
            VBInstance.ActiveCodePane.CodeModule.InsertLines lngStartLine, _
               "'Line inserted from Add-In"
        End If
    End Sub
    					
  9. Ejecute el proyecto.
  10. Inicie otra instancia de Visual Basic y cree un nuevo proyecto EXE estándar. Se creará Form1 de manera predeterminada.
  11. Haga doble clic en el Diseñador de Form1 para mostrar la ventana código de Form1. Observe que el cursor aparece en el procedimiento de evento Form_Load .
  12. En el menú Complementos , haga clic en Insertar línea en el cursor . Observe que una línea de texto se agrega al procedimiento de evento Form_Load .
Si están cerradas todas las ventanas código en el proyecto, el texto no se agrega a cualquier módulo.

Referencias

Para obtener información adicional acerca de cómo utilizar Visual Basic 6.0 para crear un complemento, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
189468Cómo crear un básico complemento utilizar VB5 o VB6

Propiedades

Id. de artículo: 299848 - Última revisión: lunes, 24 de febrero de 2014 - Versión: 1.1
La información de este artículo se refiere a:
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 6.0 Professional Edition
Palabras clave: 
kbnosurvey kbarchive kbmt kbhowto kbide kbideproject kbsample KB299848 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 299848

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com