Excel で新しいデータを入力した後に、チャートを自動的に更新する方法は?
Excel で日々の売上データを視覚的に追跡するチャートを作成しており、新しい売上が記録されるたびにこのデータを定期的に更新していると仮定します。通常、範囲内にデータを挿入または変更するたびに、チャートが最新の数値を正確に反映するよう、手動でチャートのデータ範囲を調整する必要があります。この手動プロセスは、特に大規模なデータセットや頻繁に変化する情報の場合、繰り返しが多く、ミスも起こりやすくなります。幸いにも、新しいデータが追加された際にチャートを自動的に更新する実用的な方法があり、ダッシュボードやレポートを常に最新の状態に保つのに役立ちます。
Excel でチャートを自動更新するには、いくつかの方法があります。それぞれの方法は、異なるExcel バージョンやデータレイアウトに最適です。以下で紹介する解決策には、データをExcel テーブルに変換する方法、名前付き範囲と動的数式を活用する方法、そして特に複雑な要件やカスタム対応に役立つ VBA マクロを使用する方法が含まれます。
テーブルを作成して新しいデータ入力後にチャートを自動更新する
動的数式を使用して新しいデータ入力後にチャートを自動更新する
VBA コードを使用して新しいデータ入力後にチャートを自動更新する
テーブルを作成して新しいデータ入力後にチャートを自動更新する
連続したデータ範囲と対応する縦棒グラフがある場合、そのデータ範囲をExcel テーブルに変換すれば、新しい情報を追加した際にチャートが即座に自動更新されるようになります。この手法はExcel 2007 以降のバージョンで利用可能で、拡張されるデータセットの管理を大幅に簡単にします。最大のメリットは、テーブルを参照しているチャートが、テーブルに追加された新しい行を自動的に取り込む点です。以下の手順で設定できます:

