[[20160215115351]] 『グラフのX・Y軸を自動で調整したい』(あこ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『グラフのX・Y軸を自動で調整したい』(あこ)

2つの散布図が存在するシートがあります。データ数は2つです。
一つ目のグラフはXとY軸を自動で調整したいです。X軸は0〜1の範囲、Yは0〜5の範囲なのですが、まれに数値が1を超えてしまうことがあり、現在軸の書式設定で毎回最大値を変更しているのですが、この作業を自動でおこないたいのです。

数値を入力するセルは、データ1▲(データの表示の種類)、Y軸 L64、X軸 O64
データ2● Y軸 L65 X軸 O65 です。

このセルの値が変更したら一つ目のグラフ軸が変更されてほしいのです。

またもうひとつグラフがあり、これについてはX軸のみ最大値を変更 X軸 ▲S64 ●S65

マクロ初心者でして実行の方法も理解しておりません。
手順を最初から教えていただければ幸いです。

< 使用 Excel:Excel2013、使用 OS:Windows7 >


こういうことでしょうか
 1)グラフがあるシートの「シート見出し」を右クリック
 2)「コードの表示」を選択
 3)下記のマクロをコピペ (★グラフ名は修正が必要です)
 4)Alt+Q

 これでデータが変わると軸の最大値が自動で変化すると思います

 Private Sub Worksheet_Change(ByVal Target As Range)
    Dim cht1 As Chart, cht2 As Chart
    Dim cht1X As Range, cht1Y As Range
    Dim cht2X As Range

    Set cht1 = ChartObjects("グラフ 1").Chart   '★実際のグラフ名に修正
    Set cht1X = Range("O64:O65")
    Set cht1Y = Range("L64:L65")

    Set cht2 = ChartObjects("グラフ 2").Chart   '★実際のグラフ名に修正
    Set cht2X = Range("S64:S65")

    If Not Intersect(Target, cht1X) Is Nothing Then
        If WorksheetFunction.Max(cht1X) > 1 Then
            cht1.Axes(xlCategory).MaximumScaleIsAuto = True
        Else
            cht1.Axes(xlCategory).MaximumScale = 1
        End If
    End If

    If Not Intersect(Target, cht1Y) Is Nothing Then
        If WorksheetFunction.Max(cht1Y) > 5 Then
            cht1.Axes(xlValue).MaximumScaleIsAuto = True
        Else
            cht1.Axes(xlValue).MaximumScale = 5
        End If
    End If

    If Not Intersect(Target, cht2X) Is Nothing Then
        If WorksheetFunction.Max(cht2X) > 1 Then
            cht2.Axes(xlCategory).MaximumScaleIsAuto = True
        Else
            cht2.Axes(xlCategory).MaximumScale = 1
        End If
    End If

 End Sub

(マナ) 2016/02/15(月) 20:11


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.