パソコンスキルの教科書

パソコンスキルの教科書

東京大学大学院卒。博士課程に進学を志すも、担当教授と折が合わず、無職になる。医者を目指すも結局断念。田舎で派遣社員として働く。「スキルがなければ、仕事ももらえない」と悟り、ビジネススキルを学ぶ。プログラミング、英語を学び、一部上場企業へ転職。年間100時間以上の業務効率化を行い、社内講師に抜擢。海外の案件を担当し、数億円のプロジェクトに携わる。個人の事業でも、月売上100万を達成。現在は、自分の価値を高めるためのスキル向上支援を行う

エクセルマクロVBAで折れ線グラフを連続自動作成|範囲選択、タイトル、軸ラベル、色も変更

f:id:gene320:20181114225837j:plain

エクセル仕事を面倒に感じるときの一つにグラフ作成の仕事があります。

実際、以下のように感じる人は少なくないはずです。

・エクセルでグラフを一つ一つ作成するのってなんだか非効率
・文字の大きさ、x軸y軸のテキスト、最大値や最小値を一つずつ修正するのは面倒
・VBAでプログラミングを覚えて、グラフ作成を自動化したい!
・グラフを自動作成して、仕事をラクに終わらせたい!

そこで、この記事ではエクセルマクロVBAを使って折れ線グラフを自動作成する方法を紹介します。

複数のグラフを連続で自動作成する方法をプログラムコードに解説を入れながらお伝えしていきます。

エクセルマクロVBAでグラフを自動作成する事例|折れ線グラフを連続作成

グラフを自動作成するエクセルマクロVBAについてイメージをつかんでもらうために、動画の事例を紹介します。


エクセルマクロVBAでグラフをまとめて自動作成

まずは上記の動画を見て、これから解説するマクロについて全体像をつかんでください。

グラフを自動作成するマクロVBAのメリットやデメリット

エクセルマクロVBAでグラフを自動作成するとき、さまざまなメリットがあります。同時にデメリットもあります。

それは以下です。

●メリット
[1] プログラム作成には難しい設定は要らない
[2] 定型のコピペ作業であれば、グラフ作成作業の効率化が期待できる
[3] 文字の大きさ、x軸y軸のテキスト、最大値や最小値の修正が不要になる

●デメリット
[1] 初心者には見慣れないコードが多い
[2] グラフ作成マクロはウェブ上にあまり事例が出回っていない
[3] 書籍でもわかりやすい情報は少ない

以下で詳しく説明していきます。

グラフを自動作成するエクセルマクロVBAのメリット

まず、メリットから紹介します。

●メリット
[1] プログラム作成には難しい設定は要らない
[2] 定型のコピペ作業であれば、グラフ作成作業の効率化が期待できる
[3] 文字の大きさ、x軸y軸のテキスト、最大値や最小値の修正が不要になる

[1] エクセルマクロのプログラムはシンプルに作成できる

グラフ作成のマクロはエクセルマクロに何か追加の設定は不要です。

エクセルさえインストールされていれば、新しくプログラムの開発環境を作る必要がありません。もちろん無料です。

[2] 定型のコピペ作業であれば、グラフ作成作業の効率化が期待できる

マクロで自動化したいグラフ作成の作業が定型であれば、グラフ作成の負担をガクンと減らせます。

手入力でグラフを作成する場合、グラフ作成の時間は、「作成グラフ数×1個あたり作成時間」です。

作成グラフ数が10個で、1個あたり作成時間が3分であれば、30分かかることになります。

しかし、マクロを使って自動化すればボタン一つで作業が終わります。グラフ10個でもグラフ100個でも、基本的に作業時間は同じです。

もちろん、グラフ作成数が多いとマクロが動く時間は長くなります。

ただボタン一つで処理が終わるため、グラフ100個作成したとしてもボタン一つで作業そのものは終わりです。

[3] 文字の大きさ、x軸y軸のテキスト、最大値や最小値の修正が不要になる

グラフ作成で厄介なことの一つに、細かな修正があります。

例えば、文字の大きさ、x軸y軸のテキスト、最大値や最小値の修正です。

しかしマクロで設定してしまえば、ボタン一発で、同じ文字の大きさでx軸y軸のテキストが入って最大値や最小値も入力された状態で作成されます。

つまり、作成したグラフの確認やタイプミスを減らせるのです。

