「頑張ってたくさんグラフを作ったぞ!」
「しまった!軸の表示形式が間違ってる!」
こんなとき、わざわざひとつひとつのグラフをポチポチやって修正している人は多いのではないでしょうか?
この記事では、そんな状況を一瞬で解決する方法をご紹介しています。
例があったほうがイメージしやすいと思いますので、今回は複数のグラフの縦軸表示形式を【標準】から【指数】に一括変更する作業を実演していきます。
もちろん、応用すれば線の色を変えたり、マーカーをつけたり外したりといろいろなことができるようになります。
非常に簡単ですので、ぜひ一緒にやってみましょう。
紹介するスキルの概要説明
まずはじめに今回の記事で紹介する内容を画像を使って簡単にご説明しておきます。
今回は以下のようにシート上にある複数のグラフの縦軸表示形式を現状の【標準】から【指数】形式にVBAを使って一括変更していきます。
VBAを実行すると一瞬で以下のように変化します。
あなたのやりたいことと一致していればぜひ続きをご覧ください。
VBAを使えるようにしておく
今回紹介するスキルはVBAを使用します。
VBAを使ったことがないという方は以下の記事を参考に、VBAが使える状況にしておきましょう。
【初心者用】エクセルマクロ(VBA)の始め方を詳細解説 – ヒガサラblog
※VBAとは、エクセルにあらかじめ備わっている機能です。
ある設定をするだけで、特別なソフトのインストールは必要ありません。
準備がととのった方はいよいよコードを記述していきます。
グラフの形式を一括変更するVBAコード
早速ですが、先ほど紹介した作業を一瞬で行ってくれるVBAコードをご紹介します。
◆グラフの縦軸表示形式を一括変更するVBAコード
Sub change_axis_index()
Dim i As Integer
For i = 1 To 4
ActiveSheet.ChartObjects(i).Activate
ActiveChart.Axes(xlValue).Select
Selection.TickLabels.NumberFormatLocal = "0.00E+00"
Next
End Sub
たったのこれだけです。
作業内容を簡単に説明しておきましょう。
◆コードの解説
エクセルシート上のグラフにはそれぞれ番号が振られており、各グラフはその番号を使って指名することができます。
今回の例でいうと【ActiveSheet.ChartObjects(i).Activate】の部分です。
指名されたグラフは
ActiveChart.Axes(xlValue).Select
Selection.TickLabels.NumberFormatLocal = “0.00E+00”
という処理によって、縦軸の表示形式が指数形式に変更されます。
この処理を i=1からi=4まで繰り返すことでシート上にある4つのグラフの形式を順番にすべて変更することができるというわけです。
また、実行するうえでの注意点があるのでそちらもご紹介していきます。
◆コード実行の際の注意点
例えば、先ほどのコードは4つのグラフを一括変更するコードでしたが、以下のように4つ以上グラフがあったときにどうなるか見てみましょう。
この状態で先ほどのコードを実行すると以下のような結果になりました。
左上から処理が実行されていることがわかります。
仮に右側のグラフだけを変更したい場合は、一度別のシートに移動させてからVBAコードを実行し、形式が変わったのちに再び張り付けるようにしましょう。
(このコードは今いるシート上にあるグラフだけに適用されるようになっていますので。)
おわりに
というわけで今回はエクセルシート上にある複数のグラフに対して、同一の処理を一括適用する方法をご紹介しました。
知っておくだけで、面倒な作業を大幅削減できるはずです。
このように私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
・日々の残業時間を減らしたい。
・業務をもっと効率的にこなしたい。
・もっと勉強する時間を作りたい。
こんな思いを持っている人は、ぜひ他の記事も見てみてくださいね。
(ブックマークしていただけると嬉しいです。)
この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
それではまた!
コメント