Excel 単位表示 - eiichiromomma/CVMLAB GitHub Wiki
Excel) 単位表示
(予算や決算の内訳グラフで[単位:千円]とかする方法
DisplayUnitLabel
Excelの標準のグラフ機能では数値軸の脇に[%]とか単位だけ記入できない。 マクロのヘルプを探しているとDisplayUnitLabelなるプロパティがあり、例として
With Charts("Chart1").Axes(xlValue).DisplayUnitLabel
.Caption = "百万"
.AutoScaleFont = False
End With
があった。 試しに
Sub 単位挿入()
With ActiveSheet.ChartObjects(1).Chart.Axes(xlValue).DisplayUnitLabel
.Caption = "百万"
.AutoScaleFont = False
End With
End Sub
みたいなマクロを書いてみたがエラー。
DisplayUnit
実はDisplayUnitLabelはDisplayUnitのオマケみたいなものだったことが後で判明。
With Charts("Chart1").Axes(xlValue)
.DisplayUnit = xlHundreds
.HasTitle = True
.AxisTitle.Caption = "割引合計"
End With
が例にあるので
Sub 単位挿入()
With ActiveSheet.ChartObjects(1).Chart.Axes(xlValue)
.DisplayUnit = xlHundreds
.HasTitle = True
.AxisTitle.Caption = "割引合計"
With .DisplayUnitLabel
.Caption = "百万"
.AutoScaleFont = False
End With
End With
End Sub
とすると
今度は上手くいった。 どうやらDisplayUnitでxlNone、xlHundreds、xlThousands、xlTenThousands、xlHundredThousands、xlMillions、xlTenMillions、xlHundredMillions、xlThousandMillions、xlMillionMillions、xlCustomが指定できるらしい。 ではDisplayUnitLabelを指定しないとどうなるのかと思い
Sub 単位挿入()
With ActiveSheet.ChartObjects(1).Chart.Axes(xlValue)
.DisplayUnit = xlHundreds
.HasTitle = True
.AxisTitle.Caption = "割引合計"
'With .DisplayUnitLabel
' .Caption = "百万"
' .AutoScaleFont = False
'End With
End With
End Sub
としてみる。
「百」ですか。。。 英語版だとHundredsとか出るのかも知れないが、こんなグラフは見た事がない。 単純に単位だけ書きたい場合は以下のようにすると良いだろう。
Sub 単位挿入()
With ActiveSheet.ChartObjects(1).Chart.Axes(xlValue)
.DisplayUnit = xlCustom
.DisplayUnitCustom = 1
.HasTitle = True
.AxisTitle.Caption = "割引合計"
With .DisplayUnitLabel
.Caption = "[%]"
.AutoScaleFont = False
.Orientation = 0
End With
End With
End Sub
とすれば1で割って(何もしない)、単位に[%]と書ける。ちなみにOrientation=0が無いと縦書きになり[%]が縦に並ぶ。