Podeu inserir imatges fàcilment als fulls de càlcul d'Excel i editar-les amb codi macro. A continuació s'explica com inserir una imatge a una cel·la mitjançant VBA a Excel .
Visual Basic per a aplicacions, abreujat com a VBA, és una forma de Visual Basic 6 integrada als programes de Microsoft Office. Mitjançant la codificació, VBA us permet automatitzar tasques en aplicacions d'Office, inclòs Excel. En alguns casos, fins i tot podeu afegir noves funcions a Excel mitjançant VBA.
Tot i que necessiteu treballar amb codi per utilitzar VBA, això no vol dir que VBA estigui ple de lletres i números. Amb VBA a Excel, podeu crear una macro que us permeti inserir una imatge en una cel·la o rang de cel·les. Aquí teniu el que necessiteu saber sobre la inserció d'imatges a les cel·les a Excel mitjançant VBA.
Com inserir imatges a les cel·les mitjançant VBA a Excel
Per crear una macro que insereixi una imatge en una cel·la d'Excel mitjançant VBA, realment no necessiteu cap coneixement avançat de Visual Basic. Tot el que heu de fer és activar les eines per a desenvolupadors, crear una macro i enganxar el codi adequat. Per descomptat, també podeu inserir imatges a Excel sense utilitzar VBA. Tanmateix, en aquest article, ens centrarem en VBA.
1. Activa Eines per a desenvolupadors
Per utilitzar VBA a Excel, heu d'habilitar les eines per a desenvolupadors. Aquesta acció habilitarà la pestanya Desenvolupador a la cinta, que està desactivada de manera predeterminada.
- Obriu Excel .
- Aneu al menú Fitxer .
- Feu clic a Opcions a la part inferior de la pantalla. Apareixerà la finestra Opcions d'Excel .
- A Opcions d'Excel, aneu a la pestanya Personalitza la cinta .
- A les pestanyes principals , marqueu Desenvolupador .
Ara les eines per a desenvolupadors, inclòs l'accés a VBA, estan habilitades. No cal que ho feu cada vegada que vulgueu utilitzar VBA a Excel. Les eines per a desenvolupadors sempre estaran habilitades fins que les desactiveu.
2. Creeu macros i inseriu codi
- A Excel, aneu a la pestanya Desenvolupador .
- A la secció Codi, seleccioneu Macros .
- A la finestra nova, introduïu el nom de la macro a Nom de la macro . L'article utilitzarà insertPhotoMacro .
- Feu clic a Crear .
Després de fer clic a Crea, s'obrirà la finestra de VBA i mostrarà el codi de la vostra macro. Actualment, el codi constarà de 2 línies: un Sub per iniciar la macro i un End Sub per acabar-la.
Afegiu un petit codi a aquesta macro. Afegiu la següent línia de codi entre les dues línies:
Dim photoNameAndPath As Variant
Dim photo As Picture
photoNameAndPath = Application.GetOpenFilename(Title:="Select Photo to Insert")
If photoNameAndPath = False Then Exit Sub
Set photo = ActiveSheet.Pictures.Insert(photoNameAndPath)
With photo
.Left = ActiveSheet.Range("A1").Left
.Top = ActiveSheet.Range("A1").Top
.Width = ActiveSheet.Range("A1").Width
.Height = ActiveSheet.Range("A1").Height
.Placement = 1
End With
El codi final serà així:
No us haureu de preocupar per desar aquest procés. Qualsevol canvi que feu a VBA es desa immediatament.
Ara és el moment de veure el codi en acció:
- Tanqueu la finestra de VBA.
- Aneu a la pestanya Desenvolupador a Excel.
- Seleccioneu Macros a la secció Codi.
- Ressalteu la macro que acabeu de crear.
- Feu clic a Executar .
Ara s'obrirà un missatge que us demanarà que localitzeu el fitxer d'imatge que voleu inserir. Seleccioneu la foto i feu clic a Obre. Ara veureu la imatge a la cel·la A1.
Tingueu en compte que Excel reduirà la imatge perquè encaixi a la cel·la A1. Podeu canviar-lo i canviar el codi per inserir imatges a altres cel·les, fins i tot a un rang de cel·les. A la següent secció, separarem el codi i explicarem els paràmetres.
3. Codi dividit
Perquè el codi VBA funcioni com voleu, heu d'entendre-lo. Quan feu això, podeu canviar el codi per inserir imatges a qualsevol cel·la de qualsevol mida.
Sub insertPhotoMacro()
Dim photoNameAndPath As Variant
Dim photo As Picture
photoNameAndPath = Application.GetOpenFilename(Title:="Select Photo to Insert")
If photoNameAndPath = False Then Exit Sub
Set photo = ActiveSheet.Pictures.Insert(photoNameAndPath)
With photo
.Left = ActiveSheet.Range("A1").Left
.Top = ActiveSheet.Range("A1").Top
.Width = ActiveSheet.Range("A1").Width
.Height = ActiveSheet.Range("A1").Height
.Placement = 1
End With
End Sub
Quan comença el codi, s'utilitza la instrucció Dim per determinar el tipus de variable. Tenim dos tipus de variables: photoNameAndPath i photo . Primer la variable i després la imatge.
A partir d'aquí, s'executa la variable photoNameAndPath i obrirà una aplicació per obtenir la ubicació del fitxer fotogràfic. Això es fa mitjançant Application.GetOpenFileName . El paràmetre Títol és opcional. El contingut dins es mostra com el nom de la finestra.
Utilitzant If photoNameAndPath = False Then Exit Sub , si es dóna una adreça no vàlida o buida, el procés finalitzarà. Tanmateix, si es proporciona un fitxer adequat, Set photo = ActiveSheet.Pictures.Insert(photoNameAndPath) indica que la imatge s'ha de definir com a variable tal com es va definir originalment. S'inserirà al full de treball actiu.
Finalment, utilitzeu Amb foto i les 5 línies posteriors per determinar la ubicació de la foto. .Esquerra i .A dalt fan referència a la posició inicial, mentre que .Amplada i .Altura fan referència a la posició final. Si voleu inserir imatges en una altra cel·la o un rang, aquestes són les línies que hauríeu de canviar.
.La col·locació indica que s'ha de canviar la mida de la imatge per adaptar-se a la cel·la o inserida de forma lliure. Si l'estableixes a 1 , es canviarà la mida segons la cel·la.
Finalment, el codi anterior utilitza End With i , a continuació, End Sub per tancar la macro. Ara podeu canviar les variables photoNameAndPath i photo per qualsevol altre nom que vulgueu. Només recordeu mantenir els noms coherents al llarg del codi.
A dalt es mostra com utilitzar VBA per inserir imatges a les cel·les d'Excel . Espero que l'article us sigui útil.