Sök…


Anmärkningar

Microsoft Excel innehåller ett omfattande makroprogrammeringsspråk som heter VBA. Detta programmeringsspråk ger dig minst tre ytterligare resurser:

  1. Kör automatiskt Excel från kod med makron. För det mesta kan allt som användaren kan göra genom att manipulera Excel från användargränssnittet göras genom att skriva kod i Excel VBA.
  2. Skapa nya anpassade kalkylarkfunktioner.
  3. Interagera Excel med andra applikationer som Microsoft Word, PowerPoint, Internet Explorer, Notepad etc.

VBA står för Visual Basic for Applications. Det är en anpassad version av det värdefulla Visual Basic-programmeringsspråket som har drivit Microsoft Excel: s makron sedan mitten av 1990-talet.

VIKTIG
Se till att exempel eller ämnen som skapats i excel-vba-taggen är specifika och relevanta för användningen av VBA med Microsoft Excel. Alla föreslagna ämnen eller exempel som tillhandahålls som är generiska för VBA-språket bör avböjas för att förhindra dubbelarbete.

  • exempel på ämnet:

    Skapa och interagera med kalkylarkobjekt
    WorksheetFunction och respektive metoder
    Använd xlDirection uppräkningen för att navigera i ett intervall

  • exempel utanför ämnet:

    Hur man skapar en 'för varje' slinga
    MsgBox klassen och hur man visar ett meddelande
    Använda WinAPI i VBA


versioner

VB

Version Utgivningsdatum
VB6 1998/10/01
VB7 2001-06-06
WIN32 1998/10/01
Win64 2001-06-06
MAC 1998/10/01

Excel

Version Utgivningsdatum
16 2016/01/01
15 2013-01-01
14 2010-01-01
12 2007-01-01
11 2003-01-01
10 2001-01-01
9 1999-01-01
8 1997-01-01
7 1995-01-01
5 1993/01/01
2 1987-01-01

Förklarande variabler

För att uttryckligen deklarera variabler i VBA, använd Dim satset, följt av variabelns namn och typ. Om en variabel används utan att deklareras, eller om ingen typ anges, tilldelas den typen Variant .

Använd uttalandet Option Explicit på den första raden i en modul för att tvinga alla variabler att deklareras före användning (se ALLTID Använd "Option Explicit" ).

Att alltid använda Option Explicit rekommenderas starkt eftersom det hjälper till att förhindra typfel / stavfel och säkerställer att variabler / objekt förblir sin avsedda typ.

Option Explicit

Sub Example()
    Dim a As Integer
    a = 2
    Debug.Print a
    'Outputs: 2

    Dim b As Long
    b = a + 2
    Debug.Print b
    'Outputs: 4

    Dim c As String
    c = "Hello, world!"
    Debug.Print c
    'Outputs: Hello, world!
End Sub

Flera variabler kan deklareras på en enda rad med hjälp av kommatecken som avgränsare, men varje typ måste deklareras individuellt , annars kommer de som standard att vara Variant .

Dim Str As String, IntOne, IntTwo As Integer, Lng As Long
Debug.Print TypeName(Str)    'Output: String
Debug.Print TypeName(IntOne) 'Output: Variant <--- !!!
Debug.Print TypeName(IntTwo) 'Output: Integer
Debug.Print TypeName(Lng)    'Output: Long

