VBA-diagram

Excel VBA-diagram

Diagram kan betecknas som objekt i VBA, liknar kalkylbladet, vi kan också infoga diagram i VBA på samma sätt, först väljer vi data och diagramtyp vi vill ha för utdata, nu finns det två olika typer av diagram vi tillhandahåller är det inbäddade diagrammet där diagrammet finns i samma datablad och ett annat är känt som diagrammet där diagrammet finns i det separata databladet.

I dataanalys är visuella effekter nyckelindikatorerna för den person som har gjort analysen. Visuals är det bästa möjliga sättet som en analytiker kan förmedla sitt budskap. Eftersom vi alla är utmärkta användare tillbringar vi vanligtvis mycket tid på att analysera data och dra slutsatser med siffror och diagram. Att skapa ett diagram är konsten att behärska och jag hoppas att du har god kunskap om att skapa diagram med excel. I den här artikeln visar vi dig hur du skapar diagram med VBA-kodning.

Hur lägger jag till diagram med VBA-kod i Excel?

Du kan ladda ner denna Excel-mall för VBA-diagram här - Excel-mall för VBA-diagram

# 1 - Skapa diagram med VBA-kodning

För att skapa ett diagram borde vi ha någon form av numeriska data. För det här exemplet ska jag använda nedanstående exempeldata.

Okej, låt oss hoppa till VBA-redaktör.

Steg 1: Starta underproceduren.

Koda:

 Underdiagram_Exempel1 () Avsluta sub 

Steg 2: Definiera variabeln som diagram.

Koda:

 Sub Charts_Example1 () Dim MyChart som diagram End Sub 

Steg 3: Eftersom diagrammet är ett objekt variabel vi behöver Set det.

Koda:

 Sub Charts_Example1 () Dim MyChart som diagram Ställ in MyChart = Charts. Lägg till End Sub 

Ovanstående kod lägger till ett nytt ark som ett diagramblad, inte som ett kalkylblad.

Steg 4: Nu måste vi utforma diagrammet. Öppna med uttalande.

Koda:

 Underdiagram_Exempel1 () Dim MyChart som diagram Ställ in MyChart = Diagram. Lägg till med MyChart End med End Sub 

Steg 5: Det första  med diagrammet vi behöver göra är att ställa in källområdet genom att välja "Set Source Data" -metoden.

Koda:

 Underdiagram_Exempel1 () Dim MyChart som diagram Ställ in MyChart = Diagram. Lägg till med MyChart. SetSourceData Avsluta med End Sub 

Steg 6: Här måste vi nämna källområdet. I det här fallet finns mitt källområde i arket som heter "Sheet1" och intervallet är "A1 till B7".

Koda:

 Sub Charts_Example1 () Dim MyChart som diagram Ställ in MyChart = Charts.Add With MyChart .SetSourceData Sheets ("Sheet1"). Range ("A1: B7") Avsluta med End Sub 

Steg 7: Därefter måste vi välja vilken typ av diagram vi ska skapa. För detta måste vi välja diagramtypegenskap .

Koda:

 Underdiagram_Exempel1 () Dim MyChart som diagram Ställ in MyChart = Diagram. Lägg till med MyChart .SetSourceData Sheets ("Sheet1"). Område ("A1: B7"). ChartType = End With End Sub 

Steg 8: Här har vi en mängd olika diagram. Jag ska välja " xlColumnClustered " -diagrammet.

Koda:

 Underdiagram_Exempel1 () Dimma MyChart som diagram Ställ in MyChart = Diagram. Lägg till med MyChart .SetSourceData Sheets ("Sheet1"). Område ("A1: B7"). ChartType = xlColumnClustered End With End Sub 

Okej, låt oss nu köra koden med F5-tangenten eller manuellt och se hur diagrammet ser ut.

Steg 9: Ändra nu andra egenskaper i diagrammet. För att ändra diagramtiteln nedan är koden.

Så här har vi många egenskaper och metoder med diagram. Använd var och en av dem för att se effekterna och lära dig.

 Underdiagram_Exempel1 () Dimma MyChart som diagram Ställ in MyChart = Diagram. Lägg till med MyChart .SetSourceData Sheets ("Sheet1"). Område ("A1: B7") .ChartType = xlColumnClustered .ChartTitle.Text = "Försäljningsprestanda" Avsluta med slutet av subundern 

# 2 - Skapa ett diagram med samma Excel-ark som form

För att skapa diagrammet med samma kalkylblad (datablad) som form måste vi använda en annan teknik.

Steg 1: Förklara först tre objektvariabler.

Koda:

 Sub Charts_Example2 () Dim Ws As Worksheet Dim Rng As Range Dim MyChart As Object End Sub 

Steg 2: Ställ sedan in arbetsbladets referens.

Koda:

 Underdiagram_Exempel2 () Dim Ws som kalkylblad Dim Rng som intervall Dim MyChart som objektuppsättning Ws = kalkylblad ("Sheet1") Avsluta sub 

Steg 3: Ställ nu in intervallobjektet i VBA

Koda:

 Sub Charts_Example2() Dim Ws As Worksheet Dim Rng As Range Dim MyChart As Object Set Ws = Worksheets("Sheet1") Set Rng = Ws.Range("A1:B7") End Sub 

Step 4: Now set the chart object.

Code:

 Sub Charts_Example2() Dim Ws As Worksheet Dim Rng As Range Dim MyChart As Object Set Ws = Worksheets("Sheet1") Set Rng = Ws.Range("A1:B7") Set MyChart = Ws.Shapes.AddChart2 End Sub 

Step 5: Now, as usual, we can design the chart by using the “With” statement.

Code:

 Sub Charts_Example2() Dim Ws As Worksheet 'To Hold Worksheet Reference Dim Rng As Range 'To Hold Range Reference in the Worksheet Dim MyChart As Object Set Ws = Worksheets("Sheet1") 'Now variable "Ws" is equal to the sheet "Sheet1" Set Rng = Ws.Range("A1:B7") 'Now variable "Rng" holds the range A1 to B7 in the sheet "Sheet1" Set MyChart = Ws.Shapes.AddChart2 'Chart will be added as Shape in the same worksheet With MyChart.Chart .SetSourceData Rng 'Since we already set the range of cells to be used for chart we have use RNG object here .ChartType = xlColumnClustered .ChartTitle.Text = "Sales Performance" End With End Sub 

This will add the chart below.

#3 – Code to Loop through the Charts

Like how we look through sheets to change the name or insert values, hide & unhide them. Similarly to loop through the charts we need to use chart object property.

The below code will loop through all the charts in the worksheet.

Code:

 Sub Chart_Loop() Dim MyChart As ChartObject For Each MyChart In ActiveSheet.ChartObjects 'Enter the code here Next MyChart End Sub 

#4 – Alternative Method to Create Chart

We can use the below alternative method to create charts. We can use the Chart Object. Add method to create the chart below is the example code.

This will also create a chart like the previous method.

Code:

 Sub Charts_Example3() Dim Ws As Worksheet Dim Rng As Range Dim MyChart As ChartObject Set Ws = Worksheets("Sheet1") Set Rng = Ws.Range("A1:B7") Set MyChart = Ws.ChartObjects.Add(Left:=ActiveCell.Left, Width:=400, Top:=ActiveCell.Top, Height:=200) MyChart.Chart.SetSourceData Source:=Rng MyChart.Chart.ChartType = xlColumnStacked MyChart.Chart.ChartTitle.Text = "Sales Performance" End Sub