【エクセルVBA】複数グラフを一括操作!軸の表示形式変更を例に実演!

f:id:yshgs_elec:20210201214246j:plain

「頑張ってたくさんグラフを作ったぞ!」

「しまった!軸の表示形式が間違ってる!」

こんなとき、わざわざひとつひとつのグラフをポチポチやって修正している人は多いのではないでしょうか?

 

この記事では、そんな状況を一瞬で解決する方法をご紹介しています。

 

例があったほうがイメージしやすいと思いますので、今回は複数のグラフの縦軸表示形式を【標準】から【指数】に一括変更する作業を実演していきます。

もちろん、応用すれば線の色を変えたり、マーカーをつけたり外したりといろいろなことができるようになります。

 

非常に簡単ですので、ぜひ一緒にやってみましょう。

スポンサーリンク

紹介するスキルの概要説明

まずはじめに今回の記事で紹介する内容を画像を使って簡単にご説明しておきます。

 

今回は以下のようにシート上にある複数のグラフの縦軸表示形式を現状の【標準】から【指数】形式にVBAを使って一括変更していきます。

複数のグラフの様式を一括操作するという作業概要の説明

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が処理する際にどのグラフから処理するのかを確認

この状態で先ほどのコードを実行すると以下のような結果になりました。

VBAが処理する際にどのグラフから処理するのかを確認した結果

左上から処理が実行されていることがわかります。

 

仮に右側のグラフだけを変更したい場合は、一度別のシートに移動させてからVBAコードを実行し、形式が変わったのちに再び張り付けるようにしましょう。

(このコードは今いるシート上にあるグラフだけに適用されるようになっていますので。)

 

スポンサーリンク

おわりに

というわけで今回はエクセルシート上にある複数のグラフに対して、同一の処理を一括適用する方法をご紹介しました。

知っておくだけで、面倒な作業を大幅削減できるはずです。

 

このように私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。

・日々の残業時間を減らしたい。

・業務をもっと効率的にこなしたい。

・もっと勉強する時間を作りたい。

こんな思いを持っている人は、ぜひ他の記事も見てみてくださいね。

(ブックマークしていただけると嬉しいです。)

この記事が役に立ったという方は、ぜひ応援よろしくお願いします。

↓ 応援ボタン

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

それではまた!

コメント

タイトルとURLをコピーしました