VBA-diagrammer | Eksempler på å legge til diagram ved hjelp av VBA-kode

Excel VBA-diagrammer

Diagrammer kan betegnes som objekter i VBA, i likhet med regnearket, kan vi også sette inn diagrammer i VBA på samme måte, først velger vi dataene og diagramtypen vi ønsker for ut data, nå er det to forskjellige typer diagrammer vi gir en er det innebygde diagrammet der diagrammet er i samme dataark, og et annet er kjent som diagrammet der diagrammet er i det separate dataarket.

I dataanalyse er visuelle effekter nøkkelindikatorene til personen som har gjort analysen. Visual er den best mulige måten en analytiker kan formidle sitt budskap på. Siden vi alle er utmerkede brukere, bruker vi vanligvis mye tid på å analysere dataene og trekke konklusjoner med tall og diagrammer. Å lage et diagram er kunsten å mestre, og jeg håper du har god kunnskap om å lage diagrammer med excel. I denne artikkelen vil vi vise deg hvordan du lager kart ved hjelp av VBA-koding.

Hvordan legge til diagrammer ved hjelp av VBA-kode i Excel?

Du kan laste ned denne Excel-malen for VBA-diagrammer her - VBA-diagrammer for Excel

# 1 - Opprett diagram ved hjelp av VBA-koding

For å lage et diagram, bør vi ha en slags numeriske data. For dette eksemplet skal jeg bruke eksemplene nedenfor.

Ok, la oss hoppe til VBA-redaktør.

Trinn 1: Start underprosedyre.

Kode:

 Sub Charts_Example1 () End Sub 

Trinn 2: Definer variabelen som diagram.

Kode:

 Sub Charts_Example1 () Dim MyChart Som Chart End Sub 

Trinn 3: Siden diagrammet er en objektvariabel, må vi sette den.

Kode:

 Sub Charts_Example1 () Dim MyChart As Chart Set MyChart = Charts.Add End Sub 

Ovennevnte kode legger til et nytt ark som et diagramark, ikke som et regneark.

Trinn 4: Nå må vi designe diagrammet. Åpne med uttalelse.

Kode:

 Sub Charts_Example1 () Dim MyChart Som Diagram Sett MyChart = Charts. Legg til med MyChart End With End Sub 

Trinn 5: Det første  med diagrammet vi trenger å gjøre er å sette kildområdet ved å velge "Angi kildedata " -metoden.

Kode:

 Underdiagrammer_eksempel1 () Dim MyChart som diagram Sett MyChart = Diagrammer. Legg til med MyChart. SetSourceData Slutt med End Sub 

Trinn 6: Her må vi nevne kildeområdet. I dette tilfellet er kildeområdet mitt i arket kalt “Sheet1” og området er “A1 til B7”.

Kode:

 Sub Charts_Example1 () Dim MyChart Som diagram Sett MyChart = Charts.Add With MyChart .SetSourceData Sheets ("Sheet1"). Range ("A1: B7") Slutt med End Sub Sub 

Trinn 7: Neste må vi velge hvilken type diagram vi skal lage. For dette må vi velge Chart Type- egenskap.

Kode:

 Sub Charts_Example1 () Dim MyChart Som diagram Sett MyChart = Charts. Legg til med MyChart .SetSourceData Sheets ("Sheet1"). Område ("A1: B7"). ChartType = End With End Sub 

Trinn 8: Her har vi en rekke diagrammer. Jeg skal velge " xlColumnClustered " -diagrammet.

Kode:

 Sub Charts_Example1 () Dim MyChart As Chart Set MyChart = Charts.Add With MyChart .SetSourceData Sheets ("Sheet1"). Range ("A1: B7"). ChartType = xlColumnClustered End With End Sub 

OK, la oss for øyeblikket kjøre koden ved hjelp av F5-tasten eller manuelt og se hvordan diagrammet ser ut.

Trinn 9: Endre nå andre egenskaper i diagrammet. For å endre karttittelen nedenfor er koden.

Som dette har vi mange egenskaper og metoder med diagrammer. Bruk hver enkelt av dem til å se virkningen og lære.

 Sub Charts_Example1() Dim MyChart As Chart Set MyChart = Charts.Add With MyChart .SetSourceData Sheets("Sheet1").Range("A1:B7") .ChartType = xlColumnClustered .ChartTitle.Text = "Sales Performance" End With End Sub 

#2 – Create a Chart with Same Excel Sheet as Shape

To create the chart with the same worksheet (datasheet) as shape we need to use a different technique.

Step 1: First Declare threes Object Variables.

Code:

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

Step 2: Then Set the Worksheet reference.

Code:

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

Step 3: Now set the range object in VBA

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") 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