Jak utworzyć makro języka VBA dodające etykiety tekstowe do punktów danych wykresu xy (punktowego) lub wykresu bąbelkowego w programie Excel

Streszczenie

W programie Microsoft Excel nie ma żadnego wbudowanego polecenia, które automatycznie dołączałoby etykiety tekstowe do punktów danych na wykresie xy (punktowym) lub bąbelkowym. W tym celu można jednak użyć makra języka Microsoft Visual Basic for Applications. W tym artykule przedstawiono przykładowe makro, które wykonuje to zadanie w odniesieniu do wykresu xy (punktowego). Tego samego kodu można jednak użyć w odniesieniu do wykresu bąbelkowego.

Więcej informacji

Firma Microsoft podaje przykłady programowania wyłącznie do celów informacyjnych, bez jakichkolwiek gwarancji wyrażonych wprost lub dorozumianych. To dotyczy także, ale bez ograniczania do tego zapisu, gwarancji odnośnie do przydatności handlowej lub do określonego celu. W tym artykule zakłada się, że czytelnik zna prezentowany język programowania oraz narzędzia używane do tworzenia i debugowania procedur. Pracownicy Pomocy technicznej firmy Microsoft mogą służyć pomocą, wyjaśniając funkcję konkretnej procedury. Nie będą jednak modyfikować tych przykładów ani dodawać żadnej funkcji i konstruować nowych procedur w celu dostosowania ich do konkretnych potrzeb użytkownika. W przykładowym kodzie zamieszczonym w tym artykule przyjęto założenie, że dane i związane z nimi etykiety są rozmieszczone w arkuszu w następujący sposób:
  • Pierwsza kolumna zawiera etykiety danych.
  • Druga kolumna zawiera wartości x wykresu xy (punktowego).
  • Trzecia kolumna i następne zawierają wartości y wykresu xy (punktowego).
Uwaga: Wprawdzie podany przykład zawiera jedynie jedną kolumnę danych dla wartości y, ale można użyć większej liczby serii danych.

Aby użyć makra z tego artykułu, utwórz wykres, korzystając z następujących danych:

A1: Etykiety B1: Wartości X C1: Wartości Y
A2: PunktDanych1 B2: 12 C2: 5
A3: PunktDanych2 B3: 9 C3: 7
A4: PunktDanych3 B4: 5 C4: 3
A5: PunktDanych4 B5: 4 C5: 8
A6: PunktDanych5 B6: 1 C6: 4
Uwaga: Tabela nie powinna zawierać pustych kolumn, a kolumna zawierająca etykiety danych nie powinna być oddzielona od kolumny zawierającej wartości x. Etykiety i wartości muszą być rozmieszczone dokładnie tak, jak opisano w artykule. (Lewa górna komórka nie musi być komórką A1).

Aby dołączyć etykiety tekstowe do punktów danych wykresu xy (punktowego), wykonaj następujące kroki:
  1. W arkuszu zawierającym przykładowe dane zaznacz zakres komórek B1:C6.
  2. W programie Microsoft Office Excel 2003 i we wcześniejszych wersjach programu Excel wykonaj następujące kroki:
    1. W menu Wstaw kliknij polecenie Wykres.
    2. W oknie dialogowym Kreator wykresów - Krok 1 z 4 - Typ wykresu kliknij kartę Standardowe typy. W obszarze Typ wykresu kliknij pozycję XY (Punktowy), a następnie kliknij przycisk Dalej.
    3. W oknie dialogowym Kreator wykresów - krok 2 z 4 – Źródło danych kliknij kartę Zakres danych. W obszarze Serie w kliknij opcję Kolumny, a następnie kliknij przycisk Dalej.
    4. W oknie dialogowym Kreator wykresów - Krok 3 z 4 – Opcje wykresu kliknij przycisk Dalej.
    5. W oknie dialogowym Kreator wykresów - krok 4 z 4 – Położenie wykresu kliknij opcję Jako nowy arkusz, a następnie kliknij przycisk Zakończ.
    W programie Microsoft Office Excel 2007 wykonaj następujące kroki:
    1. Kliknij kartę Wstawianie, kliknij przycisk Punktowy w grupie Wykresy, a następnie wybierz typ.
    2. Na karcie Projektowanie kliknij przycisk Przenieś wykres w grupie Lokalizacja, kliknij przycisk Nowy arkusz, a następnie kliknij przycisk OK.
  3. Naciśnij klawisze ALT+F11, aby uruchomić Edytor Visual Basic.
  4. W menu Insert kliknij polecenie Module.
  5. Wpisz następujący kod w arkuszu modułu:
    Sub AttachLabelsToPoints()

    'Dimension variables.
    Dim Counter As Integer, ChartName As String, xVals As String

    ' Disable screen updating while the subroutine is run.
    Application.ScreenUpdating = False

    'Store the formula for the first series in "xVals".
    xVals = ActiveChart.SeriesCollection(1).Formula

    'Extract the range for the data from xVals.
    xVals = Mid(xVals, InStr(InStr(xVals, ","), xVals, _
    Mid(Left(xVals, InStr(xVals, "!") - 1), 9)))
    xVals = Left(xVals, InStr(InStr(xVals, "!"), xVals, ",") - 1)
    Do While Left(xVals, 1) = ","
    xVals = Mid(xVals, 2)
    Loop

    'Attach a label to each data point in the chart.
    For Counter = 1 To Range(xVals).Cells.Count
    ActiveChart.SeriesCollection(1).Points(Counter).HasDataLabel = _
    True
    ActiveChart.SeriesCollection(1).Points(Counter).DataLabel.Text = _
    Range(xVals).Cells(Counter, 1).Offset(0, -1).Value
    Next Counter

    End Sub
  6. Naciśnij klawisze ALT+Q, aby wrócić do programu Excel.
  7. Przejdź do arkusza wykresu.
  8. W programie Microsoft Office Excel 2003 i wcześniejszych wersjach programu Excel wskaż polecenie Makro w menu Narzędzia, a następnie kliknij polecenie Makra. Kliknij makro AttachLabelsToPoints, a następnie kliknij przycisk Uruchom, aby uruchomić makro.

    W programie Excel 2007 kliknij kartę Deweloper, kliknij przycisk Makra w grupie Kod, zaznacz pozycję AttachLabelsToPoints, a następnie kliknij przycisk Uruchom.
Makro dołączy etykiety z komórek A2:A6 do punktów danych na wykresie.
Właściwości

Identyfikator artykułu: 213750 — ostatni przegląd: 22.11.2007 — zmiana: 1

Opinia