「Excelで株価チャートを自動更新したいけど、マクロとか難しそうで手が出ない…」
そう感じている人は多いはずだ。ネットで調べると「VBAを使え」「Power Queryで取得しろ」と出てくるが、初心者には敷居が高すぎる。実はExcel 365にはSTOCKHISTORY関数という武器があり、証券コードをセルに入力するだけで株価データが自動取得できる。マクロ不要・コード不要・関数1本で完結する。
ぼく自身、以前は毎日手作業でYahoo!ファイナンスから終値をコピーしていた。30銘柄分をこなすと1時間以上かかっていた。STOCKHISTORY関数に切り替えてからは、証券コードを変えるだけで全銘柄の株価履歴グラフが数秒で更新される。今回はその手順をそのまま公開する。



📋 この記事でわかること
- STOCKHISTORY関数の基本構文と証券コードの指定方法
- 株価データから自動更新チャートを作る手順(STEP1〜4)
- 証券コードをセル参照に変えて銘柄切り替えを1クリック化する方法
- よくあるエラーと対処法
📌 結論:証券コード入力だけで株価チャートは自動更新できる
STOCKHISTORY関数+Excelグラフを組み合わせれば、マクロ不要で株価チャートの自動更新が実現できる。証券コードを1つのセルに入力しておき、そのセルをINDIRECT関数やセル参照でSTOCKHISTORYに渡す。銘柄を変えたいときはコードを打ち替えるだけ。グラフは自動で描き直される。
必要なのはExcel 365(またはExcel 2021以降)だけだ。Power Queryもマクロも要らない。関数が苦手な人でも、この記事のSTEP通りに進めれば30分以内に動くものが完成する。

最初にこれを知っていれば、毎日の手作業コピペを1年もしなくて済んだと思う。正直悔しかった。

📌 STEP1|STOCKHISTORY関数って何?まず仕組みを押さえる
✅ 結論:ネットから株価履歴を自動取得するExcel専用関数だ
STOCKHISTORY関数は、Microsoft 365のExcelに搭載された株価データ取得専用の関数だ。インターネットに接続した状態でセルに入力すると、指定した銘柄・期間・頻度の株価履歴(始値・高値・安値・終値・出来高)を自動でスピル(配列展開)する。
基本の構文は以下のとおりだ。
=STOCKHISTORY(銘柄, 開始日, [終了日], [頻度], [ヘッダー], [プロパティ...])
たとえばトヨタ(7203)の直近30日間の終値を取得したい場合はこう書く。=STOCKHISTORY("7203.T", TODAY()-30, TODAY(), 0, 1, 1)。末尾の「.T」は東証上場を示すサフィックスだ。米国株なら「AAPL」のようにティッカーシンボルをそのまま使える。
.png)
つまり「7203.T」って入力するだけで、トヨタの株価が自動で並ぶにゃ?すごいにゃ。
🖼 ここに図解を挿入(下のプロンプトで画像を作って差し替えてください)
図の内容: STOCKHISTORY関数の構文と各引数の対応表(銘柄・開始日・終了日・頻度・ヘッダー・プロパティ)を横並びで示した図解
ChatGPT(DALL-E)用プロンプト: A clean flat-design diagram showing the Excel STOCKHISTORY function syntax. Each argument (ticker, start_date, end_date, interval, headers, properties) is labeled in Japanese with colored brackets and short explanations below each one. White background, teal and orange accent colors, modern sans-serif Japanese font.
Canva用の指示: インフォグラフィックテンプレートを使い、「=STOCKHISTORY(“7203.T”, 開始日, 終了日, 0, 1, 1)」の数式を横に並べ、各引数に吹き出しで日本語の説明を付ける。配色はティール×オレンジ。
📌 STEP2|証券コードをセル参照にする方法は?
✅ 結論:コードをB1セルに入力し、関数からそのセルを参照するのが最速だ
銘柄コードを関数の中に直書きすると、銘柄を変えるたびに数式を書き直す手間が生じる。セル参照にすれば、1つのセルを書き換えるだけで全データとグラフが連動する。
設定手順はシンプルだ。B1セルに証券コード(例:「7203」)を入力し、B2セルにサフィックス付きのコードをCONCAT関数で生成する。数式はこうなる。=B1&".T"。これでB2セルには「7203.T」が表示される。あとはSTOCKHISTORY関数の第1引数にB2を参照させるだけだ。
=STOCKHISTORY(B2, TODAY()-90, TODAY(), 0, 1, 1)
B1セルを「4661」(オリエンタルランド)に変えれば、瞬時にディズニー株の株価履歴に切り替わる。INDIRECT関数を組み合わせると、ドロップダウンリストからの選択にも対応できる。

