Attribute VB_Name = "Module1" Function UpotettujaKaavioita() As Long 1 UpotettujaKaavioita = ActiveSheet.ChartObjects.Count End Function Sub AktivoiKaavio(ByVal KaavioNo As Long) 1 If (KaavioNo <= UpotettujaKaavioita) And _ (KaavioNo > 0) Then 2 ActiveSheet.ChartObjects(KaavioNo).Activate 3 End If End Sub Private Function DPKpl(ByVal Sarja As Long) As Long 1 If ActiveChart.SeriesCollection.Count >= Sarja Then 2 DPKpl = ActiveChart.SeriesCollection(Sarja).Points.Count 3 End If End Function Private Sub SarjanDatapisteetNakyviin(ByVal Sarja As Long) 1 ActiveChart.SeriesCollection(Sarja).ApplyDataLabels End Sub Sub SarjanDataLabelsLihavointi() 'Rivillä 9 aktivoidaan kaavio, jotta voidaan toimia ActiveChart-objektiin 'Rivillä 10 selvitetään datasarjassa olevien datapisteiden lukumäärä ja otetaan tieto talteen PLkm-muuttujaan. 'Tämän muuttujan arvoa tarvitaan silmukassa myöhemmin (rivillä 13). 'Koodissa on käytetty jo aiemmin koodattua DataPisteitaKpl-funktiota. 'Koodin varsinainen toiminnallinen silmukka on riveillä 13-20. 'Rivin 14 ehtolauseessa verrataan käsiteltävän datapisteen tekstiä raja-arvoon ja toimitaan tämän mukaisesti. 'Jos ehto toteutuu, fontti lihavoidaan (rivi 15). 'Muussa tapauksessa lihavointi asetetaan pois päältä (rivi 17). On Error GoTo Loppu 1 Dim Lp As Long 2 Dim PLkm As Long 3 Dim KasSarja As Long 4 Dim RajaArvo As Long 5 Dim KaavioNo As Long 6 RajaArvo = 80 7 KasSarja = 1 8 KaavioNo = 2 9 AktivoiKaavio (KaavioNo) 10 PLkm = DPKpl(KasSarja) 11 If PLkm > 0 Then 12 Call SarjanDatapisteetNakyviin(KasSarja) 13 For Lp = 1 To PLkm 14 If ActiveChart.SeriesCollection(KasSarja).Points(Lp).DataLabel.Text > RajaArvo Then 15 ActiveChart.SeriesCollection(KasSarja).Points(Lp).DataLabel.Font.Bold = True 16 Else 17 ActiveChart.SeriesCollection(KasSarja).Points(Lp).DataLabel.Font.Bold = False 18 End If 19 Next Lp 20 End If Exit Sub Loppu: MsgBox "Virhe koodissa. Poista virheensieppaus, jotta löydät virhepaikan." End Sub