Variabler kan också deklareras med datatypsuffix ($% &! # @), Men att använda dessa blir alltmer avskräckta.

 Dim this$  'String
 Dim this%  'Integer
 Dim this&  'Long
 Dim this!  'Single
 Dim this#  'Double
 Dim this@  'Currency

Andra sätt att deklarera variabler är:

  • Static som: Static CounterVariable as Integer

När du använder statisk sats i stället för en dim-sats, behåller den deklarerade variabeln sitt värde mellan samtal.

  • Public like: Public CounterVariable as Integer

Offentliga variabler kan användas i alla procedurer i projektet. Om en offentlig variabel deklareras i en standardmodul eller en klassmodul, kan den också användas i alla projekt som refererar till projektet där den offentliga variabeln deklareras.

  • Private som: Private CounterVariable as Integer

Privata variabler kan endast användas av procedurer i samma modul.

Källa och mer info:

MSDN-deklareringsvariabler

Typtecken (Visual Basic)

Öppna Visual Basic Editor (VBE)


Steg 1: Öppna en arbetsbok

ange bildbeskrivning här


Steg 2 Alternativ A: Tryck på Alt + F11

Detta är standardgenvägen för att öppna VBE.

Steg 2 Alternativ B: Flik för utvecklare -> Visa kod

Först måste utvecklarfliken läggas till i bandet. Gå till Arkiv -> Alternativ -> Anpassa band och markera sedan rutan för utvecklare.

ange bildbeskrivning här

Gå sedan till utvecklarfliken och klicka på "Visa kod" eller "Visual Basic"

ange bildbeskrivning här

Steg 2 Alternativ C: Visa flik> Makron> Klicka på Redigera för att öppna en befintlig makro

Alla tre av dessa alternativ öppnar Visual Basic Editor (VBE):

ange bildbeskrivning här

Lägga till en ny objektbibliotekreferens

Proceduren beskriver hur man lägger till en objektbibliotekreferens och sedan hur man deklarerar nya variabler med hänvisning till de nya biblioteksklassobjekten.

Exemplet nedan visar hur du lägger till PowerPoint- biblioteket i det befintliga VB-projektet. Som framgår är PowerPoint Object-biblioteket för närvarande inte tillgängligt.

ange bildbeskrivning här

Steg 1: Välj Meny Verktyg -> Referenser ... ange bildbeskrivning här

Steg 2 : Välj den referens du vill lägga till. I det här exemplet bläddrar vi ner för att hitta " Microsoft PowerPoint 14.0 Object Library " och trycker sedan på " OK ". ange bildbeskrivning här

Obs: PowerPoint 14.0 betyder att Office 2010-versionen är installerad på datorn.

Steg 3 : När du trycker på Ctrl + Space tillsammans i VB-redigeraren får du PowerPoint-autofullständigt alternativ. ange bildbeskrivning här

Efter att ha valt PowerPoint och tryckt på . , visas en annan meny med alla objektalternativ relaterade till PowerPoint-objektbiblioteket. Detta exempel visar hur du väljer PowerPoint-objektets Application . ange bildbeskrivning här

Steg 4 : Nu kan användaren deklarera fler variabler med PowerPoint-objektbiblioteket.

Förklara en variabel som refererar till Presentation objektet i PowerPoint-objektbiblioteket. ange bildbeskrivning här

Förklara en annan variabel som refererar till Slide i PowerPoint-objektbiblioteket. ange bildbeskrivning här

Nu ser variabeldeklarationssektionen ut i skärmbilden nedan, och användaren kan börja använda dessa variabler i sin kod. ange bildbeskrivning här

Kodversion av denna självstudie:

Option Explicit

Sub Export_toPPT()

Dim ppApp As PowerPoint.Application
Dim ppPres As PowerPoint.Presentation
Dim ppSlide As PowerPoint.Slide

' here write down everything you want to do with the PowerPoint Class and objects


End Sub

Hej världen

  1. Öppna Visual Basic Editor (se Öppna Visual Basic Editor )
  2. Klicka på Infoga -> Modul för att lägga till en ny modul:

ange bildbeskrivning här

  1. Kopiera och klistra in följande kod i den nya modulen:
  Sub hello()
    MsgBox "Hello World !"
  End Sub

För att uppnå :

ange bildbeskrivning här

  1. Klicka på den gröna “play” -pilen (eller tryck på F5) i Visual Basic-verktygsfältet för att köra programmet: ange bildbeskrivning här

  2. Välj den nya skapade suben "hej" och klicka på Run : ange bildbeskrivning här

  3. Klart, du bör se följande fönster:

ange bildbeskrivning här

Komma igång med Excel-objektmodellen

Detta exempel avser att vara en försiktig introduktion till Excel Object Model för nybörjare .


  1. Öppna Visual Basic Editor (VBE)
  2. Klicka på Visa -> Omedelbart fönster för att öppna Omedelbart fönster (eller ctrl + G ):

ange bildbeskrivning här

  1. Följande omedelbara fönster visas längst ner på VBE:

ange bildbeskrivning här

I det här fönstret kan du testa VBA-kod direkt. Så låt oss börja, skriv in den här konsolen:

?Worksheets. 

VBE har intelligens och då borde det öppna ett verktygstips som i följande figur:

ange bildbeskrivning här

Välj .Count i listan eller skriv direkt .Cout att få:

?Worksheets.Count
  1. Tryck sedan på Enter. Uttrycket utvärderas och det ska returnera 1. Detta indikerar antalet kalkylblad som för närvarande finns i arbetsboken. Frågetecknet ( ? ) Är ett alias för Debug.Print.

Kalkylblad är ett objekt och räkning är en metod . Excel har flera objekt ( Workbook , Worksheet , Range , Chart ..) och var och en innehåller specifika metoder och egenskaper. Du kan hitta den kompletta listan med objekt i Excel VBA-referensen . Kalkylblad Objekt presenteras här .

Denna Excel VBA-referens bör bli din primära informationskälla om Excel-objektmodellen.

  1. Låt oss nu prova ett annat uttryck, typ (utan ? -Tecknet):
Worksheets.Add().Name = "StackOveflow"
  1. Tryck enter. Detta bör skapa ett nytt kalkylblad som heter StackOverflow. :

ange bildbeskrivning här

För att förstå detta uttryck måste du läsa funktionen Lägg till i ovannämnda Excel-referens. Du hittar följande:

Add:  Creates a new worksheet, chart, or macro sheet. 
The new worksheet becomes the active sheet. 
Return Value: An Object value that represents the new worksheet, chart,
 or macro sheet.

Worksheets.Add() skapa ett nytt kalkylblad och returnera det. Kalkylblad ( utan s ) är i sig ett objekt som kan hittas i dokumentationen och Name är en av dess egenskaper (se här ). Det definieras som:

Worksheet.Name Property:  Returns or sets a String value that 
 represents the object name.

Så genom att undersöka definitionerna av olika objekt kan vi förstå den här koden Worksheets.Add().Name = "StackOveflow" .

Add() skapar och lägger till ett nytt kalkylblad och returnera en referens till det, då vi sätter sitt namn egendom till "Stackoverflow"


Låt oss nu vara mer formella, Excel innehåller flera objekt. Dessa objekt kan bestå av en eller flera samlingar med Excel-objekt i samma klass. Det är fallet för WorkSheets som är en samling av Worksheet objekt. Varje objekt har vissa egenskaper och metoder som programmeraren kan interagera med.

Excel-objektmodellen hänvisar till Excel- hierarkin

Överst på alla objekt är Application , det representerar själva Excel-instansen. Programmering i VBA kräver en god förståelse för denna hierarki eftersom vi alltid behöver en referens till ett objekt för att kunna kalla en metod eller för att ställa in / få en egenskap.

(Mycket förenklad) Excel-objektmodell kan representeras som,

                            Application
                             Workbooks
                             Workbook
                            Worksheets
                             Worksheet
                              Range

En mer detaljerad version för kalkylbladets objekt (som i Excel 2007) visas nedan,

ange bildbeskrivning här

Den fullständiga Excel-objektmodellen finns här .

Slutligen kan vissa objekt ha events (ex: Workbook.WindowActivate ) som också ingår i Excel-objektmodellen.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow