「Excelでテクニカル分析のMACDって計算できるの?」
そんなことを思ったことありませんか?

・株式投資をExcelで管理してみたい!
・インジケーターのMACDってどんなもの?
・VBAやワークシート関数で計算はどうしたらできるの?



私もエクセルで株式投資を行っています。
その中で実際に私が行っているMACDの計算方法を紹介しますね。
2024年からスタートした新NISA制度をきっかけに、投資を始めた方も多いのではないでしょうか?
「投資信託は始めたけど、次は株式投資にも挑戦してみたい!」と考えている方もいらっしゃるはずです。
そんな時に役立つのが、株価のトレンドを分析するためのインジケーター「MACD」です。
「でも、MACDを計算するには専門的なツールが必要なんじゃないの?」と思うかもしれませんね。
実は、Excelを使えば初心者でも簡単にMACDを計算できるんです!
この記事では、Excelの「ワークシート関数」と「VBA」を使った2つの方法で、MACDを計算する具体的な手順を解説します。
株価管理の第一歩として、Excelでできることを一緒に学んでいきましょう!
元残業40時間/月のサラリーマン。
このままではいけないと思い、残業削減のためのエクセル関数やVBAの勉強を開始。
その結果、2023年に残業0を達成!
現在も、どのようにしたら業務が改善できるか?研究中。
エクセル推しです。
現在は株式投資を始め、 「エクセルを使えば投資の管理も効率化できる!」 をテーマに運用を研究しています。
【 この記事の概要 】
便利度 | |
難しさ | |
やってみたくなる度 |
Excelだけでも株式分析は可能ですが、リアルタイムの株価や高度なチャート分析をもっと簡単に行いたい方には、トレーディングビュー(TradingView)がおすすめです。
これ一つで、株式だけでなくFXや仮想通貨、金などのチャートも確認でき、無料プランでも多機能なのが魅力です。


\ 初心者でも簡単!無料で試せます /
投資の最終的な判断はご自身の責任で行ってください。
また、投資には元本割れのリスクがあることを十分ご理解ください。
この記事で「できるようになる」こと
- MACDとはどんなインジケーターか?確認を行う
- MACDの注意点について確認を行う
- エクセルでMACDを計算してみよう
MACDとは?エクセルでの計算方法も解説!
MACDは「Moving Average Convergence Divergence」の略で、日本語では「移動平均線収束拡散」と呼ばれます。
株価の移動平均を使い、トレンドの変化を視覚的に捉えるためのインジケーター(指標)です。


MACDを使いこなすと、次のようなことができます!
✅ 株価のトレンドの方向性を把握できる
✅ 買い時・売り時のタイミングを判断できる
✅ トレンドの強弱を視覚的に確認できる


MACDの構成と仕組みを分かりやすく解説します
MACDは以下の3つの要素で構成されています。


