4

VBAのみを使用して(ユーザー入力なしで)Excelで縦棒グラフを作成する必要があります。

すべてのラベルの配置が-270度になるように、x軸のラベルをフォーマットしたいと思います。これは、[軸のフォーマット]ダイアログの[配置]タブで[カスタム角度]プロパティを変更することで手動で行うことができます。

マクロを記録しましたが、Excelが位置合わせステップを記録していないようです。

4

3 に答える 3

4

Excel 2007を使用している場合は、2007のマクロレコーダーが少し機能しなくなっているため、以前のバージョンを使用してみてください。

これは私が得たものです:

ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.Axes(xlCategory).Select
Selection.TickLabels.Orientation = xlUpward
于 2009-01-05T10:35:31.080 に答える
1
ActiveChart.Axes(xlCategory).TickLabels.Orientation = 67
于 2010-08-17T19:23:27.923 に答える
0

.Activateについて

古い学校の VBA マクロは、多くの場合、「アクティブ化」しなければならないと人々に考えさせ、それを「最新」にすることに反対します。グラフィック表現をクリックすると、マウスとキーボードで行うすべての操作が、アクティブ化されたオブジェクトによって受け取られるようになります。Microsoft Office製品の「マクロ ジェネレーター」は、このコーディング スタイルのせいです。

しかし、VBA プログラミングや Office API を使用する世界では、C# やその他の一般的な言語から、それを行うべきではありません。

チャート オブジェクト、線などを変更するには、オブジェクト参照によってオブジェクト自体を操作できます。取得すると、すべてのメソッドとプロパティにアクセスでき、「アクティベーション」は概念の一部ではありません。なんらかの理由で、実際にオブジェクトにフォーカスを与えてユーザーに表示させたい場合 — ビジュアル オブジェクトには通常、呼び出す "Activate()" 関数があります。

この例では、チャート内の複数の系列の線幅が 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

昔(または今でも)、金融関係者は Excel プログラミングを行い、ワークシートを狂ったように点滅させたりアニメーション化したりします。

さて、この 40 年間、私を「悩ませてきた」と言われてきました。

于 2019-07-18T10:27:01.963 に答える