さらに、動画で紹介しているようなグラフ作成の自動化を行えば、仕事を仕組み化できます。結果的に、人に仕事を渡すのが容易になります。

グラフを自動作成するエクセルマクロVBAのメリット

上記ではメリットを紹介しましたが、当然デメリットもあります。

●デメリット
[1] 初心者には見慣れないコードが多い
[2] グラフ作成マクロはウェブ上にあまり事例が出回っていない
[3] 書籍でもわかりやすい情報は少ない

[1] 初心者には見慣れないコードが多い

VBAでグラフ作成を行うとき、コード編集に難しさを感じる場合があります。なぜなら、グラフ作成特有のプログラムが数多く出てくるからです。

例えばグラフの線やグラフの種類を変更する場合、見慣れないコードが数多く登場します。

そのため、エクセルのセル文字列やシート間の転記をしかやってこなかった人は戸惑ってしまうかもしれません。特に、初心者は「知らないプログラムばかり…」と混乱しがちです。

その結果、慣れないプログラムを理解できず途中で挫折してしまうことがあります。

[2] グラフ作成マクロはウェブ上にあまり事例が出回っていない

グラフ作成のマクロは、ウェブサイトで提供される情報を見かけることがあります。

しかし、断片的で辞書的な説明しかされていないものが多いです。事例ベースの情報が少ないため、最初に参考すべき軸となるコードがあまり出回っていないのです。

そのため、マクロでグラフ作成を行いたいなら、自分で情報収集する必要があります。

もちろん、これらは厄介な状況ではあります。しかし、自分で学ぶ力をつけるチャンスとも言えます。

実際、グラフ作成マクロを扱えるようになれば、かなりレベルの高いマクロを書けるようになっているはずです。

[3] 書籍でもわかりやすい情報は少ない

上記でウェブサイトでは断片的で辞書的な情報が多いとお伝えしました。

それは書籍でも似たような状況です。実際、私はエクセルマクロ関係の書籍を数多く購入してきました。

しかしグラフ作成の事例が掲載されている書籍にはあまり出会っていません。

もちろん、たまに情報が記載されているのですが、事例として使いまわせる情報が少なく、苦戦を強いられました。

そのような経験もあり、この記事でグラフ作成を自動化したいあなたに情報を届けることにしました。

「グラフを自動作成する」マクロの難易度は?

以前エクセルマクロ初心者向けの勉強会を開催したとき、「グラフ自動作成はどれくらいで出来るようになりますか?」と聞かれたことがあります。

この質問への答えは、あなたがエクセルマクロVBAの基礎をどれくらい理解できているか次第です。

例えば、私が考えるVBAの基礎として、「if文」「for next構文」「変数」を理解していることがあります。

このような基礎について人に説明できるレベルであれば、グラフ自動作成のマクロは比較的すぐに出来るようになります。

なぜならグラフ作成のVBAでは考え方は共通で、セル編集やシートの転記のようなマクロと大きく異なるのは「見慣れないプログラム」を使うことだけです。

例えば英語でも難しい単語が出てきても、英語の基礎が出来ていれば辞書を使いながら理解することが可能です。

つまりあなたが、エクセルVBAの基本を抑えていれば試行錯誤しながら、なんとかコードを書きあげることができるでしょう。

したがって、エクセルマクロVBAの基本を理解できているかどうかが重要なのです。

逆に言えば、あまりにもVBAの理解が乏しいと、難しく感じるかもしれません。もし、エクセルマクロの基本と聞いて不安を感じる人は、入門レベルから学ぶことをお勧めします。

そうしないと、途中で躓いて最初からやり直しになってしまいます。

私のお勧めはこちらでエクセルVBAの基本について学ぶことをオススメします。

エクセルマクロVBAで折れ線グラフを連続自動作成するプログラム

それでは、ここからエクセルマクロVBAで折れ線グラフを連続自動作成するプログラムを紹介します。

これから解説するプログラムは以下の動画で解説しているマクロと同じです。(以下の動画は記事の冒頭紹介したものと同じです)


エクセルマクロVBAでグラフをまとめて自動作成

マクロ化する作業を簡単に説明します。下記の画像のようにデータ入ったエクセルがあります。

f:id:gene320:20181114212944j:plain

このエクセルデータの「A列のロット番号をx軸」に「B列のライン1の数値をy軸」にしてグラフを作成します。

f:id:gene320:20181114212602j:plain

この作業をライン2~ライン10まで行います。つまり、ライン1からライン10のデータをもとにグラフを自動作成します。

もちろん同じ書式で作成し、文字の大きさ、x軸y軸のテキスト、最大値や最小値はミスなく同じにそろえます。

プログラムの全体像|コピペして活用可能

「エクセルマクロVBAで折れ線グラフを連続自動作成する」事例をステップ毎に紹介します。具体的には、以下のステップを一つずつ説明していきます。

ステップ0|開始のおまじない
ステップ1|変数定義
ステップ2|変数に情報を入れ込む
ステップ3|for next構文でライン1~ライン10まで一つずつ処理する
ステップ4|シートを追加する
ステップ5|規格値上限、下限を入れ込む
ステップ6|追加したシートに値を入力する
ステップ7|折れ線グラフを作成してデータ範囲を選択する
ステップ8|折れ線グラフの要素数(折れ線数)を読み込む
ステップ9|折れ線グラフの要素数に応じて、折れ線の色を変更する
ステップ10|折れ線グラフのサイズを変更する
ステップ11|折れ線グラフの説明を変更
ステップ12|折れ線グラフのタイトル、x軸、y軸の情報を入力
ステップ13|折れ線グラフタイトルのテキスト、大きさを変更
ステップ14|折れ線グラフのx軸のテキスト、大きさを変更
ステップ15|折れ線グラフのy軸のテキスト、大きさを変更
ステップ16|ws2の設定を解放
ステップ17|ws1をエクセルの最前面にもってくる

以下は全体のプログラムです。動画と同じことをしたい人は、このままコピペしてご利用ください。

'ステップ0|開始のおまじない
Option Explicit

Sub makechart()
    
    'ステップ1|変数定義
    Dim cmax As Long, i As Long, cnt As Long, mycol As Long, k As Long
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim jougen As Double, kagen As Double
    Dim str As String, text_t As String, text_x As String, text_y As String
    
    'ステップ2|変数に情報を入れ込む
    Set ws1 = Worksheets("データ")
   
    cmax = ws1.Range("A1048576").End(xlUp).Row
    cnt = ws1.Range("XFD1").End(xlToLeft).Column
    
    'ステップ3|for next構文でライン1~ライン10まで一つずつ処理する
    For k = 2 To cnt
        
        str = ws1.Range("A1").Offset(0, k - 1).Value
        
        'ステップ4|シートを追加する
        Sheets.Add After:=ws1
        Set ws2 = ActiveSheet
        ws2.Name = str
        
        'ステップ5|規格値上限、下限を入れ込む
        jougen = ws1.Range("N2").Value
        kagen = ws1.Range("N3").Value
        
        'ステップ6|追加したシートに値を入力する
        ws2.Range("A1:A" & cmax).Value = ws1.Range("A1:A" & cmax).Value
        ws2.Range("B1:B" & cmax).Value = ws1.Range("A1:A" & cmax).Offset(0, k - 1).Value
        
        ws2.Range("C1").Value = ws1.Range("M2").Value
        ws2.Range("C2:C" & cmax).Value = jougen
        
        ws2.Range("D1").Value = ws1.Range("M3").Value
        ws2.Range("D2:D" & cmax).Value = kagen
        
        'ステップ7|折れ線グラフを作成してデータ範囲を選択する
        ActiveSheet.Shapes.AddChart2(332, xlLineMarkers).Select
        ActiveChart.SetSourceData Source:=ws2.Range("A1:D" & cmax)
        ActiveChart.ClearToMatchStyle
        
        'ステップ8|折れ線グラフの要素数(折れ線数)を読み込む
        mycol = ActiveChart.FullSeriesCollection.Count
        
        'ステップ9|折れ線グラフの要素数に応じて、折れ線の色を変更する
        For i = 1 To mycol
                
            If i = mycol - 1 Or i = mycol Then
                ActiveChart.FullSeriesCollection(i).Format.Fill.ForeColor.ObjectThemeColor = msoThemeColorAccent2
                ActiveChart.FullSeriesCollection(i).Format.Line.ForeColor.ObjectThemeColor = msoThemeColorAccent2
                ActiveChart.FullSeriesCollection(i).ChartType = xlLine
                
            Else
                ActiveChart.FullSeriesCollection(i).Format.Fill.ForeColor.ObjectThemeColor = msoThemeColorText1
                ActiveChart.FullSeriesCollection(i).Format.Line.ForeColor.ObjectThemeColor = msoThemeColorText1
                
            End If
        Next
                
        'ステップ10|折れ線グラフのサイズを変更する
        With ActiveSheet.ChartObjects
            .Top = Range("J2").Top
            .Left = Range("J2").Left
            .Height = 500
            .Width = 800
        End With
        
        'ステップ11|折れ線グラフの説明を変更
        ActiveChart.HasLegend = True
        ActiveChart.Legend.Position = xlRight
        ActiveChart.Legend.Format.TextFrame2.TextRange.Font.Size = 14
        
        'ステップ12|折れ線グラフのタイトル、x軸、y軸の情報を入力
        text_t = str
        text_x = ws1.Range("N4").Value
        text_y = ws1.Range("N5").Value
        
        'ステップ13|折れ線グラフタイトルのテキスト、大きさを変更
        ActiveChart.HasTitle = True
        ActiveChart.ChartTitle.Characters.Text = text_t
        ActiveChart.ChartTitle.Format.TextFrame2.TextRange.Font.Size = 14
        ActiveChart.Axes(xlCategory).TickLabels.Font.Size = 14
        ActiveChart.Axes(xlValue).TickLabels.Font.Size = 14
        
        'ステップ14|折れ線グラフのx軸のテキスト、大きさを変更
        ActiveChart.Axes(xlCategory, xlPrimary).HasTitle = True
        ActiveChart.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = text_x
        ActiveChart.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Font.Size = 14
        
        'ステップ15|折れ線グラフのy軸のテキスト、大きさを変更
        ActiveChart.Axes(xlValue, xlPrimary).HasTitle = True
        ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = text_y
        ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Characters.Font.Size = 14
        
        'ステップ16|ws2の設定を解放
        Set ws2 = Nothing
        
    Next
   
    'ステップ17|ws1をエクセルの最前面にもってくる
    ws1.Activate
   
End Sub

折れ線グラフを連続で作成するマクロ|範囲選択、タイトル、軸ラベル、色の変更まで

それでは、プログラムの解説をしていきます。以下の17ステップに分けて説明します。

ステップ0|開始のおまじない
ステップ1|変数定義
ステップ2|変数に情報を入れ込む
ステップ3|for next構文でライン1~ライン10まで一つずつ処理する
ステップ4|シートを追加する
ステップ5|規格値上限、下限を入れ込む
ステップ6|追加したシートに値を入力する
ステップ7|折れ線グラフを作成してデータ範囲を選択する
ステップ8|折れ線グラフの要素数(折れ線数)を読み込む
ステップ9|折れ線グラフの要素数に応じて、折れ線の色を変更する
ステップ10|折れ線グラフのサイズを変更する
ステップ11|折れ線グラフの説明を変更
ステップ12|折れ線グラフのタイトル、x軸、y軸の情報を入力
ステップ13|折れ線グラフタイトルのテキスト、大きさを変更
ステップ14|折れ線グラフのx軸のテキスト、大きさを変更
ステップ15|折れ線グラフのy軸のテキスト、大きさを変更
ステップ16|ws2の設定を解放
ステップ17|ws1をエクセルの最前面にもってくる

マクロを動かす前の状態は以下です。

f:id:gene320:20181114223956j:plain

ステップ0|開始のおまじない

Option Explicit
Sub makechart()

1行目|Option Explicitで変数設定を強制する

2行目|makechartという件名のプログラムとして設定

ステップ1|変数定義

Dim cmax As Long, i As Long, cnt As Long, mycol As Long, k As Long
Dim ws1 As Worksheet, ws2 As Worksheet
Dim jougen As Double, kagen As Double
Dim str As String, text_t As String, text_x As String, text_y As String

1行目|cmax, i, cnt, mycol, k をLong(整数)型で変数定義

2行目|ws1, ws2 をworksheet(ワークシート)型で変数定義

3行目|jougen, kagenをDouble(数値)型で設定

4行目|str, text_t, text_x, text_y をstring(文字列)型で変数設定

ステップ2|変数に情報を入れ込む

Set ws1 = Worksheets("データ")   
cmax = ws1.Range("A1048576").End(xlUp).Row
cnt = ws1.Range("XFD1").End(xlToLeft).Column

1行目|シート「データ」をws1で設定

2行目|ws1のセルA1048576からセルを上に数えていって一番最初に数値が入るセルの行を設定(つまり、ws1のA列の最終行を設定)

3行目|ws1のセルXFD1からセルを左に数えていって一番最初に数値が入るセルの行を設定(つまり、ws1の1行目の最終列を設定)

ステップ3|for next構文でライン1~ライン10まで一つずつ処理する

For k = 2 To cnt    
    str = ws1.Range("A1").Offset(0, k - 1).Value

1行目|for next構文で2~cnt(11)まで一つずつ数値を入れる

2行目|ws1のセルA1を基準に右に(k-1)番目のセルの値をstrにする

k=1ならセルA1
k=2ならセルA2となる

ステップ4|シートを追加する

Sheets.Add After:=ws1
Set ws2 = ActiveSheet
ws2.Name = str

1行目|ws1のシートの後ろにシートを新しく追加

2行目|新しく追加したシートをws2とする

3行目|ws2の名称をstrにする

ステップ4終了時点で、以下の状態になります。

f:id:gene320:20181114224121j:plain

ステップ5|規格値上限、下限を入れ込む

jougen = ws1.Range("N2").Value
kagen = ws1.Range("N3").Value

1行目|ws1のセルN2の値をjougenにする

2行目|ws1のセルN3の値をkagenにする

ステップ6|追加したシートに値を入力する

ws2.Range("A1:A" & cmax).Value = ws1.Range("A1:A" & cmax).Value
ws2.Range("B1:B" & cmax).Value = ws1.Range("A1:A" & cmax).Offset(0, k - 1).Value
ws2.Range("C1").Value = ws1.Range("M2").Value
ws2.Range("C2:C" & cmax).Value = jougen
ws2.Range("D1").Value = ws1.Range("M3").Value
ws2.Range("D2:D" & cmax).Value = kagen

1行目|ws2のセルA1~セルAcmaxまでの値をws1のセルA1~セルAcmaxの値にする

2行目|ws2のセルB1~セルBcmaxまでの値をws1の(セルA1~セルAcmax)を基準にして右に(k-1)動かしたセルの値とする

つまり、k=3ならば

→「ws2のセルB1~セルBcmaxまでの値をws1の(セルA1~セルAcmax)を基準にして右に2動かしたセルの値とする」

→「ws2のセルB1~セルBcmaxまでの値をws1の(セルC1~セルCcmax)の値とする」となる

3行目|ws2のセルC1の値をws1のセルM2の値("規格上限値")にする

4行目|ws2のセルC2~セルCcmaxまでの値をjougenにする

5行目|ws2のセルD1の値をws1のセルM3の値("規格下限値")にする

6行目|ws2のセルD2~セルDcmaxまでの値をkagenにする

ステップ6終了時点で、以下の状態になります。

f:id:gene320:20181114224234j:plain

ステップ7|折れ線グラフを作成してデータ範囲を選択する

ActiveSheet.Shapes.AddChart2(332, xlLineMarkers).Select
ActiveChart.SetSourceData Source:=ws2.Range("A1:D" & cmax)
ActiveChart.ClearToMatchStyle

1行目|アクティブシートに折れ線グラフを選択する

2行目|1行目で追加したグラフのデータ範囲をws2のセルA1からDcmaxにする

3行目|アクティブチャートのグラフ要素の書式を自動にリセットする

ステップ7終了時点で、以下の状態になります。

f:id:gene320:20181114224329j:plain

ステップ8|折れ線グラフの要素数(折れ線数)を読み込む

mycol = ActiveChart.FullSeriesCollection.Count

1行目|アクティブチャート(折れ線グラフ)の要素数を読み込む(ここでは、グラフ内の折れ線の数となる)

ステップ9|折れ線グラフの要素数に応じて、折れ線の色を変更する

For i = 1 To mycol
    If i = mycol - 1 Or i = mycol Then
        ActiveChart.FullSeriesCollection(i).Format.Fill.ForeColor.ObjectThemeColor = msoThemeColorAccent2
        ActiveChart.FullSeriesCollection(i).Format.Line.ForeColor.ObjectThemeColor = msoThemeColorAccent2
        ActiveChart.FullSeriesCollection(i).ChartType = xlLine
    Else
        ActiveChart.FullSeriesCollection(i).Format.Fill.ForeColor.ObjectThemeColor = msoThemeColorText1
        ActiveChart.FullSeriesCollection(i).Format.Line.ForeColor.ObjectThemeColor = msoThemeColorText1
    End If
Next

1行目|for next構文で1~mycol(折れ線数)を一つずつ数値を入れる

2行目|もし、i が mycol-1 もしくは mycolだったら(mycok=4のとき、「i= 3 もしくは i= 4のだったら」となる)

3行目|アクティブチャート(折れ線グラフ)の要素番号(i番目)の折れ線グラフの各点の色をmsoThemeColorAccent2(オレンジ)とする

4行目|アクティブチャート(折れ線グラフ)の要素番号(i番目)の折れ線グラフの線の色をmsoThemeColorAccent2(オレンジ)とする

5行目|アクティブチャート(折れ線グラフ)の要素番号(i番目)の折れ線を線のみにする(点を除去)

6行目|もし、i が 2行目以外のときは

7行目|アクティブチャート(折れ線グラフ)の要素番号(i番目)の折れ線グラフの各点の色をmsoThemeColorText1(黒)とする

8行目|アクティブチャート(折れ線グラフ)の要素番号(i番目)の折れ線グラフの線の色をmsoThemeColorText1(黒)とする

9行目|if文の終わり

10行目|for next文の終わり

ステップ9終了時点で、以下の状態になります。

f:id:gene320:20181114224456j:plain

ステップ10|折れ線グラフの位置やサイズを変更する

With ActiveSheet.ChartObjects
    .Top = Range("J2").Top
    .Left = Range("J2").Left
    .Height = 500
    .Width = 800
End With

1行目|with構文で、以下に続くプログラムの先頭の「ActiveSheet.ChartObjects」 を省略する

2行目|(アクテイブシートのチャート(折れ線グラフ)の)上部をセルJ2の上部と同じ場所に設定する

3行目|(アクテイブシートのチャート(折れ線グラフ)の)左側をセルJ2の左側と同じ場所に設定する

4行目|(アクテイブシートのチャート(折れ線グラフ)の)高さを500とする

5行目|(アクテイブシートのチャート(折れ線グラフ)の)幅を800とする

6行目|With構文の終わり

ステップ10終了時点で、以下の状態になります。

f:id:gene320:20181114225012j:plain

ステップ11|折れ線グラフの説明を変更

ActiveChart.HasLegend = True
ActiveChart.Legend.Position = xlRight
ActiveChart.Legend.Format.TextFrame2.TextRange.Font.Size = 14

1行目|アクテイブチャート(折れ線グラフ)の説明を表示する

2行目|アクテイブチャート(折れ線グラフ)の説明をグラフ右に表示する

3行目|アクテイブチャート(折れ線グラフ)の説明をテキストサイズを14にする

ステップ11終了時点で、以下の状態になります。

f:id:gene320:20181114225056j:plain

ステップ12|折れ線グラフのタイトル、x軸、y軸の情報を入力

text_t = str
text_x = ws1.Range("N4").Value
text_y = ws1.Range("N5").Value

1行目|text_t を str にする

2行目|text_x を ws1のセルN4の値にする

3行目|text_y を ws1のセルN5の値にする

ステップ13|折れ線グラフタイトルのテキスト、大きさを変更

ActiveChart.HasTitle = True
ActiveChart.ChartTitle.Characters.Text = text_t
ActiveChart.ChartTitle.Format.TextFrame2.TextRange.Font.Size = 14
ActiveChart.Axes(xlCategory).TickLabels.Font.Size = 14
ActiveChart.Axes(xlValue).TickLabels.Font.Size = 14

1行目|アクテイブチャート(折れ線グラフ)のタイトルを表示する

2行目|アクテイブチャート(折れ線グラフ)のタイトルを text_t にする

3行目|アクテイブチャート(折れ線グラフ)のタイトルをテキストサイズを14にする

4行目|アクテイブチャート(折れ線グラフ)のx軸(xlCategory)の要素のテキストサイズを14にする

5行目|アクテイブチャート(折れ線グラフ)のy軸(xlValue)の要素のテキストサイズを14にする

ステップ13終了時点で、以下の状態になります。

f:id:gene320:20181114225212j:plain

ステップ14|折れ線グラフのx軸のテキスト、大きさを変更

ActiveChart.Axes(xlCategory, xlPrimary).HasTitle = True
ActiveChart.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = text_x
ActiveChart.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Font.Size = 14

1行目|アクテイブチャート(折れ線グラフ)のx軸のラベルを表示する

2行目|アクテイブチャート(折れ線グラフ)のx軸のラベルの表示を text_x にする

3行目|アクテイブチャート(折れ線グラフ)のx軸のラベルの表示をテキストサイズ14にする

ステップ14終了時点で、以下の状態になります。

f:id:gene320:20181114225337j:plain

ステップ15|折れ線グラフのy軸のテキスト、大きさを変更

ActiveChart.Axes(xlValue, xlPrimary).HasTitle = True
ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = text_y
ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Characters.Font.Size = 14

1行目|アクテイブチャート(折れ線グラフ)のy軸のラベルを表示する

2行目|アクテイブチャート(折れ線グラフ)のy軸のラベルの表示を text_y にする

3行目|アクテイブチャート(折れ線グラフ)のy軸のラベルの表示をテキストサイズ14にする

ステップ15終了時点で、以下の状態になります。

f:id:gene320:20181114225444j:plain

ステップ16|ws2の設定を解放

    Set ws2 = Nothing        
Next

1行目|ws2を解放する

2行目|for next構文の終わり

i=cntとなるまで、ステップ3~ステップ16を繰り返す

ステップ17|ws1をエクセルの最前面にもってくる

    ws1.Activate   
End Sub

1行目|ws1をエクセルの最前面にもってくる

2行目|プログラムの終わり

プログラムの説明は以上です。

エクセルマクロVBAの始め方・使い方

エクセルマクロVBAの使い方から知りたい人は、以下の記事を読んでみてください。

www.fastclassinfo.com

上記で紹介したプログラムコードをどのように使えば、グラフ作成マクロを使えるようになるのかが分かります。

ぜひ、あなた自身が勉強して、自分で編集してもっといいものを作成できるようになってほしいと思います。

エクセルを自分用に編集アレンジして使いたいなら、エクセルマクロの無料動画で学ぼう

この記事では、グラフの自動作成のマクロについて紹介しました。ここで紹介したマクロを利用すれば、作業の自動化が可能になります。

しかしデメリットもあります。それはカスタムできないことです。

なぜなら、色々な要望が増えるからです。

この動画を見たとき、「もっと○○ができるのでは?」や「ここはなんとかならないのか」と感じる人は少なくないはずです。

例えば、「他の条件を付け加えたい」や「日付毎に条件を変えたい」といった要望が出るかもしれません。

このような要望を満たすには、マクロを勉強して自力でマクロを編集できるようになる必要があります

もし、自力でマクロを編集できるようになれば、今より仕事の効率はグッと上がります。

実際、私も自力でマクロを書けるようになってからは、仕事の生産性が一気に上がりました。

他の人が30分~1時間かけて行う仕事が、ボタン一つで終わらせることができるようになったのです。その結果、周囲からの信頼も増し、仕事で高い評価を得られるようになりました。

ただ、要望に応えるようになるためには、マクロを学ぶ必要があります。

まずは無料でマクロを勉強してみる

ウェブや書籍で勉強すれば、マクロを習得できると考えている人は少なくありません。

しかし、仕事で使えるマクロを習得したいなら、仕事で使える部分に特化した教材で学ぶことをお勧めします。

なぜなら、ウェブや書籍には仕事に関係しない部分まで提供していることが多いからです。

例えば、マクロ初心者なのに配列を学ぼうとする人がいます。実は配列なしでも仕事で使えるマクロを書くことは可能です。

しかし、マクロ初心者ほど「全ての知識が必要だ」と考えて、無駄な学習に時間を使ってしまうのです。詳しくは、こちらの記事で紹介しています。

www.fastclassinfo.com

www.fastclassinfo.com

そこで、私がお勧めするのは仕事に直結するマクロ教材です。とくにお勧めするのは、こちらの無料オンライン動画です。

なぜなら、仕事に直結する部分に絞って、エクセルマクロを学ぶことができるからです。

マクロの作り方・考え方から解説しているので、教材をしっかり学べばここで紹介したマクロをゼロから書けるようになります。

マクロ初心者が、仕事に直結したいマクロを学ぶなら、まずはこちらの無料オンライン動画を試すのがいいです。

興味がある人は、まずは無料でエクセルマクロの勉強を始めてみてください。

もっと学びたいと感じたら、さらに深く勉強をしてみることをお勧めします。