VBA-touch-bypass: gráficos, imágenes y controles de formulario

Familia de formas:

En primer lugar, en VBA se llaman formas

 

 

 Ejemplo: calcular cuántas formas

Sub prueba ()
MsgBox Sheet1.Shapes.Count
End Sub

atributo de forma

Sub prueba ()
Dim shp As Shape
Para cada shp en Sheet1.Shapes
    i = i + 1 
    Rango ( " a " e i) = shp.Name
    Range ( " b " & i) = shp.TopLeftCell.Address
    Range ( " c " & i) = shp.Type
próximo
End Sub

Hay fotos en excel arriba

 

 

 La tabla de hojas también tiene su propio tipo

Bajo prueba1 ()
MsgBox Sheets ( 2 ) .Type ' Worksheet también tiene su propio tipo 
End Sub

Eliminar imágenes, eliminar de acuerdo a diferentes tipos

Sub prueba ()
Dim shp As Shape
Para cada shp en Sheet1.Shapes
    Si shp.Type = msoPicture Then ' shp.type = 13 也 行
        shp.Delete
    Terminara si
próximo
End Sub

Nota adicional: los parámetros con "[]" en los parámetros pueden omitirse, el resto son los parámetros que deben escribirse

 

 

 Inserte y ajuste las imágenes según su posición (puede ayudar, grabar macro para lograr, aprender a aprender por sí mismo)

Como se muestra a continuación, debe importar imágenes

 

 

 El código de implementación es el siguiente:

Sub prueba ()
Dim i As Integer
Dim shp As Shape
En Error Reanudar Siguiente
Para cada shp en Sheet1.Shapes ' Elimine todas las imágenes para evitar 
    shp.Delete
próximo
Para i = 2 a 12 
    Sheet1.Shapes.AddPicture " d: \ data \" & Range ( " a " & i) & " .jpg " , msoFalse, msoTrue, Range ( " d " & i) .Left, Range ( " d " e i). Arriba, Rango ( " d " e i). Ancho, Rango ( " d " e i). Altura 
Siguiente
End Sub

Mayor automatización: haga que el tamaño de la imagen cambie con el tamaño de la celda, realícelo grabando una macro, aprenda

Sub prueba ()
Dim i As Integer
Dim shp As Shape
Dim shp1 como forma
En Error Reanudar Siguiente
Para cada shp en Sheet1.Shapes ' Elimine todas las imágenes para evitar 
    shp.Delete
próximo
Para i = 2 a 12 
    Configure shp1 = Sheet1.Shapes.AddPicture ( " d: \ data \" & Range ( " a " & i) & " .jpg " , msoFalse, msoTrue, Range ( " d " & i). Izquierda, Rango ( " d " e i). Arriba, Rango ( " d " e i). Ancho, Rango ( " d " e i). Altura) 
    shp1.Placement = xlMoveAndSize
próximo
End Sub

Cambiar el nombre del archivo

El método para renombrar archivos en VBA es el siguiente: nombre ..... como ......

Bajo prueba1 ()
Nombre " d: \ data \ 汪 梅 .jpg " Como " d: \ data \ 汪 梅 123.jpg " 
End Sub

Cambie el nombre de la imagen de acuerdo con los datos en la hoja de Excel de la siguiente manera

 

 

 El código es el siguiente:

Sub prueba ()
Dim i As Integer
En Error Reanudar Siguiente
Para i = 2 a 12 
   Nombre " d: \ data \" & Range ( " a " & i) & " .jpg " Como " d: \ data \ " & Range ( " a " & i) & Range ( " d " & i) & " .jpg "
 Siguiente
End Sub

Objeto de gráfico: logrado al grabar una macro

             Lograr

 El código es el siguiente:

Sub prueba ()
Dim shp As Shape

Establecer shp = Sheet1.Shapes.AddChart2
    shp.Chart.SetSourceData Range ( " b2: c14 " )   ' Fuente de datos 
    shp.Chart.ChartType = xlLine     ' Establezca un gráfico de columnas o una línea y otros gráficos 
    shp.Chart.Axes (xlValue) .MinimumScale = 1000000  ' Establezca el intervalo de
 ordenación 
Fin Sub

Usar controles de formulario

El control de formularios ahorra memoria que el control ActiveX, simple y flexible

    Use cuadros de agrupación para hacer que las opciones múltiples se excluyan mutuamente

 

Hay un cuadro de grupo que afecta la apariencia, entonces, ¿cómo ocultarlo? En el atributo de cuadro de grupo, él no tiene esta función de ocultación, por lo que no se puede grabar para lograr, confiar en adivinar y omitir la categoría

 

Sub prueba ()
Dim shp As Shape
' Encuentra la diferencia entre los controles de formulario 
para cada shp en Sheet1.Shapes
    i = i + 1 
    Range ( " g " & i) = shp.Name
    ' range ("g" & i) = shp.type 
Next
End Sub 
----------------------------- Bajo prueba1 () Dim shp As Shape Para cada shp en Sheet1.Shapes
' If shp.Name = "Group Box *" Entonces esto no tiene efecto, = debe ser un nombre preciso Si shp.Name Like " Group Box * " Entonces shp.Visible = msoFalse Terminara si próximo End Sub

 

También puede ser así

Bajo prueba1 ()
Dim shp As Shape

Para cada shp en Sheet1.Shapes
    Si shp.FormControlType = xlGroupBox Entonces
        shp.Visible = msoFalse
    Terminara si
próximo
End Sub

como operador

 

 Los personajes dentro necesitan recordar

Sub prueba ()
Dim i As Integer
Rango ( " a2: a15 " ) .Interior.Pattern = xlNone

Para i = 2 a 15 
    ' If Range ("a" & i) Like "J *" Then ' " J ?????? "   " J ??? w ??? " 
    ' If Range ("a" & i) Me gusta "[AM am] *" Entonces significa 
    ' If Range ("a" & i) Like "[0-9] *" Then   ' o " # * " ; " ## * " # Representa un número
     ' If Range ("a" & i) Like "[0-9] [! 0-9] *" Then ' ! El signo de exclamación representa el significado de "not"
     ' If Range ("a" & i) Like "J ??? [AZ az] ?? "Entonces
    
    
    
        Rango ( " a " e i). Interior.Color = 65535 
        ' Rango ("a" e i). Color de fuente = 65535 
        k = k + 1
    Terminara si
próximo
Rango ( " e1 " ) = k
End Sub

 

Supongo que te gusta

Origin www.cnblogs.com/xiao-xuan-feng/p/12687896.html
Recomendado
Clasificación