Mallar.biz
Blogg

Objektorienterad VBA programmering i Excel (OOP och VB6)

Uppdaterad: 2026-04-08 | Skapad av Mallar.biz

Bild av Objektorienterad VBA programmering i Excel (OOP och VB6)
I den här arbetsboken har vi använt oss av konceptet för objektorienterad programmering (OOP) när vi har skrivit VBA kod för att kunna utföra operationen i arbetsboken.

I den här arbetsboken har vi skapat en egen meny som kan hittas under menyfliken "Tillägg" eller i menyn "Verktyg beroende på vilken version av Excel som används och ett formulär med kod som hanterar händelsen att en knapp trycks ned. I den här arbetsboken finns det kod i formuläret, i "ThisWorkbook", i en modul och i tre klassmoduler. För att kunna se VBA koden måste du aktivera tillägget "AnalysisToolpack – VBA" och eventuellt också aktivera menyfliken "Utvecklare".

Den huvudsakliga idén med objektorienterad programmering (OOP) är att skapa oberoende klasser för de objekt som skall kunna användas i ett program och att göra det enkelt för någon som inte har skapat en klass att använda en klass. En klass skall fungera som en svart låda där användaren av klassen inte behöver se koden i klassen utan endast behöver känna till de publika egenskaper och metoder som finns i klassen.

En klass består av variabler som normalt deklareras som privata (private), publika egenskaper (properties) som kan användas för att sätta och returnera värden för privata variabler, metoder som kan användas för att sätta och returnera värden, konstruktorer och en destruktor. I ett programmeringsspråk som är fullständigt objektorienterat kan en klass ärva (Inherit) från en annan klass, implementera ett gränssnitt från flera andra klasser (Implement interface) och ha flera konstruktorer som kan ta emot parametrar.

I VBA (VB 6) kan en Klassmodul inte ärva från en annan klass, inte implementera gränssnitt och enbart ha en konstruktor (Class_Initialize) som inte kan ta emot parametrar. En konstruktor behöver inte anges i en Klassmodul men kan användas för att exempelvis sätta standardvärden på privata variabler. En destruktor (Class_Terminate) behöver inte heller anges i en Klassmodul men kan användas för att frigöra resurser från minnet då det finns risk för minnesläckage på grund av att Klassmodulen innehåller resurser som finns utanför Excel och VBA.

I VBA (VB 6) sköts minneshanteringen genom referensräkning på så sätt att ett objekt förstörs (Class_Terminate) när antalet referenser för objektet har nått 0 och detta inträffar när den metod som har skapat ett objekt (Class_Initialize) har avslutats eller då värdet för objektet har satts till "Nothing". Det finns normalt ingen anledning att lägga till en destruktor (Class_Terminate) i en Klassmodul då minneshanteringen för resurser i VB6 och Excel normalt sköts automatiskt. Dålig kod kan orsaka "Out of Memory Exeptions" men då är lösningen att skriva om den dåliga koden. Om din dator har lite minne kan det finnas ett behov av att tidigt förstöra objekt och om din Klassmodul innehåller resurser utanför VBA och Excel finns det ett behov av att frigöra dessa resurser så att inte minnesläckage uppstår.

När vi skapar en klass (Klassmodul) deklarerar vi normalt alla variabler som privata (private) så att endast egenskaper och metoder inom klassen kan sätta och hämta värden avseende dessa variabler. I en klass (Klassmodul) anger vi publika egenskaper (properties) som kan anropas utanför klassen för att sätta och hämta värden avseende de privata variablerna när vi inte behöver utföra omfattande operationer. I en klass (Klassmodul) anger vi publika metoder (Sub and Function) som kan anropas utanför klassen för att sätta och hämta värden avseende privata variabler när mer omfattande dataoperationer krävs. Metoder kan vara subrutiner (Sub) eller funktioner (Function) där subrutiner inte har till syfte att returnera värden medan funktioner syftar till att returnera värden.

När vi vill använda de egenskaper och metoder som finns i en klass (Klassmodul) måste vi skapa en ny instans av en klass och det gör vi med hjälp av nyckelordet "New" som kör " Class_Initialize" och allokerar objektet i minnet.

Så använder du Objektorienterad VBA programmering i Excel (OOP och VB6)

Använd mallen som ett praktiskt underlag när du vill arbeta strukturerat och spara tid. Börja med att ladda ner dokumentet och fyll sedan i uppgifter steg för steg utifrån din situation.

Mallen är extra relevant för områden som Excel, Programmering. Anpassa formuleringar och villkor så att dokumentet passar dina behov innan du delar eller skriver under.

  • Kontrollera att namn, datum och avtalsdelar är korrekta.
  • Uppdatera texten så att den matchar ditt aktuella ärende.
  • Spara en egen kopia för framtida uppföljning.

Tillgängliga filformat: ZIP.

Objektorienterad VBA programmering i Excel (OOP och VB6) - användning och tips

Söker du efter vba programmering? Här hittar du en gratis mall som är enkel att ladda ner, anpassa och använda direkt i praktiken.

Gå igenom texten innan användning, justera innehållet efter din situation och spara en uppdaterad version för framtida behov.

Vanliga frågor om Objektorienterad VBA programmering i Excel (OOP och VB6)

Kan jag redigera mallen? Ja, du kan redigera innehållet så att det passar dina uppgifter och krav.

Är mallen gratis att ladda ner? Ja, nedladdningen är kostnadsfri och du hittar filen under sektionen Nedladdningar.

Nedladdningar

Taggar

ExcelProgrammering

Relaterade mallar

Kommentarer