1。ヘッダーと日々の数値を含む既存のデータ範囲を選択し、次に挿入タブに移動してテーブルをクリックしてください。スクリーンショットをご覧ください:
![kutools for excel タブの [テーブル] をクリック](http://cdn.extendoffice.com/images/stories/doc-excel/update-chart/doc-update-chart2.png)
2。テーブルの作成ダイアログボックスで、データにヘッダーが含まれている場合は、ヘッダーを使用するオプションがチェックされていることを確認してください。その後、OKをクリックします。(範囲にヘッダーが含まれていない場合は、このチェックボックスはオフのままにしてください。)
![[テーブルの作成] ダイアログボックスでオプションを設定](http://cdn.extendoffice.com/images/stories/doc-excel/update-chart/doc-update-chart3.png)
3。選択したデータ範囲が、構造化されたExcel テーブルとして自動的に書式設定されます。下図のように、テーブルスタイルがすでに適用されている点にご注目ください:

4。これで、テーブルの最終行の直下に新しい行を追加するたび(たとえば6 月のデータを入力するなど)、テーブルとリンクされたチャートが自動的に拡張され、追加の操作なしですぐに最新のデータが反映されます。以下の例をご参照ください:

注意点と実用的なヒント:
1。新しく入力されたデータは、既存のデータと直接隣接している必要があります(つまり、新しいデータと既存のデータの間に空行や空列を挟んではなりません)。そうでないと、テーブル(およびチャート)はその拡張を認識しません。
2。テーブル内の任意の位置に新しい行を挿入でき、チャートは自動的に更新されるため、過去の記録を修正する際にも便利です。
3。チャートが期待通りに更新されない場合は、チャートのソースデータ範囲が静的範囲ではなく、テーブルを参照していることをご確認ください。

KUTOOLS AI でExcel の魔法を解き放ちましょう
- スマート実行:セル操作、データ分析、チャート作成をすべてシンプルなコマンドで実現します。
- カスタム数式:ワークフローの効率化に役立つ、あなただけのカスタマイズ数式を生成します。
- VBA コーディング:VBA コードを簡単に記述・実装できます。
- 数式の解釈:複雑な数式が簡単に理解できます。
- テキスト翻訳:スプレッドシート内で言語の壁を乗り越えましょう!
動的数式を使用して新しいデータ入力後にチャートを自動更新する
データをExcel テーブルに変換したくない場合は、数式に基づく動的名前付き範囲をご利用いただけます。この方法では、OFFSET 関数とCOUNTA 関数を組み合わせることで、実際に存在するデータ量に応じて自動的にサイズが調整される範囲を定義します。このアプローチは、データ構造が固定されているものの、エントリが定期的に追加または削除される場合に特に効果的です。以下の実践的な手順をご覧ください:

1。まず、各データ列に動的名前付き範囲を定義します。数式タブに移動し、名前の定義をクリックしてください。
2。新しい名前ダイアログで、適切な名前(例:日付列の場合は)Date)を入力し、スコープから該当するワークシートを選択して、参照範囲フィールドに動的数式(例:=OFFSET($A$2,0,0,COUNTA($A:$A)-1))を入力してください。スクリーンショットを参考にしてください:
![[新しい名前] ダイアログボックスでオプションを設定](http://cdn.extendoffice.com/images/stories/doc-excel/update-chart/doc-update-chart7.png)
3。OKをクリックして保存します。関連する各系列またはデータ列について、以下の数式を使って同じ手順を繰り返してください:
- 列 B:Ruby:=OFFSET($B$2,0,0,COUNTA($B:$B)-1);
- 列 C:James:=OFFSET($C$2,0,0,COUNTA($C:$C)-1);
- 列 D:Freda:=OFFSET($D$2,0,0,COUNTA($D:$D)-1)
これらの動的名前付き範囲は、各列に新しいデータが追加されると自動的に拡張または縮小します。ただし、OFFSET 数式は最初のデータ行から始まり、COUNTAは指定された列内の空でないセルの総数に応じて範囲サイズを調整することにご注意ください。
4。すべての名前付き範囲を定義したら、リンクされたチャート内の任意の列を右クリックし、コンテキストメニューからデータの選択を選択します。
![右クリックメニューから [データの選択] を選択](http://cdn.extendoffice.com/images/stories/doc-excel/update-chart/doc-update-chart8.png)
5。データの選択元ダイアログボックスで、該当する系列(例:Ruby)をハイライトし、編集をクリックして、シリーズの値に適切な動的範囲を入力します(例:=Sheet3!Ruby)。以下をご覧ください:
![]() |
![]() |
6。 追加する各系列についても、対応する動的名前付き範囲を参照するように同様の手順を繰り返してください。
- James:シリーズの値:=Sheet3!James;
- Freda:シリーズの値:=Sheet3!Freda
7。水平軸ラベルの下で編集をクリックし、日付列の動的セルの名前を入力します。
![]() |
![]() |
8。OKをクリックしてすべてのダイアログを確定し、終了します。これにより、ワークシートに新しいデータエントリを追加するたびに、チャートが自動的に最新のデータポイントを反映するようになります。

- 1。データは列内の連続したセルに入力してください。動的数式では行間の空白が考慮されないため、行を飛ばすと自動拡張が意図したとおりに機能しない可能性があります。
- 2。この方法では、新しいヘッダーを追加しても、追加の系列や列は自動的に検出されません。新たに名前付き範囲を作成し、チャートのソース範囲を適宜更新する必要があります。
- 3。動的範囲が拡張されない場合は、COUNTAの範囲を再確認し、目的のデータの下に不要なエントリがないかご確認ください。
- 4。ワークシート名やセルの位置を変更した場合は、動的動作を維持するため、必ず名前付き範囲の参照を更新してください。
VBA コードを使用して新しいデータ入力後にチャートを自動更新する
非連続データの処理、まったく新しいデータ系列の自動検出、複数のチャートを同時に更新するなど、高度な要件がある場合には、VBA マクロがより高い柔軟性と自動化を実現します。データの変更に応じて短いマクロを作成すれば、チャートのソース範囲を自動的に更新するプロセスを自動化でき、前述の方法では直接対応できない複雑なシナリオにも対応可能です。
データが散在していたり、規則的なブロックになっていなかったりする場合、またはチャートに新しい系列や列を定期的に追加する必要がある場合は、ぜひこのソリューションをご活用ください。以下の手順に従って設定してください。
1。まず、通常どおりチャートを挿入します。
2。VBA エディターを開くには、Alt + F11を押します。
3。VBA エディターで、挿入 > 標準モジュールをクリックして、新しいコードモジュールを挿入します。その後、以下のマクロコードをモジュールウィンドウに貼り付けてください。
Sub AutoUpdateChartData()
Dim ws As Worksheet
Dim chrt As ChartObject
Dim lastRow As Long
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set ws = ActiveSheet
Set chrt = ws.ChartObjects(1) ' Modify if you have more than 1 chart on the sheet
' Find the last row of data in column A (assume your data starts from A1, adjust as needed)
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
' Set the data range for the chart dynamically (Modify range as per your data location)
chrt.Chart.SetSourceData Source:=ws.Range("A1:D" & lastRow)
On Error GoTo 0
End Sub 3。マクロを実行するには、実行ボタンをクリックしてください。すると、チャートが即座に更新され、最終入力行までの最新データすべてが反映されます。
さらに自動化を強化するには、新しいデータが入力されるたびにこのマクロが自動的に実行されるように設定できます。
これを適用するには、ワークシートタブを右クリックしてコードの表示を選択し、上記のコードをワークシートモジュールに貼り付けてください。これにより、シートに変更を加えるたびにマクロが自動で実行され、チャートが常に最新の状態に保たれます。
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
xTitleId = "KutoolsforExcel"
Call AutoUpdateChartData
End Sub ヒントと注意点:
- 実際のデータセットの場所と構造に合わせて、データ範囲(例:「A1:D」& lastRow)を調整してください。非連続範囲の場合は、コード内で直接範囲文字列をカスタマイズすることをおすすめします。
- 複数のチャートがある場合は、ChartObjects(1) を適切なチャートを参照するように調整するか、必要に応じてワークシート上のすべての ChartObjects をループ処理してください。
- この VBA ソリューションは、動的で複雑なデータセットに対して最大限の柔軟性を発揮しますが、マクロを有効にしてファイルをマクロ対応ブック(。xlsm)として保存する必要があります。
- チャートが期待通りに更新されない場合は、マクロ内のソースデータ範囲が実際のデータブロックと一致していること、およびExcel 環境でマクロが有効になっていることを改めてご確認ください。
関連記事:
Excel でチャートに水平の平均線を追加するにはどうすればよいですか?
Excel で複合グラフを作成して第2 軸を追加するには、どうすればよいですか?
最高の Office 業務効率化ツール
| 🤖 | KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行 | コード生成| カスタム数式作成 | データ分析とチャート生成| 拡張機能呼び出し… |
| 人気の機能:検索・ハイライト、または重複をマーキング | 空白行を削除する | データを失うことなく列の結合またはセルを | 数式を使用しない四捨五入... | |
| スーパー LOOKUP:複数条件 VLookup | 複数値 VLookup | 複数シート間 VLookup | ファジーマッチ.... | |
| 高度なドロップダウンリスト:ドロップダウンリストをすばやく作成 | 連動型ドロップダウンリスト | 複数選択可能なドロップダウンリスト.... | |
| 列マネージャー:指定した数の列を追加|列の移動|非表示列の表示状態を切り替え|範囲および列の比較... | |
| 注目の機能:グリッドフォーカス | デザインビュー |強化された数式バー | ワークブックとシートマネージャー | リソースライブラリ(オートテキスト)| 日付ピッカー | ワークシートの統合 | 暗号化/セルの復号化 | リストからメール送信 | スーパーフィルター | 特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。 | |
| トップ15 ツールセット:12 テキストツール(テキストの追加、特定の文字を削除、...)| 50+チャートタイプ(ガントチャート、...)| 40+実用的関数(誕生日に基づいて年齢を計算します、...)| 19 挿入ツール(QR コードを挿入、パスから画像を挿入、...)| 12 変換ツール(単語に変換する、為替レートの変換、...)| 7 結合と分割ツール(高度な行のマージ、セルの分割、...)|さらに多数 |
Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。
Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします
- Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
- 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
- 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!
すべてのKutools アドインが、たった1 つのインストーラーで完結。
Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。
- オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
- インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
- 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
- 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
- 最高のお得感— 個別アドイン購入よりお得
![[データソースの選択] ダイアログボックスでオプションを設定](http://cdn.extendoffice.com/images/stories/doc-excel/update-chart/doc-update-chart9.png)
![[系列の値] ダイアログに数式を入力](http://cdn.extendoffice.com/images/stories/doc-excel/update-chart/doc-update-chart10.png)
![[横 (項目) 軸ラベル] の下にある [編集] ボタンをクリック](http://cdn.extendoffice.com/images/stories/doc-excel/update-chart/doc-update-chart11.png)
