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

Podsumowanie

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 tylko dla celów ilustracyjnych, nie udzielając żadnej rękojmi, wyrażonej wprost ani dorozumianej, w tym także, ale nie tylko, dorozumianej rękojmi co do przydatności handlowej lub do określonych celów. W tym artykule zakłada się, że czytelnik zna demonstrowany język programowania oraz narzędzia używane do tworzenia i debugowania procedur. Wykwalifikowani pracownicy Pomocy technicznej firmy Microsoft mogą pomóc w wyjaśnieniu działania określonej procedury. Nie będą oni jednak modyfikować tych przykładów w celu dodania funkcji ani konstruować nowych procedur celem dostosowania ich do 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: Labels B1: X Values C1: Y Values A2: DataPoint1 B2: 12 C2: 5 A3: DataPoint2 B3: 9 C3: 7 A4: DataPoint3 B4: 5 C4: 3 A5: DataPoint4 B5: 4 C5: 8 A6: DataPoint5 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 w takim formacie, jak opisano w tym 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 Insert (Wstaw) kliknij polecenie Chart (Wykres).

    2. W oknie dialogowym Chart Wizard - Step 1 of 4 - Chart Type (Kreator wykresów - Krok 1 z 4 - Typ wykresu) kliknij kartę Standard Types (Typy standardowe). W obszarze Chart type (Typ wykresu) kliknij opcję XY (Scatter) (XY [Punktowy]), a następnie kliknij przycisk Next (Dalej).

    3. W oknie dialogowym Chart Wizard - Step 2 of 4 - Chart Source Data (Kreator wykresów - Krok 2 z 4 - Źródło danych wykresu) kliknij kartę Data Range (Zakres danych). W obszarze Series in (Serie w) kliknij opcję Columns (Kolumny), a następnie kliknij przycisk Next (Dalej).

    4. W oknie dialogowym Chart Wizard - Step 3 of 4 - Chart Options (Kreator wykresów - Krok 3 z 4 - Opcje wykresu) kliknij przycisk Next (Dalej).

    5. W oknie dialogowym Chart Wizard - Step 4 of 4 - Chart Location (Kreator wykresów - Krok 4 z 4 - Lokalizacja wykresu) kliknij opcję As new sheet (Jako nowy arkusz), a następnie kliknij przycisk Finish (Zakończ).

    W programie Microsoft Office Excel 2007 wykonaj następujące kroki:

    1. Kliknij kartę Insert (Wstaw), kliknij opcję Scatter (Punktowy) w grupie Charts (Wykresy), a następnie wybierz typ.

    2. Na karcie Design (Projekt), kliknij opcję Move Chart (Przenieś wykres) w grupie Location (Lokalizacja), kliknij opcję New sheet (Nowy arkusz), a następnie kliknij przycisk OK.

  3. Naciśnij klawisze ALT+F11, aby uruchomić Edytor Visual Basic.

  4. W menu Insert (Wstaw) kliknij polecenie Module (Moduł).

  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 Excel 2003 i wcześniejszych wersjach programu Excel wskaż polecenie Makro w menu Narzędzia, a następnie kliknij polecenie Makra. Kliknij pozycję AttachLabelsToPoints, a następnie kliknij przycisk Uruchom, aby uruchomić makro.

    W programie Excel 2007 kliknij kartę the Deweloper, kliknij opcję Makro w grupie Kod, wybierz pozycję AttachLabelsToPoints, a następnie kliknij przycisk Uruchom.

Makro dołączy etykiety z komórek A2:A6 do punktów danych na wykresie.

Potrzebna dalsza pomoc?

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów firmy Microsoft

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×