項目 | 説明 |
---|---|
MACD線 | 短期EMA(12期間)と長期EMA(26期間)の差を計算した線。 トレンドの方向性を示します。 |
シグナル線 | MACD線の9期間移動平均。 MACD線より動きが遅く、売買判断の基準になります。 |
ヒストグラム | MACD線とシグナル線の差を棒グラフで表示。 トレンドの強弱を示します。 |
MACD線とは?【トレンドの勢いを知る】
- どのような線?
- 短期EMA(12期間) と 長期EMA(26期間) の差を計算した線です。
- どのようなことが分かる?
- トレンドの方向性を把握するための主要なラインになります。
- 特徴
- MACD線は「トレンドの勢い」を示すため、動きが速いのが特徴!
- 短期EMAと長期EMAの差が大きいほど、トレンドの強さが増します。
シグナル線とは?【売買のタイミングを判断】
- どのような線?
- MACD線の9期間移動平均を計算した線。
- 売買シグナルの見方
- MACD線がシグナル線を上抜けたら「買いシグナル」 → 上昇トレンド発生の可能性
- MACD線がシグナル線を下抜けたら「売りシグナル」 → 下降トレンド発生の可能性
- 特徴
- シグナル線はMACD線の平均を取るため、MACD線より動きが遅いのが特徴!
- 単体ではなく、MACD線とのクロスを見て売買判断する。
ヒストグラムとは?【トレンドの強弱を可視化】
- どのような線?
- MACD線とシグナル線の差を棒グラフで表示したもの。
- ヒストグラムの見方
- プラス圏で拡大 → 上昇トレンドが強まっている
- マイナス圏で拡大 → 下降トレンドが強まっている
- ヒストグラムが0に近づく(短くなる) → トレンドが弱まり、転換点の可能性
- 特徴
- トレンドの強さを視覚的に判断するのに便利!
- MACD線とシグナル線がクロスする前に、ヒストグラムの縮小でトレンド転換を察知できる!
エクセルでMACDを計算する方法
エクセルでMACDを求める際は、以下の計算式を使用することで求めることができます。
項目 | 計算式(Excelで使用) | 説明 |
---|---|---|
短期EMA(12期間) | =終値 × (2/13) + 前日短期EMA × (1 - 2/13) | 短期指数平滑移動平均(12期間) |
長期EMA(26期間) | =終値 × (2/27) + 前日長期EMA × (1 - 2/27) | 長期指数平滑移動平均(26期間) |
MACD線 | =短期EMA - 長期EMA | 短期EMAと長期EMAの差 |
シグナル線(9期間) | =MACD線 × (2/10) + 前日シグナル線 × (1 - 2/10) | MACD線の9期間指数移動平均 |
ヒストグラム | =MACD線 - シグナル線 | MACD線とシグナル線の差を棒グラフ表示 |
MACDの正しい使い方と注意点|シグナルの遅れを防ぐ方法
MACDはトレンドの方向性や売買タイミングを把握するのに便利なインジケーターですが、「シグナルの遅れ」や「ダマシ」などの注意点を理解しないと、誤ったエントリーにつながる可能性があります。
ここでは、MACDを正しく活用するためのポイントと、計算時の注意点を解説します。
1 : MACDの買い・売りシグナルの遅行性に注意
MACD線がシグナル線を上抜けたら「買いシグナル」、下抜けたら「売りシグナル」とされますが、エントリーのタイミングが遅れることがあります。
これは、MACDが移動平均をもとに計算されているため、価格変動に対して遅れて反応する(遅行性がある) ことが原因です。


💡 遅行性を防ぐための3つのポイント
✅ シグナル線とのクロスだけでなく、ヒストグラムの動きも確認しましょう。
ヒストグラムの拡大は、MACDの勢いが強まっていることを示すため、クロスよりも早いサインとなります。
シグナル線とのクロスだけではなく、ヒストグラムが拡大し始めたタイミングでエントリーするのがポイントです!
✅ 他のインジケーターと併用しましょう。
MACD単体ではなく、他のインジケーターを組み合わせることで、より精度の高い売買判断が可能になります。
- RSI(相対力指数)
- 買われすぎ・売られすぎを判断。
MACDのシグナルとRSIが同じ方向を示しているときは信頼性が高いです。
- 買われすぎ・売られすぎを判断。
- ボリンジャーバンド
- 価格がバンドの上限/下限に到達したとき、MACDと組み合わせることでエントリーの精度が向上。
✅ 長期と短期のパラメータを調整する
MACDの標準設定(短期EMA:12、長期EMA:26、シグナル線:9)は、多くの市場で有効とされています。
しかし、短期トレード向けに短期EMAを9期間、長期EMAを21期間に変更する方法もあります。
ただし、パラメータを変更すると過去の統計的な有効性が失われる可能性があるため、変更は慎重に行うべきです。
2 : MACDを使う上でのその他のポイント
✅ ダマシに注意!
短期間でMACD線とシグナル線が頻繁にクロスする場合(横ばい相場など)は、ダマシとなる可能性があるため、他の指標と組み合わせて判断しましょう。
特に、ボラティリティ(価格変動幅)が低いときは、MACDの信頼性が低下するので注意が必要です。


