【エクセルVBA】複数のグラフ縦、横方向に一括整列させる方法!

このページでは、エクセルシート上にある複数のグラフを、大きさを調整し、さらに指定方向に整列させる方法をご紹介していきます。

複数グラフの大きさを揃えて整列させるという作業イメージ図

上の画像は横方向に整列させていますが、縦方向に並べることも可能です。

 

また、上の画像は3つのグラフしかありませんが、基本的には何個グラフがあっても自動で対応できるようになっています。

 

シート整理の際にぜひご活用ください。

 

スポンサーリンク

VBAの実行環境を構築しておく

冒頭で紹介した作業を行うには、VBAを使う必要があります。

VBAを使ったことがないひとは、まずは以下の記事を参考に実行環境を構築しておきましょう。

エクセルマクロ(VBA)の始め方!初心者向けに画像を使って詳細解説

 

スポンサーリンク

グラフを横方向に整列させるサンプルコード

それではコーディングに入りましょう。

まずは冒頭に紹介したように横方向に整列されるサンプルコードです。

Sub chart_post_adjust()
    Dim i As Integer
    Dim chart_width As Integer, chart_height As Integer
    chart_width = 300
    chart_height = 200
    margin = 100
    For i = 1 To ActiveSheet.ChartObjects.Count
        With ActiveSheet.ChartObjects(i)
            .Width = chart_width
            .Height = chart_height
            .Left = (i - 1) * (chart_width + margin)
            .Top = 0
        End With
    Next
End Sub

 

実行前はこんな感じ。

サンプルコード実行前のエクセルシートの状態

先ほどのコードを実行すると以下の画像のように大きさが統一され、かつ横方向に整列します。

サンプルコード実行後のエクセルシートの状態

 

スポンサーリンク

グラフを縦方向に整列させるサンプルコード

次は縦方向に整列されるサンプルコードです。

Sub chart_post_adjust2()
    Dim i As Integer
    Dim chart_width As Integer, chart_height As Integer
    chart_width = 300
    chart_height = 200
    margin = 50
    For i = 1 To ActiveSheet.ChartObjects.Count
        With ActiveSheet.ChartObjects(i)
            .Width = chart_width
            .Height = chart_height
            .Left = 0
            .Top = (i - 1) * (chart_height + margin)
        End With
    Next
End Sub

 

こいつを実行すると以下の画像のように縦方向に整列します。

サンプルコード実行後のエクセルシートの状態

どちらのパターンも問題なく実行できていますね。

 

スポンサーリンク

おわりに

というわけで今回は、エクセルVBAをつかってシート上にある複数のグラフのサイズを統一し、さらに横、縦方向に整列させる方法をご紹介しました。

 

シートの整理の際にぜひご活用ください。

 

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

 

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。

⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

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

↓ 応援ボタン

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

それではまた!

コメント

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