Excel VBAマクロで選択したグラフだけ軸の最大値・最小値を変更するには?

スポンサードリンク

シート内の特定のグラフの軸を変更したい。

でも、これをの作業を何回も繰り返すのは大変なんだよな~、一気に変更できないかな?

こんなお悩みはありませんか?

今回は、シート内の選択した特定のグラフの軸の最大値、最小値を変更する作業を効率よく、ささっと片付けてしまう方法を紹介していきます!

さて、今回の問題にどう対処するか?

実はこの問題、ExcelのVBAでマクロを作成し、これを利用すると簡単に処理できるんですよ。

選択した特定のグラフの軸の変更を効率よく行いたいあなた!

是非この方法を参考にしてみてくださいね。

このページの中では、今回紹介する選択したグラフの軸を一気に変更してしまうマクロを組み込んだExcelファイルをダウンロードできるようにしています。

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

また、あなたの希望にあわせてカスタマイズすることも簡単です。是非使ってみてくださいね。

では本編スタートです!

スポンサードリンク

『Excelシート内の選択したグラフの軸を一気に変更してしまう』には?まずは問題を整理しよう!

今回解決するのは、Excelシート内にある特定のグラフについて、軸の最大値、最小値を変更していくという大変な作業をExcelにまかせて手軽に自動で終わらせたいというものですね。

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

  • 変更するグラフを選び、変更する軸を右クリックして、「軸の書式設定」メニューを起動。
  • さらに最大値や最小値などの値を変更。
  • そしてこの作業を変更が必要なグラフの数だけ繰り返す。

という手順をとるのではないでしょうか。

一つのグラフの修正を急いで行っても、10秒くらいはかかってしまいますよね。変更したいグラフが多い場合は大変。一つのグラフの修正時間はたかが知れていても、必要になる時間はグラフの数との掛け算ですから、結構大変な作業なんですよね~。お悩みわかります!

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

『Excelシート内の選択したグラフの軸を一度に変更する』方針をチェック!

ここでは、Excelシート内にある特定のグラフについて、軸の最大値、最小値を変更するという作業をExcelに実施させるためにはどうすればよいかをみていきます。

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

  • 変更するグラフを選び、変更する軸を右クリックして、「軸の書式設定」を起動。
  • さらに最大値や最小値などの値を変更。
  • そしてこの作業を変更が必要なグラフの数だけ繰り返す。

という手作業が必要でしたよね?今回はこの手順をExcelのマクロ(VBA)を使って自動で行っていくことにしましょう。

上で書いた作業と同じことを行うため、次の手順で処理を行わせます。マクロ実行前に、軸の最大値、最小値に変更を加えるグラフを選択しますよ。

  1. 軸の最小値、最大値を取得
  2. 選択したグラフの数を判断
  3. 複数選択したとき、一つだけ選択したとき、一つも選択されていないときという3つの状況に応じてグラフの最大値と最小値を変更

これをVBAで書けば今回のExcelシート内の選択したグラフの軸を一気に変更するという作業は一発で一瞬で完了します!

しかも処理はプログラムした内容に従って、いつでも何度でも実施できるので、処理を間違ってしまうということもありません!

スポンサードリンク

『Excelシート内の選択したグラフの軸を一括変更する』作業をExcelで解決!

ではExcelシート内の選択したグラフの軸を一気に変更するという課題を解決する、具体的なマクロの記述をみていきましょうね!VBAで書いたリストは次の通りです!

軸の設定値とする最小値および最大値は、以前紹介した記事に書いた方法と同じく、Inputboxを使って入力することにしました。

Attribute VB_Name = "Module1"
'***********************************************************
'** 仕事サクサク!定時退社のために EXCEL GO! GO!
'** (URL:https://excelgogo.net/)
'** 是非ご活用ください♪
'***********************************************************
Sub 選択したグラフのx軸を変更する()

Dim chrtObj As ChartObject
Dim Obj As Object
Dim Obj2 As Object
Dim max As Double, min As Double
Dim num As String