エクセルでMACDを計算・グラフ化する方法|関数とVBAを活用
それでは、エクセルを使用してMACDを計算しグラフに表記してみましょう。
ここでは、「関数を使用する方法」と「VBAを使って自動計算する方法」の2つを紹介します。
使用する元データ
まず、以下のような株価データを用意します。


「保有している株価データはどのように取得すればいいの?」と思った方は、こちらの記事で詳しく解説しています!




エクセル関数を使ってMACDを計算・グラフ化する方法
エクセル関数を使って、MACDを計算し、その結果をグラフにプロットしてみましょう!
📌 ① MACDのヘッダーを作成しよう
まず、エクセルシートに以下のようなヘッダーを設定しましょう。


A列 | B列 | C列 | D列 | E列 | F列 | G列 |
---|---|---|---|---|---|---|
日付 | 終値 | 短期EMA (12期間) | 長期EMA (26期間) | MACD線 | シグナル線 (9期間) | ヒストグラム |
📌 ② 短期EMA・長期EMAをExcel関数で計算する
短期EMA (12期間)の計算方法
=AVERAGE(B2:B13)
→ 12期間の単純移動平均(SMA)を計算します。
=B14*(2/13) + C13*(1-2/13)
→ EMAの計算では、直近の終値に重みを付けて計算します。


短期EMA (26期間)の計算方法
=AVERAGE(B2:B27)
→ 初期値には26期間の単純移動平均(SMA)を使用します。
=B28*(2/27) + D27*(1-2/27)
→ 長期EMAは26期間のデータを基に算出します。


📌③ MACD線を計算する
=C27 - D27
→ 短期EMAと長期EMAの差を求めます。これがMACD線です。


📌 ④ シグナル線をExcelで計算する方法
=AVERAGE(E26:E34)
→ 初期値にはMACD線の9期間の単純移動平均(SMA)を使用します。
=E36*(2/10) + F35*(1-2/10)
→ 9期間の指数平滑移動平均(EMA)を用いて、シグナル線を計算します。


📌 ⑤ ヒストグラムをExcelで計算する方法
=E35 - F35
→ MACD線とシグナル線の差を計算し、視覚的にトレンドの強弱を示します。


📌 ⑥ グラフを作成する
作成が完了したデータでグラフを作成しましょう!


VBAを使ってMACDを計算・グラフ化する方法
以下は、ヘッダーが既に設定されている状態で、VBAを使用してMACDを計算・作成するコードです。
このコードは、「日付」列がA列、「終値」列がB列にある状態から処理を開始します。
また、計算に必要な「短期EMA」「長期EMA」「MACD線」「シグナル線」「ヒストグラム」の各列はC~G列に割り当てられます。


