API (VBA) リファレンス
方針
ここでは、利用者が直接実行するマクロ と 内部補助関数 を分けて整理します。
1. ユーザー向けマクロ
ShowYAxisTicksAndLabels()
Y 軸を表示状態にし、内向き目盛りと目盛りラベルを有効化します。
依存
Range("FontSize")ActiveChart
主な作用
Y 軸表示
グリッド線オフ
目盛り内向き化
目盛り文字の太字化
ShowXAxisTicksAndLabels()
X 軸を表示状態にし、内向き目盛りとラベルを有効化します。
依存
Range("FontSize")ActiveChart
Convert2VerticalBars()
2 列データ (x, y) を、縦棒描画しやすい並びに変換します。
入力
ユーザーが選択する入力範囲
ユーザーが選択する出力先左上セル
出力イメージ
各点について (x,0) と (x,y) を並べて出力します。
ChangeDataLines()
選択中グラフの全系列を散布図化し、黒線・マーカーなしに変更します。
用途
Excel が自動で付けた見た目を簡素化したいとき
ConvertScientificNotation()
セル中の指数表記を 10^{} 形式に変換します。
対応例
1E+3→10^{3}3.2E-5→3.2×10^{-5}
注意
セル値そのものが文字列に置き換わります。
AddXDataLabels()
AddDataLabels のラッパーです。ラベル位置を下側に指定します。
AddYDataLabels()
AddDataLabels のラッパーです。ラベル位置を左側に指定します。
AddDataLabels(labelPosition As XlDataLabelPosition, labelText As String)
X, Y, ラベルの 3 列データから、新しい散布図系列を追加し、各点にラベルを付けます。
入力
3 列の選択範囲
1 列目: X
2 列目: Y
3 列目: ラベル
対象グラフの選択
内部仕様
新系列を
SeriesCollection.NewSeriesで作成マーカーは
+^{}/_{}を簡易解釈して上付き・下付き適用
制約
複雑な複数段の数式表現には未対応
グラフをクリックするまで待機する実装
CopyChartAsBitmap()
アクティブグラフをビットマップ形式でコピーし、A1 に貼り付けます。
注意
貼り付け先が
Range("A1")固定
CopyChartAsVector()
アクティブグラフを xlPicture でコピーし、A1 に貼り付けます。
ResizeChartFromCells()
名前付きセル width, height を使って、選択グラフのサイズを変更します。
依存
Range("width")Range("height")
InsertFormattedTextInChart()
グラフ内にテキストボックスを追加し、一部文字を上付き・下付きに設定します。
現状
文字列
3x105sを固定で挿入試作・サンプル用途の性格が強い
MoveLegendToTopInsidePlotArea()
凡例をプロットエリア内上部へ移動します。
AddAxisLabels()
X/Y 軸タイトルを追加します。
現状の既定値
X軸ラベルY軸ラベル
AdjustPlotAreaAndAddAxisLabels()
プロットエリア位置を調整したうえで、軸タイトルを追加します。
ChangeLineWidth()
プロットエリア枠線および軸線の太さを設定します。
依存
PlotAreaLineWidthScaleLineWidth
RemoveChartAndPlotAreaFill()
グラフエリアとプロットエリアの塗りつぶしを削除します。
ChangeFont()
グラフ全体の文字を Arial・太字・指定サイズにそろえます。
対象
タイトル
軸目盛り
軸タイトル
データラベル
凡例
依存
FontSize
ChangeScaleBars()
主目盛り・副目盛りや枠線をまとめて設定します。
注意
MajorGridlines/MinorGridlinesの存在を暗黙に前提にしているため、グラフ種別によっては注意が必要です。
RemoveMajorGridlines()
X/Y 軸の主グリッド線を非表示にします。
AdjustChartLayout()
凡例位置、プロットエリア配置、軸タイトル、データラベル文字サイズなどを一括調整します。
CustomizeActiveChart()
選択中グラフを簡易整形します。
現状の既定値
背景透明
凡例下部
タイトル
学会向けグラフ軸タイトル
X軸 (単位)/Y軸 (単位)
CustomizeAllChartsOnSheet()
アクティブシート内の全チャートに CustomizeChart を適用します。
CustomizeChart(cht As chart)
グラフ 1 個に対する共通整形処理です。
SetYTicsPosition()
xmin, xmax を読み取り、X 軸の交点と表示範囲を設定します。
依存
xminxmax
備考
名前からは Y 軸操作に見えますが、実際には X 軸側の範囲と交点 を扱っています。
SetXTicsPosition()
ymin, ymax を読み取り、Y 軸の交点と表示範囲を設定します。
依存
yminymax
備考
名前からは X 軸操作に見えますが、実際には Y 軸側の範囲と交点 を扱っています。
FixDataColors()
系列の線色、マーカー塗りつぶし色、枠線色、スタイル、サイズを再設定して固定します。
用途
Excel が色を勝手に変えたり、貼り付け後に見た目が崩れるのを抑えたいとき
ShowModifyGraphForm()
ユーザーフォーム ModifyGraph を表示します。
2. 補助関数
GetActiveChart() As chart
ActiveChart を返します。選択されていない場合はメッセージを出します。
GetCellValue(cellName As String, Optional sheetName As String = "") As Variant
指定セル名の値を返します。必要ならシート名指定が可能です。
GetWorksheet(Optional sheetName As String = "") As Worksheet
指定名のワークシート、またはアクティブシートを返します。
GetChart() As chart
選択中チャートを返す意図の関数です。
警告
実装では Set GetSelectedChart = selectedChart となっており、関数名 GetChart と戻り値代入名が一致していません。これはバグ候補です。
3. フォームイベント
ModifyGraph.AddXLabels_Click()
フォーム上のボタンから AddXDataLabels を呼び出します。
4. 保守上の注意点
命名ゆれ
FontSizeとfontsizeGetActiveChartとGetChartSetXTicsPosition/SetYTicsPositionの意味と実処理のずれ
暗黙の Variant 依存
Option Explicit がなく、未宣言変数に依存している箇所があります。長期保守では不具合原因になりやすいです。
直接 UI に依存
ActiveChartActiveSheetSelectionInputBox
このため、処理の再利用性や自動化はやや低いです。