はじめに
定期レポートを作成する際、グラフを毎回ドラッグで整列させると手間がかかります。VBA の ChartObjects プロパティとセル座標を組み合わせれば、位置と大きさを一括で揃えられます。本記事では、セル範囲にフィットさせる基本コードと要点を解説いたします。
サンプルコード
Sub ResizeChartToRange()
Dim ws As Worksheet ' 操作対象シート
Dim layoutArea As Range ' グラフの配置先セル範囲
Dim chartObj As ChartObject ' 対象グラフ
' 1. シートとセル範囲を指定
Set ws = ThisWorkbook.Worksheets("Dashboard") ' 任意のシート名
Set layoutArea = ws.Range("E3:J18") ' 見出しを含む想定範囲
' 2. グラフを取得し、位置とサイズをセル範囲に合わせる
Set chartObj = ws.ChartObjects("PerformanceChart") ' 作成時に命名しておく
With chartObj
.Top = layoutArea.Top
.Left = layoutArea.Left
.Width = layoutArea.Width
.Height = layoutArea.Height
End With
End Sub
コード解説
| 手順 | 説明 | 重要ポイント |
|---|---|---|
| 1 | シートとセル範囲を取得 | Range("E3:J18") を変更すれば他の場所にも流用できます。 |
| 2 | グラフを取得し配置 | ChartObjects("PerformanceChart") で識別するため、生成時に分かりやすい名前を付けておくと保守性が向上します。 |
応用アイデア
- 行数が増減する場合は、
CurrentRegionやCells(Rows.Count, 列番号).End(xlUp).Rowを利用してセル範囲を自動拡張すると便利です。 - 複数のグラフがある場合は、配列やコレクションでグラフ名を管理し、ループで位置・サイズを一括調整できます。
まとめ
Top、Left、Width、Height プロパティをセル範囲に合わせて設定することで、グラフの配置を自動化できます。シート名・セル範囲・グラフ名を変数で管理すれば再利用性が高まり、資料更新の手間を大幅に削減できます。定例レポートやダッシュボード作成の効率化に、ぜひ本サンプルをお役立てください。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
