Dotyczy
Excel dla Microsoft 365 dla komputerów Mac Excel 2024 dla komputerów Mac Excel 2021 dla komputerów Mac

Poniższa procedura języka VBA (Visual Basic for Applications) umożliwia używanie wartości komórek jako etykiet danych na wykresach w Excel dla komputerów Mac. Aby skorzystać z tej procedury, wykonaj następujące czynności:

  1. W programie Excel kliknij pozycję Narzędzia > makra> zarejestruj nowe makro.

  2. W polu listy rozwijanej Przechowuj makro w wybierz pozycję Skoroszyt makr osobistych.

    Uwaga: Przechowywanie procedury języka VBA w skoroszycie makr osobistych umożliwia korzystanie z niej w dowolnym wystąpieniu programu Excel. Oznacza to, że nie ogranicza się tylko do używania w jednym skoroszycie.

  3. Naciśnij przycisk OK.

  4. Przejdź do obszaru Narzędzia > makra, > zatrzymać rejestrowanie.

  5. Przejdź do obszaru Narzędzia > Makra > Redaktor Visual Basic.

  6. Redaktor Języka Visual Basic (VBE) zostanie otwarty powyżej programu Excel. W okienku nawigacji po lewej stronie rozwiń projekt VBA (PERSONAL). XLSB), aby wyświetlić moduł Module1.

  7. Kliknij dwukrotnie moduł1 , aby wyświetlić okienko Kod, które zostanie otwarte po prawej stronie okna VBE.

  8. Kod języka VBA utworzony podczas rejestrowania nowego makra nie jest konieczny, więc zaznacz to wszystko, a następnie naciśnij Delete

  9. Następnie zaznacz kod języka VBA w polu tekstowym poniżej, naciśnij CMD+C , aby go skopiować, a następnie wklej go z powrotem w okienku Kod za pomocą CMD+V. Teraz możesz zamknąć Redaktor Języka Visual Basic i wrócić do programu Excel.

  10. Przetestuj makro, tworząc wykres z etykietami danych. Następnie zaznacz dowolną etykietę danych na wykresie i uruchom makro, klikając pozycję Narzędzia > Makra > Makra. Wybierz pozycję SetCustomDataLabels, a następnie naciśnij przycisk Uruchom. Automatycznie zostanie wyświetlony monit o wybranie zakresu etykiet danych, więc zrób to, a następnie naciśnij przycisk OK.  

    Uwaga: Procedur języka VBA nie można cofnąć, dlatego warto wypróbować tę funkcję w kopii skoroszytu. Jeśli po uruchomieniu kodu nie chcesz zachowywać wyników, musisz zamknąć skoroszyt bez zapisywania go.

  11. Po zamknięciu programu Excel upewnij się, że chcesz zapisać zmiany w aplikacji OSOBISTE. XLSB, aby makro było dostępne w przyszłości.

  12. Za każdym razem, gdy chcesz dodać lub usunąć etykiety danych z wykresu, zaznacz etykiety danych i uruchom makro.

  13. Za pomocą programu Excel > Preferencje > Wstążki & pasku narzędzi można dodać przycisk uruchamiania makra ze wstążki lub paska narzędzi.

Procedura języka VBA

Option Explicit

Sub SetCustomDataLabels()
' make sure a series is selected
    If TypeOf Selection Is DataLabels Or TypeOf Selection Is Point Then
        Selection.Parent.Select
    ElseIf TypeOf Selection Is DataLabel Then
        Selection.Parent.Parent.Select
    End If

    If TypeOf Selection Is Series Then
        Else
        MsgBox "Select a chart series and try again."
        Exit Sub
    End If

    If Selection.HasDataLabels Then
        'If the data labels from cells are already showing, stop showing them and exit.
        'If labels include other info (e.g., values or categories) this will still appear
        If Selection.DataLabels.ShowRange Then
            Selection.DataLabels.ShowRange = False
            Exit Sub
        End If
    End If
 
'Use the InputBox dialog to set the range for the data labels
    On Error Resume Next
        Dim rng As Range
        Set rng = Application.InputBox(Prompt:="Select data label range.", Title:="Data Label Range", Type:=8)
    On Error GoTo 0

    If rng Is Nothing Then Exit Sub ' clicked cancel
        If Selection.HasDataLabels Then
            'This will include the new text from cells into existing data labels
        Else
        'Otherwise add data labels (empty labels)
            Selection.HasDataLabels = True
            Selection.DataLabels.ShowValue = False
        End If
    
    'Create a string that includes the sheet name and range reference.
    Dim rngAddress As String
        rngAddress = "='" & rng.Worksheet.Name & "'!" & rng.Address(RowAbsolute:=True, ColumnAbsolute:=True, External:=False)
        Selection.DataLabels.Format.TextFrame2.TextRange.InsertChartField msoChartFieldRange, rngAddress, 0
        Selection.DataLabels.ShowRange = True

End Sub

Potrzebujesz dodatkowej pomocy?

Zawsze możesz zadać pytanie ekspertowi w społeczności technicznej programu Excel lub uzyskać pomoc techniczną w Społecznościach.

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.