Excelでグラフ化するデータ範囲を変更したい時のマクロ!

スポンサードリンク

いろいろな視点でデータを眺めたいと思うことってありますよね。Excelにデータがあれば表示するデータを選択してグラフを作成し、データの関係や傾向が確認できます。

しかし、一旦グラフをつくってしまうと、違った範囲のデータ対象にして関係確認するためには、新たにグラフを作成したり、グラフの参照範囲を一つひとつ変更したりといった作業が必要になりますよね。

より多くの視点でデータを確認しようとすればするほど、この作業を何度も何度も実施することに。。。
そのうち、参照範囲の変更やグラフの作成に疲れ、変更を間違ったり、分析に頭が回らなくなったりしてしまいそうです。

また、もう一度あのデータとあのデータの関係をチェックしたい!なんて時には、また同じグラフを作らならないという、最悪の状況もありえます。

一度つくったものをもう一度労力をかけて作り直すというすごく骨の折れる作業、これは避けたいですよね。

今回はこの、グラフ化するデータの範囲を変更する作業を効率よく、ささっと片付けてしまうことができる方法を紹介していきます!

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

実はこの問題、ExcelのVBAをつかってマクロを作ると簡単に処理できるんですよ。

グラフ化するデータの範囲を変更する作業を効率よく行いたいあなた!

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

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

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

では本編スタートです!

スポンサードリンク

『グラフ化するデータ範囲を変更する』には?まずは問題を整理しよう!

今回解決するのはグラフ化するデータ範囲を変更するという大変な作業をExcelにまかせて手軽に自動で終わらせたいと
いうものですね。

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

  • グラフ上で右クリックしてメニューを表示
  • 「データを選択」を選択し、表示されるウインドウ上で変更する系列について「編集」をクリック
  • さらに系列のXの値、Yの値などを変更
  • そしてこの動作を全ての系列、グラフに対して実施

という手順をとるのが普通なのではないでしょうか。系列一つの参照範囲を変更するだけでも煩雑です。いくつも変更していたら手が滑って誤った範囲を参照してしまいそう。この手作業とはおさらばしたいものですよね!

ではさっそく、この手順をExcel VBAで簡単にしてしまいましょう!

『グラフ化するデータ範囲を変更する』解決の方針をチェック!

ここでは、グラフ化するデータ範囲を変更するという作業をExcelに実施させるためにはどうすればよいかをみていきます。
一つひとつ手作業で行うには、上で書いた

  • グラフ上で右クリックしてメニューを表示
  • 「データを選択」を選択し、表示されるウインドウ上で変更する系列について「編集」をクリック
  • 系列のXの値、Yの値などを変更
  • この動作を全ての系列、グラフに対して実施

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

今回はこの手順をExcelのマクロ(VBA)をつかって自動で行っていくことにしますよ。

  • まず、変更したい文字列を取得し
  • 次に、変更後の文字列を取得。
  • 最後に、シート内の全てグラフの、全ての系列を対象として、変更したい文字列を変更後の文字列に置き換える

これをVBAでかけば今回のグラフ化するデータ範囲を変更するという作業をかなり高速に済ませることができます!

参照している行を表す数字や、列を表すAやBなどのアルファベットを対象にして、数回マクロを実行し、これらを順次置き換えていけばグラフが何個あっても処理が楽です。

マクロも特段書き換える必要はありませんよ。

スポンサードリンク

『グラフ化するデータ範囲を変更する』課題をExcelVBAで解決!

ではグラフ化するデータ範囲を変更するという課題を解決する、具体的なマクロの記述をみていきましょうね!VBAで書いたリストは次の通りです!

置き換えたい文字列や置き換え後の文字列はInputboxを使って取得することにしました。

「’アクティブシート内のグラフ全てについて処理」の後の部分で、全てのグラフの全ての系列を対象にして置換を行っていきますので、いろいろなデータの経時変化を表した複数のグラフがある場合などに、グラフ化する時間の範囲を全グラフ統一して一気に変更したり、時刻に対するデータの変化ではなく、他のデータとの関係がチェックする場合などに、X軸のデータとして参照している範囲を全て変更したり、という作業が楽に実施できますよ。

Attribute VB_Name = "Module1"
'***********************************************************
'** 仕事サクサク!定時退社のために EXCEL GO! GO!
'** (URL:https://excelgogo.net/)
'** 是非ご活用ください♪
'***********************************************************
Sub グラフ内参照文字列の置換()
Dim co As ChartObject
Dim Ser As Series
Dim oldword As String, newword As String
Dim ans As String
'
'Excelの画面の遷移を表示しない
Application.ScreenUpdating = False
'
'インプットボックスから文字列を入力し、これをansにする
ans = InputBox("置換したい文字列は?", "インプット", "")
'
'ansが空白でないならば次の処理
    If ans <> "" Then
        'oldwordをansと同じにする。oldwordは置換したい文字列
        oldword = ans
    '入力がない場合はマクロ終了
    ElseIf ans = "" Then Exit Sub
    End If
'
'インプットボックスから文字列を入力し、これをansにする
ans = InputBox("置換後の文字列は?", "インプット", "")
    'ansが空白でないならば次の処理
    If ans <> "" Then
        'newwordをansと同じにする。newwordは置換後の文字列
        newword = ans
    '入力がない場合はマクロ終了
    ElseIf ans = "" Then Exit Sub
    End If
'
'ここからシート内の全グラフ、全系列の対象とする文字列を置換する処理
'
'アクティブシート内のグラフ全てについて処理
For Each co In ActiveSheet.ChartObjects
    'グラフ内の系列について処理
    For Each Ser In co.Chart.SeriesCollection
         'oldwordをnewwordと置換
        Ser.Formula = Replace(Ser.Formula, oldword, newword)
    Next Ser
Next co
'
'Excelの画面の遷移表示をもとに戻す
Application.ScreenUpdating = True
End Sub

まとめ

今回は、『グラフ化するデータ範囲を変更する』という操作をExcelのマクロをつかって自動化し、作業を効率化する方法を紹介しました。

・グラフ上で右クリックしてメニューを表示
・「データを選択」を選択し、表示されるウインドウ上で変更する系列について「編集」をクリック
・系列のXの値、Yの値などを変更
・この動作を全ての系列、グラフに対して実施

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

・変更したい文字列を取得
・変更後の文字列を取得
・シート内の全てグラフの、全ての系列を対象として、変更したい文字列を変更後の文字列に置き換える

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

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

 

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

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

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

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

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

 

『グラフ化するデータ範囲を変更する』Excelマクロをプレゼント

今回紹介した

  • 変更したい文字列を取得
  • 変更後の文字列を取得
  • シート内の全てグラフの、全ての系列を対象として、変更したい文字列を変更後の文字列に置き換える

という作業を自動で行い『グラフ化するデータ範囲を変更する』という機能をもたせたマクロを実装したExcelファイル、プログラムを記載したbasファイルが下からダウンロードできます。

 

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