Excelグラフのタイトル位置をマクロ(VBA)で一発調整する!

スポンサードリンク

Excelで作ったグラフを調整している中で、グラフタイトルの位置をきれいに調整したいと思う場面に出くわしませんか?

このような要望がでるのは、1つのシートで複数のグラフを作成している時ではないでしょうか。

通常グラフのタイトルの位置は、マウスでドラッグして調整することになり、さじ加減ならぬマウス加減でその位置が決まってしまいます。このためいくつかあるグラフのタイトルを完全に同じにしようとするのは至難の業。頑張れば頑張った分だけ、きれいで、整ったグラフにはできますが、作業時間がかかってしょうがないですよね。

ということで、今回はこの「Excelグラフのタイトル位置の調整作業」を、効率よく、ささっと片付けてしまう方法を紹介していきます!

「Excelグラフのタイトル位置の調整作業」を効率よく行いたいあなた!是非この方法を参考にしてみてくださいね。

また、今回の問題に対処する方法は、以前紹介したグラフのy軸ラベルの位置を調整する方法の応用。見比べていただいて、なるほどこうやってサンプルを応用していくのかと、あなたの理解の助けになってくれればより一層幸せです。

このページの中では、今回紹介するExcelグラフの縦軸ラベル位置の調整機能を組み込んだExcelファイルをダウンロードできるようにしています。

これを使えば、一からExcelを作り込む必要もありませんよ。ファイルを手にした瞬間、作業スピードは一気に早まります!是非使ってみてくださいね。

では本編スタートです!

スポンサードリンク

『Excelグラフのタイトル位置を調整する』には?まずは問題を整理しよう!

今回解決するのはExcelグラフのタイトル位置を調整するという、一見地味ですが大変な労力を使う作業を、Excelにまかせて手軽に自動で終わらせるという課題。

下の図のように、グラフのタイトル位置が狂っていても一気に調整してしまいます。

この作業を手作業で行うには、

  • タイトルを選択
  • タイトルをドラッグし位置調整
  • タイトル位置同じ位置になるように、それぞれのグラフ上で、同じ操作を注意を払って実施
  • 全グラフを眺め、タイトル位置におかしな点がないか確認
  • おかしなものは再度修正

という手順をとるのが普通なのではないでしょうか。一つひとつの作業はさほど難しいものではありませんよね。しかし、複数のグラフでタイトルの位置を合わせるという作業、これが結構大変なんですよね~。

ではこの手順をExcelで自動化してしまいましょう!

『Excelグラフのタイトル位置を調整する』マクロの内容とは?

ここでは、Excelグラフのタイトル位置を調整するという作業をExcelに実施させるためにはどうすればよいかをみていきます。
一つひとつ手作業で行うには、上で書いた

  • タイトルを選択
  • タイトルをドラッグし位置調整
  • タイトル位置同じ位置になるように、それぞれのグラフ上で、同じ操作を注意を払って実施
  • 全グラフを眺め、タイトル位置におかしな点がないか確認
  • おかしなものは再度修正

という作業が必要でしたよね?

今回はこの手順をExcelのマクロ(VBA)をつかって自動で行っていくことにしましょう。Excelマクロで同じことを行うため、次の手順で処理を行わせます。

  1. 基本とするグラフのタイトルの上の位置データを取得
  2. 変更するグラフからプロットエリアの情報、タイトルの情報を取得
  3. 移動後のタイトルの位置を計算
  4. タイトルの位置データを変更
  5. 2~4を全グラフに対して実施

これをVBAで書けば、今回の「Excelグラフのタイトル位置を調整する」という作業は一発で一瞬で完了!しかも処理はプログラムした内容に従って、いつでも何度でも実施できるので、基準とするグラフがイマイチだった><なんてときにでも、気軽に再実行できます。

スポンサードリンク

あなたのグラフのクオリティーが上がっちゃいますね!

『Excelグラフのタイトル位置を調整する』作業をExcelで解決!

ではExcelグラフのタイトル位置を調整するという課題を解決する、具体的なマクロの記述をみていきましょう!VBAで書くとリストは次のようになります!

このマクロ実施前には、シート内のどのグラフでも構いませんので、タイトル位置を調整しておいてください。

このグラフを基本のグラフとして、タイトルが配置されている場所の上下の位置を読み取り、シート内の全てのグラフのタイトル上下位置をこれにあわせてしまいます。

なお、マクロ実行時には、タイトル位置を変更したグラフを選択した状態にしておいてくださいね。これで基本とするグラフを指示したことになります。

Attribute VB_Name = "Module1"
'**********************************************************
'** 仕事サクサク!定時退社のために EXCEL GO! GO!
'** (URL:https://excelgogo.net/)
'** 是非ご活用ください♪
'***********************************************************
Sub グラフタイトル位置を揃える()
Dim objChart As Object
Dim titleTop As Single
Dim titleWidth As Single
Dim plotareaWidth As Single
Dim plotareaLeft As Single
Dim a As Single, b As Single, c As Single, d As Single
'
On Error GoTo ErrorHandler
'
If ActiveChart Is Nothing Then
    MsgBox "基準にするグラフを選んでください"
    Exit Sub
End If
'
'選択したグラフのタイトルの情報を取得します
With ActiveChart.ChartTitle
    titleTop = .Top
End With