Application.DisplayAlerts = False
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual


On Error GoTo errhandler

num = InputBox("x軸の最小値を設定してください。", "入力", "")
If num <> "" Then
    min = num
ElseIf num = "" Then
    MsgBox "最小値の入力がありませんでした。マクロを終了します。"
    Exit Sub
End If

num = InputBox("x軸の最大値を設定してください。", "入力", "")
If num <> "" Then
    max = num
ElseIf num = "" Then
    MsgBox "最大値の入力がありませんでした。マクロを終了します。"
    Exit Sub
End If

Set Obj = Selection

If TypeName(Obj) <> "DrawingObjects" Then 'グラフが1つ選択された場合、選択されていない場合
    If Not ActiveChart Is Nothing Then  'グラフが1つ選択された場合
        With ActiveChart.Axes(xlCategory)  'Y軸の変更をする場合は、.Axes(xlValue)に変更
            .MinimumScale = min
            .MaximumScale = max
        End With
    Else  'グラフが選択されていない場合(全てのグラフを変更する)
        For Each chrtObj In ActiveSheet.ChartObjects
            With chrtObj.Chart
                With .Axes(xlCategory) 'Y軸の変更をする場合は、.Axes(xlValue)に変更
                    .MinimumScale = min
                    .MaximumScale = max
                End With
            End With
        Next
    End If
Else  'グラフが複数選択された場合
    For Each Obj2 In Obj
        If TypeName(Obj2) = "ChartObject" Then
            With xi.Chart.Axes(xlCategory)  'Y軸の変更をする場合は、.Axes(xlValue)に変更
                .MinimumScale = min
                .MaximumScale = max
            End With
        End If
    Next
End If

Set x = Nothing

GoTo lineend
errhandler:
MsgBox "入力には半角数字を使用してください。", , "注意"

lineend:
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.Calculation = xlCalculationAuto
    
End Sub

基本的には選択したグラフのみ、軸の最大値・最小値が変更されますが、選択したグラフがない場合には、シート内にある全てのグラフの軸を同じように変更できます。このマクロ一つであなたの要求にお答えできるのでは?

ソース内に記載したメモにあるように、.Axes(xlCategory)と書いている部分を.Axes(xlValue)に書き直せば、x軸に変わってy軸の変更が可能になります。

また、主メモリ間隔、補助メモリ間隔も変えたい場合などは、この方法を関連記事で紹介していますのでこちらも参照してくださいね。

まとめ

今回は『Excelシート内の選択したグラフの軸を一括で変更する』という問題をExcelのマクロをつかって自動化し、作業を効率化する方法を紹介しました。

・変更するグラフを選び、変更する軸を右クリックして、「軸の書式設定」メニューを起動。
・さらに最大値や最小値などの値を変更。
・そしてこの作業を変更が必要なグラフの数だけ繰り返す。

という地味で辛い作業を、

・軸の最小値、最大値を取得
・選択したグラフの数を判断
・複数選択したとき、一つだけ選択したとき、一つも選択されていないときという3つの状況に応じてグラフの最大値と最小値を変更

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

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

 

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

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

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

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

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

 

『Excelシート内の選択したグラフの軸を一括で変更する』Excelサンプルをプレゼント

下の図のように変更したいグラフを選択した上で、

  1. 軸の最小値、最大値を取得
  2. 選択したグラフの数を判断
  3. 複数選択したとき、一つだけ選択したとき、一つも選択されていないときという3つの状況に応じてグラフの最大値と最小値を変更

という作業を実行するマクロを実装したExcelファイル、プログラムを記載したbasファイルが下からダウンロードできます。このマクロを使えば、ほらこの通り!選んだグラフのx軸のメモリだけを一気に変更できますよ。

では、お好きな形式のファイルをダウンロードして、実際に動かしてみたり、あなたの課題にあわせて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はグラフを簡単につくれるのも魅力ですが、つくらなければいけないグラフが多いと、この作業も大…
ページ上部へ戻る