積立投資シミュレーター

積立投資シミュレーターは、毎月一定額を投資した場合の将来的な資産額を計算できるツールです。

複利効果を考慮した計算により、長期投資の効果を視覚的に理解できます。

積立投資シミュレーター

最終評価額 ¥0
投資元本 ¥0
評価益 ¥0

⚠️ 注意事項

  • 計算された数値は、あくまでもシミュレーションであり、将来の運用成果等を示唆および保証するものではありません。
  • 本シミュレーションは、1ヶ月に1回再投資した複利で計算しています。
  • 本シミュレーションでは、税金、手数料、費用等は考慮しておりません。
  • 実際の投資結果は市場環境の変動により大きく異なる場合があります。

免責事項

本シミュレーションは投資判断の参考となる情報提供のみを目的として作成されたもので、特定の商品の購入を推奨したり、個々の投資家の特定の投資目的、または要望を考慮しているものではありません。投資に関する最終決定は投資家ご自身の判断と責任でなされるようお願いします。万一、本シミュレーションに基づいてお客様が損害を被ったとしても、当方は一切その責任を負うものではありません。

以下のコードをコピーしてWordPressのブロックエディタの「カスタムHTML」に入力。

<!-- MSIM:STYLE-START -->
<style>
.investment-simulator *{margin:0;padding:0;box-sizing:border-box}
.investment-simulator{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;line-height:1.6;color:#333}
.investment-simulator .container{max-width:1200px;margin:0 auto;background:#fff;border-radius:12px;box-shadow:0 2px 12px rgba(0,0,0,.1);padding:30px}
.investment-simulator h1{font-size:28px;margin:0 0 30px;color:#1a1a1a;text-align:center}
.investment-simulator .input-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin:0 0 30px}
.investment-simulator .input-group{display:flex;flex-direction:column}
.investment-simulator .input-group label{font-size:14px;font-weight:600;margin:0 0 8px;color:#555}
.investment-simulator .input-group input,.investment-simulator .input-group select{padding:12px;border:2px solid #e0e0e0;border-radius:8px;font-size:16px;transition:.3s;background:#fff}
.investment-simulator .input-group input:focus,.investment-simulator .input-group select:focus{outline:0;border-color:#4a90e2;box-shadow:0 0 0 3px rgba(74,144,226,.1)}
.investment-simulator .input-group input:hover,.investment-simulator .input-group select:hover{border-color:#b0b0b0}
.investment-simulator .results-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin:0 0 30px;padding:20px;background:#f8f9fa;border-radius:8px}
.investment-simulator .result-item{display:flex;flex-direction:column;align-items:center;padding:15px;background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.05)}
.investment-simulator .result-label{font-size:13px;color:#777;margin:0 0 8px;font-weight:500}
.investment-simulator .result-value{font-size:24px;font-weight:700;color:#4a90e2}
.investment-simulator .result-value.principal{color:#757575}
.investment-simulator .result-value.profit{color:#2ecc71}
.investment-simulator .chart-section{position:relative;height:400px;margin-top:20px}
.investment-simulator .chart-section canvas{width:100%!important;height:100%!important}
.investment-simulator .disclaimer-section{margin-top:40px;padding:20px;background:#fff3cd;border-left:4px solid #ffc107;border-radius:4px}
.investment-simulator .disclaimer-section .disclaimer-title{font-size:13px;font-weight:600;color:#856404;margin:0 0 10px}
.investment-simulator .disclaimer-section ul{margin:0 0 15px 20px}
.investment-simulator .disclaimer-section li{font-size:12px;color:#856404;margin:0 0 6px;line-height:1.6}
.investment-simulator .disclaimer-section .disclaimer-text{font-size:12px;color:#856404;line-height:1.6;margin:0}
@media (max-width:768px){
  .investment-simulator .container{padding:20px}
  .investment-simulator h1{font-size:24px;margin-bottom:20px}
  .investment-simulator .input-section{grid-template-columns:1fr;gap:15px}
  .investment-simulator .results-section{grid-template-columns:1fr;padding:15px}
  .investment-simulator .result-value{font-size:20px}
  .investment-simulator .chart-section{height:300px}
}
@media (max-width:480px){
  .investment-simulator .container{padding:15px}
  .investment-simulator h1{font-size:20px}
  .investment-simulator .input-group input,.investment-simulator .input-group select{padding:10px;font-size:14px}
  .investment-simulator .result-value{font-size:18px}
}
</style>
<!-- MSIM:STYLE-END -->

<!-- MSIM:HTML-START -->
<div class="investment-simulator" data-tool="investment" data-version="1.0.2">
  <div class="container">
    <h1>積立投資シミュレーター</h1>

    <div class="input-section">
      <div class="input-group">
        <label>初期投資額(円)</label>
        <input type="number" data-ms-initial-input value="0" min="0" max="100000000" step="10000">
      </div>
      <div class="input-group">
        <label>積立投資額/月(円)</label>
        <input type="number" data-ms-monthly-input value="30000" min="0" max="1000000" step="1000">
      </div>
      <div class="input-group">
        <label>想定利回り(年率%)</label>
        <input type="number" data-ms-annual-input value="9" min="0" max="20" step="0.1">
      </div>
      <div class="input-group">
        <label>積立期間(年)</label>
        <select data-ms-years-input>
          <option value="1">1年</option>
          <option value="3">3年</option>
          <option value="5">5年</option>
          <option value="10">10年</option>
          <option value="15">15年</option>
          <option value="20" selected>20年</option>
          <option value="25">25年</option>
          <option value="30">30年</option>
          <option value="35">35年</option>
          <option value="40">40年</option>
        </select>
      </div>
    </div>

    <div class="results-section">
      <div class="result-item">
        <span class="result-label">最終評価額</span>
        <span class="result-value" data-ms-final>¥0</span>
      </div>
      <div class="result-item">
        <span class="result-label">投資元本</span>
        <span class="result-value principal" data-ms-principal>¥0</span>
      </div>
      <div class="result-item">
        <span class="result-label">評価益</span>
        <span class="result-value profit" data-ms-profit>¥0</span>
      </div>
    </div>

    <div class="chart-section">
      <canvas data-ms-canvas></canvas>
    </div>

    <div class="disclaimer-section">
      <p class="disclaimer-title">⚠️ 注意事項</p>
      <ul>
        <li>計算された数値は、あくまでもシミュレーションであり、将来の運用成果等を示唆および保証するものではありません。</li>
        <li>本シミュレーションは、1ヶ月に1回再投資した複利で計算しています。</li>
        <li>本シミュレーションでは、税金、手数料、費用等は考慮しておりません。</li>
        <li>実際の投資結果は市場環境の変動により大きく異なる場合があります。</li>
      </ul>
      <p class="disclaimer-title">免責事項</p>
      <p class="disclaimer-text">本シミュレーションは投資判断の参考となる情報提供のみを目的として作成されたもので、特定の商品の購入を推奨したり、個々の投資家の特定の投資目的、または要望を考慮しているものではありません。投資に関する最終決定は投資家ご自身の判断と責任でなされるようお願いします。万一、本シミュレーションに基づいてお客様が損害を被ったとしても、当方は一切その責任を負うものではありません。</p>
    </div>

    <div style="text-align:right;margin-top:30px;color:#999;font-size:12px">
      Powered by <a href="https://minna-calc.com/" target="_blank" rel="noopener" style="color:#4a90e2;text-decoration:none">みんなのシミュレーター</a>
    </div>
  </div>
</div>
<!-- MSIM:HTML-END -->

<!-- MSIM:JS-START -->
<script>
(()=>{
  "use strict";
  
  // 通貨フォーマッター
  const fmt = new Intl.NumberFormat("ja-JP", {
    style: "currency",
    currency: "JPY",
    minimumFractionDigits: 0,
    maximumFractionDigits: 0
  });
  
  // Chart.js CDN
  const CJ_URL = "https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js";
  let loadingCJ = false;
  let loadedCJ = !!window.Chart;
  
  // Chart.js遅延読み込み
  function ensureChartJs(cb) {
    if (loadedCJ) {
      cb();
      return;
    }
    
    if (!loadingCJ) {
      loadingCJ = true;
      const s = document.createElement("script");
      s.src = CJ_URL;
      s.defer = true;
      s.onload = () => {
        loadedCJ = true;
        cb && cb();
      };
      s.onerror = () => {
        console.error("Chart.js load failed");
      };
      document.head.appendChild(s);
    } else {
      const t = setInterval(() => {
        if (loadedCJ) {
          clearInterval(t);
          cb && cb();
        }
      }, 50);
    }
  }
  
  // 初期化
  function boot(root) {
    let chart = null;
    let lastData = null;
    
    const q = s => root.querySelector(s);
    const els = {
      i: q("[data-ms-initial-input]"),
      m: q("[data-ms-monthly-input]"),
      a: q("[data-ms-annual-input]"),
      y: q("[data-ms-years-input]"),
      f: q("[data-ms-final]"),
      p: q("[data-ms-principal]"),
      pr: q("[data-ms-profit]"),
      cv: q("[data-ms-canvas]")
    };
    
    // 複利計算
    const calc = (I, M, A, Y) => {
      const r = A / 100 / 12;
      const out = [];
      
      for (let y = 1; y <= Y; y++) {
        const m = y * 12;
        const iv = I * Math.pow(1 + r, m);
        const mv = r > 0 ? M * ((Math.pow(1 + r, m) - 1) / r) : M * m;
        const tv = iv + mv;
        const ti = I + M * m;
        const pf = tv - ti;
        
        out.push({
          y,
          TV: Math.round(tv),
          PI: Math.round(ti),
          PF: Math.round(pf)
        });
      }
      
      return out;
    };
    
    // グラフ描画
    function draw(data) {
      lastData = data;
      
      if (!loadedCJ) {
        ensureChartJs(() => draw(lastData));
        return;
      }
      
      const labels = data.map(d => `${d.y}`);
      const principal = data.map(d => d.PI);
      const profit = data.map(d => d.PF);
      
      const cfg = {
        type: "bar",
        data: {
          labels: labels,
          datasets: [
            {
              label: "投資元本",
              data: principal,
              backgroundColor: "rgba(117,117,117,.8)",
              borderColor: "rgba(117,117,117,1)",
              borderWidth: 1
            },
            {
              label: "評価益",
              data: profit,
              backgroundColor: "rgba(74,144,226,.8)",
              borderColor: "rgba(74,144,226,1)",
              borderWidth: 1
            }
          ]
        },
        options: {
          responsive: true,
          maintainAspectRatio: false,
          plugins: {
            legend: {
              display: true,
              position: "top",
              labels: {
                font: {
                  size: 13,
                  family: '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif'
                },
                padding: 15
              }
            },
            tooltip: {
              mode: "index",
              intersect: false,
              callbacks: {
                label: t => (t.dataset.label ? t.dataset.label + ": " : "") + fmt.format(t.parsed.y),
                footer: ts => "合計: " + fmt.format(ts.reduce((T, i) => T + i.parsed.y, 0))
              },
              backgroundColor: "rgba(0,0,0,.8)",
              padding: 12,
              titleFont: { size: 14 },
              bodyFont: { size: 13 },
              footerFont: { size: 14, weight: "bold" }
            }
          },
          scales: {
            x: {
              stacked: true,
              grid: { display: false },
              ticks: { font: { size: 11 } }
            },
            y: {
              stacked: true,
              beginAtZero: true,
              ticks: {
                callback: v => fmt.format(v),
                font: { size: 11 }
              },
              grid: { color: "rgba(0,0,0,.05)" }
            }
          },
          animation: {
            duration: 750,
            easing: "easeInOutQuart"
          }
        }
      };
      
      if (chart) {
        chart.destroy();
      }
      chart = new Chart(els.cv, cfg);
    }
    
    // 更新処理
    function update() {
      const I = parseFloat(els.i.value) || 0;
      const M = parseFloat(els.m.value) || 0;
      const A = parseFloat(els.a.value) || 0;
      const Y = parseInt(els.y.value) || 1;
      
      const data = calc(I, M, A, Y);
      const last = data[data.length - 1];
      
      els.f.textContent = fmt.format(last.TV);
      els.p.textContent = fmt.format(last.PI);
      els.pr.textContent = fmt.format(last.PF);
      
      draw(data);
    }
    
    // イベントリスナー
    ["input", "change"].forEach(v => {
      els.i.addEventListener(v, update);
      els.m.addEventListener(v, update);
      els.a.addEventListener(v, update);
    });
    els.y.addEventListener("change", update);
    
    // Chart.js先読み
    if ("IntersectionObserver" in window) {
      const io = new IntersectionObserver(es => {
        if (es.some(e => e.isIntersecting)) {
          ensureChartJs(() => {});
          io.disconnect();
        }
      });
      io.observe(els.cv);
    }
    
    update();
  }
  
  // 起動
  window.addEventListener("DOMContentLoaded", () => {
    document.querySelectorAll('.investment-simulator[data-tool="investment"]').forEach(boot);
  });
  
})();
</script>
<!-- MSIM:JS-END -->

積立投資シミュレーターは、毎月一定額を投資した場合の将来的な資産額を計算できるツールです。

複利効果を考慮した計算により、長期投資の効果を視覚的に理解できます。

目次

このツールでできること

  • 複利計算: 月次複利で正確にシミュレーション
  • グラフ表示: 元本と運用益の推移を視覚化
  • 柔軟な設定: 初期投資額、積立額、利回り、期間を自由に設定可能

使い方

1. 初期投資額を入力

まとまった資金がある場合は、「初期投資額」に金額を入力します。

  • 最初から積立のみで始める場合は「0円」でOK
  • 例:ボーナスや退職金などで最初に100万円投資する場合は「1,000,000」と入力

2. 積立投資額/月を入力

毎月投資する金額を設定します。

  • 例:毎月3万円積み立てる場合は「30000」と入力
  • つみたてNISAの満額(月33,333円)や、iDeCoの拠出限度額に合わせて設定するのもおすすめ

3. 想定利回りを設定

年間の平均利回りを予想して入力します。

参考値:

  • 保守的な予想:3〜5%
  • 一般的な株式投資:5〜7%
  • 米国株(S&P500)の長期平均:約9%
  • 積極的な予想:10%以上

※過去の実績はあくまで参考です。将来の運用成果を保証するものではありません。

4. 積立期間を選択

投資を続ける期間を選択します。

  • 短期:1〜5年
  • 中期:10〜15年
  • 長期:20年以上

長期間になるほど、複利効果が大きくなります。

計算結果の見方

シミュレーション結果は3つの数値とグラフで表示されます。

最終評価額

投資期間終了時点での資産総額です。

「元本 + 運用益」の合計金額が表示されます。

投資元本

実際に投資した金額の合計です。

計算式:初期投資額 + (毎月の積立額 × 積立月数)

評価益

運用によって増えた利益の部分です。

計算式:最終評価額 – 投資元本

この金額が大きいほど、投資の効果が高かったことを意味します。

グラフの見方

積み上げ棒グラフで、年ごとの資産推移が表示されます。

  • グレー部分: 投資元本(自分が投資した金額)
  • 青色部分: 評価益(運用で増えた金額)

グラフにマウスを乗せると、その年の詳細な金額が表示されます。

実際のシミュレーション例

例1:つみたてNISA満額(20年)

  • 初期投資額:0円
  • 積立投資額/月:33,333円
  • 想定利回り:5%
  • 積立期間:20年

結果:

  • 最終評価額:約1,370万円
  • 投資元本:約800万円
  • 評価益:約570万円

例2:iDeCo(会社員・30年)

  • 初期投資額:0円
  • 積立投資額/月:23,000円
  • 想定利回り:3%
  • 積立期間:30年

結果:

  • 最終評価額:約1,330万円
  • 投資元本:828万円
  • 評価益:約502万円

※iDeCoには別途税制優遇があるため、実質的なメリットはさらに大きくなります。

例3:まとまった資金の運用

  • 初期投資額:1,000,000円
  • 積立投資額/月:0円
  • 想定利回り:7%
  • 積立期間:20年

結果:

  • 最終評価額:約387万円
  • 投資元本:100万円
  • 評価益:約287万円

よくある質問

税金や手数料は考慮されていますか?

いいえ、このシミュレーターでは税金や手数料は考慮していません。

実際の投資では以下のコストが発生します:

  • 運用管理費用(信託報酬)
  • 売却時の税金(利益の約20%)
  • ※つみたてNISAやiDeCoは非課税

想定利回りはどう設定すれば良いですか?

投資対象によって異なりますが、以下を参考にしてください:

  • 全世界株式: 5〜7%
  • 米国株式(S&P500): 7〜9%
  • バランス型: 3〜5%
  • 債券中心: 1〜3%

過度に楽観的な数値は避け、保守的に設定することをおすすめします。

複利で計算されていますか?

はい、月次複利で計算しています。

毎月の運用益が元本に組み込まれ、翌月以降の運用益計算に反映されます。

このツールは無料ですか?

完全無料でご利用いただけます。

会員登録も不要です。

計算結果は正確ですか?

シミュレーションは正確な数式で計算されていますが、以下の点にご注意ください。

  • 実際の市場は変動するため、設定した利回り通りにはならない
  • 税金や手数料を考慮していない
  • あくまで参考値として活用してください

注意事項

このシミュレーターについて

✅ すべての計算がブラウザ内で完結

✅ サーバーとの通信ゼロ

✅ データベース接続なし

✅ Cookie/LocalStorage不使用

✅ 個人情報の取得・送信なし

プライバシーを完全に保護した設計です。

免責事項

  • 計算結果は参考値であり、将来の運用成果を保証するものではありません
  • 投資判断は自己責任でお願いします
  • 実際の投資では元本割れのリスクがあります
  • 投資を始める前に、金融機関の公式情報を必ずご確認ください

まとめ

積立投資シミュレーターは、長期投資の複利効果を簡単に試算できる無料ツールです。

  • 初期投資額、積立額、利回り、期間を入力
  • グラフと数値で視覚的に理解できる
  • プライバシー完全保護で安心

資産形成の計画を立てる際に、ぜひご活用ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。

目次