Cómo establecer la etiqueta de alineación de los ejes del gráfico?

Tengo que hacer los gráficos de columnas en Excel con VBA (ninguna entrada de usuario).

Quiero dar formato a las etiquetas del eje x de modo que la alineación de cada etiqueta se convierte en -270 grados. Esto se puede hacer manualmente cambiando el «Custom ángulo» de la propiedad en la «Alineación» de la ficha «Formato de Ejes de Diálogo».

He grabado una macro de Excel pero no parece ser la grabación de la alineación de paso.

InformationsquelleAutor Kshitij | 2009-01-05

3 Kommentare

  1. 4

    Si usted está usando Excel 2007, trate de usar una versión anterior porque de 2007 de la grabadora de macros es un poco paralizado.

    Esto es lo que tengo:

    ActiveSheet.ChartObjects("Chart 1").Activate
    ActiveChart.Axes(xlCategory).Select
    Selection.TickLabels.Orientation = xlUpward
    • Que hizo el truco 🙂 muchas Gracias. (… y pensar que tenía miedo de que una opción puede no existir)
    • Gracias @artelius, me encontré con el mismo problema con Excel 2007.
    • Se puede simplificar a: ActiveSheet.ChartObjects("Chart 1").Chart.Axes(xlCategory).TickLabels.Orientation = xlUpward y evitar la activación y selección, lo que mejora el rendimiento y deja el contenido del portapapeles solo.
    • Exactamente el mismo problema aquí también. Muchas gracias.
  2. 0

    Acerca de .Activar

    De la vieja escuela de las macros de VBA a menudo conducen a la gente a pensar que usted tiene para «activar» y el objeto para hacerlo «actual». Como usted haga clic en una representación gráfica y todo lo que haces con el ratón y el teclado es recibido por el objeto activado. El «generador de macros» para el de Microsoft Office productos es el culpable de este estilo de codificación.

    Sin embargo, en el mundo de la programación de VBA o el uso de la API de Office;s de C# o de otros lenguajes populares — que no es como debe ser.

    Para modificar un objeto de gráfico de línea, etc, que puede operar sobre el objeto en sí mismo por su objeto de referencia. Una vez obtenidos, se puede acceder a todos los métodos y propiedades y de «activación» no es parte del concepto. Si por alguna razón realmente quiere tener el objeto de recibir un poco de enfoque para que el usuario los vea — los objetos visuales que normalmente tienen un «Activate()» función de llamada.

    En este ejemplo, el ancho de línea de varias series de un gráfico se establece en 1:

    Sub Change_all_charts()
        Dim ch As chart
        Dim ws As Worksheet
        Dim ChtObj As ChartObject
        Dim srs As Series
    
        'Get a reference to the active worksheet
        Set ws = ActiveSheet
    
        'Loop each chart object in worksheet ws
        For Each ChtObj In ws.ChartObjects
    
            'Operate on 'ChtObj.chart' object using . notation
            With ChtObj.chart
                Debug.Print "Chart being modified: '" & .Name & "'"
                'Loop through all series in the chart .Series collection
                For Each srs In .SeriesCollection
                    Debug.Print "  Series being modified: '" & srs.Name & "'"
                    'Set the series line width
                    srs.Format.Line.Weight = 1
                Next
            End With
        Next
    End Sub

    En los viejos días (o incluso todavía financiera que las personas hacen de programación de Excel y hacer que sus hojas de trabajo de flash y animar como locos porque piensan y objeto que se necesita para recibir el «foco» para ser modificado.

    Bueno, ahora que se ha dicho lo que ha sido «molestando» a mí durante los últimos 40 años.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea