ファビコン。井の家紋。マクロで表やグラフを書くためのコツ | エクセルマクロ(VBA)実践蔵(じっせんぐら)

前の項目 - フォルダ内のファイル名取得(ファイル名一覧の作成)
次の項目 - 別ファイルへシートコピー後、シート名変更をして保存する

マクロで表やグラフを書くためのコツ最終更新日:2019-06-18

マクロを使用して、新たな表を作成したり、グラフを描いたりすることは可能ですが、すべてをマクロのコードにするよりもテンプレートを作成した方が、楽に新たな表やグラフを得ることができます。

まっさらなシートを作成して、マクロを使用してテーブルを作成しようとすると、列の幅の設定、列タイトルの背景色の設定、線の色の太さの設定、線の色の設定などが必要になります。場合によっては、セルの結合を必要とすることもあるかもしれません。

この部分をコードで作成すると、表の見た目の微調整を行うために毎回コードの修正が必要となってしまいます。

テンプレートシートを作成することは、これを避けることが可能です。

グラフについての具体的な記事を下記に追加しました。このページの以降は、主に表についての具体例になります。

何かしらの条件下にある人のみでランキングを毎日作成して、共有することを考えた場合

テンプレートの作成(結果ファイルの作成)

得たい結果を一度、エクセルで作成します。データに関しては、一行目だけでも構いませんが、各列の最大の文字数を入力して、各列の幅を決め、表の枠は必要な行数分より多めに設定しておきます。

グラフが必要であれば、上記のようなダミーデータを使用して、エクセルのグラフ作成機能を使用して手動でグラフを作成します。この作成されたグラフは、表のデータを書き換えることでグラフに反映されます。そのため、表の内容をマクロで書き換えるだけで、必要なグラフを得ることができます。

印刷時のフッダーやヘッダー、余白の設定についても、デフォルトから変更が必要のない場合は、テンプレートとするシートに設定しておくだけで、ヘッダーやフッダーを設定するためのコードを書かずに、結果ファイルへ反映させていくことが可能になります。

マクロとして記載するコードを最小限にすることで、マクロの修正が必要となるような仕様変更対応も最小限に抑えることができますし、マクロを知らない人でもテンプレートシートの修正は可能です。

テンプレートの作成(空欄)

テンプレートを使用すると、マクロとして必要な処理は、

前処理:テンプレートシートの複製。

後処理:複製されたシートの表へデータを書き出す。

となります。

既存ファイルにシートを追加していく場合は、シート名が被らないように調整する必要があります。

マクロを書いているエクセルファイル内でテンプレートを複製することも可能ですが、共有の仕方や共有相手によって、気を付ける必要があります。身近な人と共有サーバへ格納して参照する場合は、マクロを含むのエクセルファイルをそのまま共有しても構わないと思いますが、メールでのやりとりではセキュリティソフトによって、「ウィルスファイルの可能性がある」という警告画面が表示される可能性もあるためマクロに対する知識がない人との共有には向きません。拡張子もマクロ入りエクセルファイル(xlsm)と通常のエクセルファイル(xlsx)では区別されますので、馴染みのないファイル形式で送付するよりも、xlsx形式のエクセルファイルを送付した方が親切かと思います。

シートを複製するコードは、シートの複製とリネームに記載していきます

前の項目 - フォルダ内のファイル名取得(ファイル名一覧の作成)
次の項目 - 別ファイルへシートコピー後、シート名変更をして保存する