ぼくはB1にプルダウンリストを設定して、5銘柄をすぐ切り替えられるようにしている。これが地味に便利だ。
📌 STEP3|株価データからグラフを作るにはどうすればいい?
✅ 結論:スピルされたデータ範囲を選択して折れ線グラフを挿入するだけだ
STOCKHISTORY関数を入力すると、日付と終値(または始値〜終値)がスピル形式でセルに展開される。このデータ範囲をそのままグラフのデータ源として使う。
手順は以下のとおりだ。
- ① STOCKHISTORY関数をD2セルに入力(日付列・終値列がD列とE列にスピル)
- ② D列〜E列の全データを選択(スピル範囲はD2#と入力するとすべて参照できる)
- ③「挿入」タブ→「折れ線グラフ」→「折れ線」を選択
- ④ 横軸に日付、縦軸に終値が自動でマッピングされる
グラフのデータ範囲にスピル参照(D2#)を使えば、データが増えても自動で拡張される。手動でグラフの範囲を広げる作業が不要になる。証券コードを変えれば、グラフも即座に書き換わる。これが「自動更新」の正体だ。

D2#って書くだけでスピル範囲を全部取れるにゃ。これ知らないとグラフ範囲を毎回直すはめになるにゃ。
🖼 ここに図解を挿入(下のプロンプトで画像を作って差し替えてください)
図の内容: STOCKHISTORY関数のスピル展開→グラフ挿入→自動更新の流れを示すフロー図(B1セルにコード入力→スピルデータ展開→折れ線グラフ自動更新)
ChatGPT(DALL-E)用プロンプト: A simple 3-step flowchart in flat design showing: Step 1 “Enter stock code in cell B1” → Step 2 “STOCKHISTORY function auto-expands date and price data” → Step 3 “Line chart updates automatically”. Japanese labels, clean white background, blue and green arrows, modern UI mockup style.
Canva用の指示: フロー図テンプレートを使い、「①証券コード入力」→「②株価データ自動展開」→「③グラフ自動更新」の3ステップを矢印でつなぐ。吹き出しに「マクロ不要」「関数1本」の補足テキストを入れる。配色は青×緑。
📌 STEP4|エラーが出たときはどう対処する?
✅ 結論:「.T」の有無・ネット接続・Excel バージョンの3点を確認するのが正解だ
STOCKHISTORY関数で最もよく出るエラーは「#GETTING_DATA」と「#N/A」の2種類だ。それぞれ原因と対処が異なる。
#GETTING_DATAはデータ取得中のサインだ。数秒〜数十秒待てば解消することが多い。Wi-Fiが不安定な環境では解消しない場合があるので、接続状態を確認してほしい。
#N/Aは銘柄コードが認識されていないサインだ。日本株は「7203.T」のように末尾に「.T」を付けることが必須だ。「7203」だけでは取得できない。米国株は「AAPL」「MSFT」のようにティッカーシンボルをそのまま使う。
また、STOCKHISTORY関数はExcel 365・Excel 2021以降専用だ。Excel 2019以前では関数自体が存在しないため、どうやっても動かない。Excelのバージョンを「ファイル→アカウント→Excelのバージョン情報」で確認してみてほしい。
.png)
「.T」を付けなくてエラーが出て1時間悩んでたやつ、ぼくのことにゃ…という話を聞いたにゃ。

…黙ってて。
📌 もっと使いこなしたい人向け|応用設定はどこまでできる?
✅ 結論:複数銘柄の比較チャートや週次・月次集計も関数の組み合わせで実現できる
STOCKHISTORY関数の第3引数(頻度)を変えると、日次(0)・週次(1)・月次(2)の切り替えが可能だ。月次チャートで長期トレンドを見たいときは「2」を指定するだけでいい。
複数銘柄を並べて比較したい場合は、シートを銘柄ごとに分けるか、STOCKHISTORY関数を複数行に並べて横に展開する方法が使いやすい。「Excelで投資管理」を本格的にやるなら、銘柄一覧シートと自動更新チャートシートを分けて設計するのがベストだ。
ローソク足チャートを作りたい場合は、STOCKHISTORYで始値・高値・安値・終値の4列を取得し、Excelの「株価チャート(ローソク足)」グラフを選択する。取得する列の指定は第6引数以降に「0, 1, 2, 3」と並べるだけだ。株価チャートの読み方についてはこちらの記事も参考にしてみてほしい。

📌 まとめ
今回の手順を振り返る。
- STOCKHISTORY関数はExcel 365専用の株価自動取得関数。マクロ不要・コード不要
- 日本株は「7203.T」のように末尾に「.T」を付けるのが必須
- 証券コードをB1セルに入力し、STOCKHISTORY関数からセル参照することで1クリック銘柄切り替えが実現する
- グラフのデータ範囲にスピル参照(例:D2#)を使えばグラフも自動拡張される
- エラーが出たら「.T の有無・ネット接続・Excelバージョン」の3点を最初に確認する
株価チャートの自動更新は、関数1本と5分の設定で完成する。手作業でデータをコピーし続ける時間は今日で終わりにしてほしい。まずはB1セルに自分の保有銘柄のコードを入力するところから始めてみてください。
📌 よくある質問
✅ STOCKHISTORY関数はExcel無料版(Web版)でも使える?
結論:Excel Web版では動作しない場合があるため、デスクトップ版の使用を推奨する
STOCKHISTORY関数はMicrosoft 365サブスクリプションのデスクトップ版Excelで最も安定して動作する。Excel Web版(ブラウザ版)でも対応しているケースはあるが、データ取得の安定性や更新速度はデスクトップ版に劣ることが多い。Excel 2019以前はそもそも関数が存在しないため使用不可だ。バージョン確認は「ファイル→アカウント→Excelのバージョン情報」で行える。
✅ 米国株(Apple・Teslaなど)の株価も取得できる?
結論:取得できる。ティッカーシンボルをそのまま入力すればいい
米国株はティッカーシンボル(AAPL・TSLA・MSFTなど)をそのまま第1引数に入力すれば取得できる。日本株と違い「.T」のようなサフィックスは不要だ。ただし、取得できるデータはMicrosoftが契約しているデータプロバイダに依存するため、銘柄によっては取得できないことがある。メジャーな銘柄(S&P500構成銘柄など)は概ね問題なく取得できる。
✅ Power Queryを使った株価取得との違いは何?
結論:手軽さはSTOCKHISTORY関数が上、柔軟性と安定性はPower Queryが上だ
STOCKHISTORY関数は関数を1つ入力するだけで完結するため、初心者でもすぐ使える。一方でデータ取得元や更新タイミングの細かい制御はできない。Power Queryはウェブスクレイピングや外部APIとの接続が可能で、より柔軟なデータ取得が実現できるが、設定の学習コストが高い。最初はSTOCKHISTORY関数で始め、物足りなくなったらPower Queryに移行するルートが現実的だ。投資管理をExcelで本格化したい人はこちらの実務Excelまとめ記事も参考にしてみてほしい。
✅ リアルタイムの株価は取得できる?
結論:リアルタイムではなく、基本的に前日終値までのデータが対象だ
STOCKHISTORY関数で取得できるデータは、基本的に前日までの終値・始値・高値・安値・出来高だ。リアルタイムの株価(ティック・分足)はこの関数では対応していない。リアルタイムデータが必要な場合は、各証券会社のツール(例:松井証券ネットストックハイスピードなど)を使う方が適切だ。Excelはあくまで「履歴データを管理・分析する」用途に向いている。
📚 参考文献
※本記事の情報は2026年7月時点のものです。Excelの仕様変更・データプロバイダの変更により、関数の挙動が変わる場合があります。最新情報はMicrosoft公式サポートページをご確認ください。
※本記事は情報提供を目的としており、投資の助言を目的としたものではありません。投資はリスクを伴います。実際の投資判断はご自身の責任でお願いします。






_2-300x300.png)





-分析結果-300x200.png)




コメント