'全てのグラフのタイトルの情報を書き換えていきます
For Each objChart In ActiveSheet.ChartObjects
    'プロットエリアの情報を取得
    With objChart.Chart.PlotArea
        plotareaWidth = .Width
        plotareaLeft = .Left
    End With
    '
    'タイトルの情報を取得
    With objChart.Chart.ChartTitle
    titleWidth = .Width
    End With
    '
    'タイトル移動後の左端位置を計算
        'プロットエリア幅の中心からプロットエリア左端までの距離aを計算
            a = plotareaWidth / 2
        'プロットエリア幅の中心の位置bを計算
            b = plotareaLeft + a
        'タイトルの幅の半分の長さcを計算
            c = titleWidth / 2
        'プロットエリア幅の中心bからcだけ左の位置dを計算。これをタイトル移動後のLeftにする
            d = b - c
    'タイトルの左とトップの位置を書き換え
    With objChart.Chart.ChartTitle
        .Top = titleTop
        .Left = d
    End With
Next
'
ErrorHandler:
Exit Sub
'
End Sub

 

マクロの流れはこうなっています。

まず、選択した基本のグラフからタイトルの上の位置に関する情報を取得します。

次に変更するグラフから、タイトルの幅に関する情報、プロットエリアの左位置、幅に関する情報を取得し、これらを用いて移動後のタイトルの位置を決めて行きます。

タイトルの上下の位置は、はじめに取得した基本のグラフと同じにしますが、左右の位置は、タイトルの長さがどうあっても良いように一工夫。

プロットエリア幅の中心と、タイトル幅の中心が同じになるように設定することで、ラベルの文字数によらず、いつも中央に配置するようにします。

このマクロを実行すると、上の図でバラバラだったタイトルがほらこの通り!一発で修正完了です!

また、データをプロットしているプロットエリアの幅をグラフごとに取得し、これに合わせてタイトルの左右の位置を決めますので、プロットエリアの幅がまちまちの場合であっても、きれいに一発調整できますよ!

 

まとめ

今回は、『Excelグラフのタイトル位置を調整する』という問題をExcelのマクロをつかって自動化し、作業を効率化する方法を紹介しました。

1.基本とするグラフのタイトルの上の位置データを取得
2.変更するグラフからプロットエリアの情報、タイトルの情報を取得
3.移動後のタイトルの位置を計算
4.タイトルの位置データを変更
5.2~4を全グラフに対して実施

という手順で、操作を行うマクロにするところがポイントです。

下で紹介するExcelファイルも是非お使いくださいね。プログラムを書く時間も短縮できると思います。

また、余力があったら、グラフのy軸ラベル位置を変更するマクロとの違いもチェックしてみてくださいね。

y軸ラベルが.Axes(xlValue).AxisTitleで、グラフタイトルが.ChartTitleになっているだけということは、x軸ラベルを変えるにはきっとここを書き換えればいいんだ!とか、

.Leftは共通だな。ということは右の位置を取得したいときには.Rightか?といったようなひらめきにつながり、課題に合わせて自分で変更しやすくなれますよ。

 

ある機能をExcelで実現するとき、その方法は一つだけとは限りません。

ExcelVBAで使用できる機能をフルに使ってシンプルに作ることもできます。ただこれにはそれなりの勉強が必要。すぐには使えず、今すぐ問題を解決したいとい状況にはあいません。ですので、このブログで紹介するマクロは、できるだけ簡単なもの、VBAにそう詳しくなくても読めそうなもの、手を加えやすいものになるように心がけています。

マクロって難しそう、と敬遠していた方にマクロって意外とお手軽ね!と感じていただき、これを応用すればあの作業も自動化できるかも!と次のステップやアクションにつなげていただければと思います。

Excelのスキルを一気に向上させて、ライバルに差をつけたい、仕事を一気にさばいてスピードアップしたい、スキルを身に着けて転職や就職に役立てたいと思ったあなた!ぜひ下のボタンをクリックしてください!
募集締め切りが迫っているので、期間限定で「短期間で実力の向上が見込めるお手頃な方法」を紹介していますよ。

ホントは管理人Goも早く知りたかった!オンラインブートキャンプで、
見やすいデータをより早く仕上げる Excel術をマスターしよう!

 

『Excelグラフの縦軸ラベル位置を調整』できるExcelマクロをプレゼント

今回紹介した

  • 基本となるグラフからy軸ラベルに関する情報を取得
  • 基本となるグラフのプロットエリアの情報を取得
  • 上記の情報から、移動後のy軸ラベルのトップの位置を計算
  • 全てのグラフのラベル位置情報を計算あるいは取得したデータに書き換える

という機能をもたせたマクロを実装したExcelファイル、プログラムを記載したvbaファイル
が下からダウンロードできます。

 

お好きな形式のファイルをダウンロードして、実際に動かしてみたり、あなたの課題にあわせてExcelを調整して作業時間短縮、効率化に役立ててみてください!

basファイルって何?どう使うの?という方やマクロはどのようにして実行するの?と疑問に思った方は、関連記事もチェックしてみてくださいね。


 

この記事が気に入ったら
いいね!しよう

最新情報をお届けします

Twitter でExcel GO! GO!をフォローしよう!

スポンサードリンク

関連記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

話題をチェック!

  1. 2018-11-1

    Excelマクロ(VBA)で複数のシート上のグラフに同一の処理を行うには?

    Excelファイル内に複数のシートがあり、この中にグラフがいくつも入っているとします。 これら…
  2. 2018-9-30

    Excelの関数を使ったデータ比較法!INDIRECTとMATCHを活用する!

    最新データと一週間前のデータにどんな違いがあるのか比較してチェックしたい! でも、ひとつひとつ…
  3. 2018-7-16

    Excel マクロ(VBA)でグラフ(散布図)を大量自動作成!

    Excelはグラフを簡単につくれるのも魅力ですが、つくらなければいけないグラフが多いと、この作業も大…
ページ上部へ戻る