📌VBAコード
Sub CalculateMACD()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
'// シートを指定(適宜変更してください)
Set ws = ActiveSheet
'// データの最終行を取得
lastRow = ws.Cells(ws.Rows.Count, 2).End(xlUp).Row
'// 短期EMA (12期間) 初期値 (C13セル)
ws.Range("C13").Formula = "=AVERAGE(B2:B13)"
'// 短期EMA (12期間) 計算式 (C14以降)
For i = 14 To lastRow
ws.Cells(i, 3).Formula = "=B" & i & "*(2/13) + C" & i - 1 & "*(1-2/13)"
Next i
'// 長期EMA (26期間) 初期値 (D27セル)
ws.Range("D27").Formula = "=AVERAGE(B2:B27)"
'// 長期EMA (26期間) 計算式 (D28以降)
For i = 28 To lastRow
ws.Cells(i, 4).Formula = "=B" & i & "*(2/27) + D" & i - 1 & "*(1-2/27)"
Next i
'// MACD線 (短期EMA - 長期EMA) 計算式 (E28以降)
For i = 27 To lastRow
ws.Cells(i, 5).Formula = "=C" & i & " - D" & i
Next i
'// シグナル線 初期値 (F35セル)
ws.Range("F35").Formula = "=AVERAGE(E26:E34)"
'// シグナル線 (9期間EMA) 計算式 (F36以降)
For i = 36 To lastRow
ws.Cells(i, 6).Formula = "=E" & i & "*(2/10) + F" & i - 1 & "*(1-2/10)"
Next i
'// ヒストグラム (MACD線 - シグナル線) 計算式 (G35以降)
For i = 35 To lastRow
ws.Cells(i, 7).Formula = "=E" & i & " - F" & i
Next i
MsgBox "MACD計算が完了しました!", vbInformation
End Sub
このコードで使用している機能
機能名 | 説明 |
---|---|
Dim | 変数を宣言するためのキーワードです。ws (ワークシート)、lastRow (最終行)、i (ループカウンタ)などの変数を宣言しています。 |
Set | オブジェクト変数に値を設定するために使用します。 このコードでは Set ws = ActiveSheet で、アクティブなシートをws に格納しています。 |
ActiveSheet | 現在選択されているシートを指します。 このコードでは、計算対象のシートとして使用しています。 |
Range | ワークシート上のセルやセル範囲を指定するオブジェクトです。 計算式の設定やデータの取得に使用されています。 |
Formula | セルに数式を挿入するプロパティです。 このコードでは、EMAやMACDの計算式を挿入しています。 |
For…Next | 繰り返し処理を実行するためのループ構文です。 ここでは、データの各行に対して計算式を設定するために使用しています。 |
MsgBox | メッセージボックスを表示するための機能です。 このコードでは、処理完了時に「MACD計算が完了しました!」という通知を表示します。 |
Cells | 指定した行番号と列番号のセルを参照します。 このコードでは、各行の計算式を設定する際に使用されています。 |
End(xlUp) | 指定した列の最終行を取得します。 このコードでは、B列(終値列)の最終行を取得して lastRow に格納しています。 |
処理結果
このようなグラフを作成する元データが作成できます。


この記事のまとめ
この記事では、Excelを活用してテクニカル分析の指標「MACD」を計算する方法を解説しました。
MACDの基礎から、エクセル関数を使った計算方法、さらにはVBAを使った自動化まで幅広く取り上げました。
ポイントのおさらい
- MACDの基礎とその構成を理解する
- MACDは、「短期EMA」「長期EMA」「シグナル線」「ヒストグラム」の4つの要素で構成されるインジケーターです。
それぞれの役割を理解することで、トレンドの方向性や売買タイミングを把握できるようになります。
⇒ 「MACDとは?エクセルでの計算方法も解説!」をもう一度見る
- MACDは、「短期EMA」「長期EMA」「シグナル線」「ヒストグラム」の4つの要素で構成されるインジケーターです。
- Excel関数を使ってMACDを計算する
- Excelの関数を使用して、MACDを計算する手順を解説しました。
以下のポイントを学ぶことができます。- 短期EMA(12期間)と長期EMA(26期間)の計算方法
- MACD線、シグナル線、ヒストグラムを関数で計算する方法
- 計算した結果をグラフにプロットする方法
⇒ 「エクセル関数を使ってMACDを計算・グラフ化する方法」をもう一度見る
- Excelの関数を使用して、MACDを計算する手順を解説しました。
- VBAを使ってMACDを自動計算する
- VBAを活用して、MACDの計算を自動化するコードを紹介しました。
以下のポイントに触れています。- 短期EMAと長期EMAの初期値を設定する方法
- MACD線やシグナル線の計算を効率化するループ処理
- 計算結果をエクセルシートに自動的に出力する方法
⇒ 「VBAを使ってMACDを計算・グラフ化する方法」をもう一度見る
- VBAを活用して、MACDの計算を自動化するコードを紹介しました。
今回の学びを活用するために
Excelを使ってMACDを計算する方法をマスターすることで、以下のようなメリットを得られます。
- 株式投資の効率化
- 自分の投資スタイルに合わせて、カスタマイズした指標を活用できます。
- 手作業の削減
- VBAを使用すれば、反復作業を自動化し、時間を節約できます。
- 投資判断の精度向上
- トレンドの変化や売買のタイミングを視覚的に把握できるようになります。
この記事を参考に、ExcelでMACDを自在に扱えるスキルを身につけ、投資判断をさらに効率化してみてください!

