教育資金シミュレーター

子どもの教育費総額と積立計画を簡単に計算できる無料シミュレーターです。 進路別の費用目安と18歳までの資産推移を視覚的に理解できます。

目次

Chart.js版(グラフあり)

教育資金シミュレーター

教育費の総額試算と積立計画のシミュレーション

教育費総額(目安) ¥0
18歳時の資産 ¥0
不足額 ¥0

📊 進学コース別の教育費目安

進学コース 教育費総額(目安)
高校公立・大学国公立 約800万円
高校公立・大学私立文系 約1,000万円
高校公立・大学私立理系 約1,150万円
高校私立・大学私立文系 約1,200万円
高校私立・大学私立理系 約1,350万円

⚠️ 注意事項

  • 計算された数値は、あくまでもシミュレーションであり、実際の教育費や資産額を保証するものではありません。
  • 教育費の総額は一般的な平均値に基づく概算です。学校や地域により大きく異なります。
  • 本シミュレーションでは塾・予備校費用、留学費用等は含まれていません。
  • 運用利回りは想定値であり、元本割れのリスクがあります。

免責事項

本シミュレーションは教育資金計画の参考情報提供のみを目的として作成されたもので、特定の金融商品を推奨したり、個々の家庭の資金計画を保証するものではありません。教育資金の準備方針は、ご自身の判断と責任で決定してください。万一、本シミュレーションに基づいて損害を被ったとしても、当方は一切その責任を負うものではありません。

コピー用コード

<!--
================================================
WordPress カスタムHTMLブロック用コード
教育資金シミュレーター通常版
================================================
機能教育費総額試算積立シミュレーション進路別費用比較
セキュリティ】✅ ブラウザ内完結通信ゼロ
利用規約無償無保証投資判断は自己責任
外部依存Chart.js 4.4.0 (CDN経由遅延読み込み)
================================================
-->

<!-- MSIM:STYLE-START -->
<style>
.education-funds-simulator * {margin:0; padding:0; box-sizing:border-box}
.education-funds-simulator {font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif; line-height:1.6; color:#333}
.education-funds-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}
.education-funds-simulator h1 {font-size:28px; margin:0 0 10px; color:#1a1a1a; text-align:center}
.education-funds-simulator .subtitle {font-size:14px; color:#666; text-align:center; margin:0 0 30px}
.education-funds-simulator h2 {font-size:20px; margin:30px 0 20px; color:#1a1a1a}
.education-funds-simulator h3 {font-size:16px; margin:20px 0 15px; color:#555}
.education-funds-simulator .input-section {display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:20px; margin:0 0 30px}
.education-funds-simulator .input-group {display:flex; flex-direction:column}
.education-funds-simulator .input-group label {font-size:14px; font-weight:600; margin:0 0 8px; color:#555}
.education-funds-simulator .input-group input,
.education-funds-simulator .input-group select {padding:12px; border:2px solid #e0e0e0; border-radius:8px; font-size:16px; transition:.3s; background:#fff}
.education-funds-simulator .input-group input:focus,
.education-funds-simulator .input-group select:focus {outline:0; border-color:#3498db; box-shadow:0 0 0 3px rgba(52,152,219,.1)}
.education-funds-simulator .input-group input:hover,
.education-funds-simulator .input-group select:hover {border-color:#b0b0b0}
.education-funds-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}
.education-funds-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)}
.education-funds-simulator .result-label {font-size:13px; color:#777; margin:0 0 8px; font-weight:500}
.education-funds-simulator .result-value {font-size:24px; font-weight:700; color:#3498db}
.education-funds-simulator .result-value.required {color:#e74c3c}
.education-funds-simulator .result-value.total {color:#2ecc71}
.education-funds-simulator .chart-section {position:relative; height:400px; margin:30px 0}
.education-funds-simulator .chart-section canvas {width:100%!important; height:100%!important}
.education-funds-simulator .info-section {margin:30px 0; padding:20px; background:#f8f9fa; border-radius:8px}
.education-funds-simulator .info-section .info-title {font-size:14px; font-weight:600; margin:0 0 15px; color:#333; text-align:center}
.education-funds-simulator .info-section table {width:100%; border-collapse:collapse}
.education-funds-simulator .info-section th {text-align:left; padding:10px; background:#e9ecef; font-size:13px; color:#555; font-weight:600; border-bottom:2px solid #dee2e6}
.education-funds-simulator .info-section td {padding:10px; font-size:14px; color:#333; border-bottom:1px solid #dee2e6}
.education-funds-simulator .info-section tr:last-child td {border-bottom:none}
.education-funds-simulator .disclaimer-section {margin-top:30px; padding:20px; background:#fff3cd; border-left:4px solid #ffc107; border-radius:4px}
.education-funds-simulator .disclaimer-section .disclaimer-title {font-size:13px; font-weight:600; color:#856404; margin:0 0 10px}
.education-funds-simulator .disclaimer-section ul {margin:0 0 15px 20px}
.education-funds-simulator .disclaimer-section li {font-size:12px; color:#856404; margin:0 0 6px; line-height:1.6}
.education-funds-simulator .disclaimer-section .disclaimer-text {font-size:12px; color:#856404; line-height:1.6; margin:0}

@media (max-width:768px) {
  .education-funds-simulator .container {padding:20px}
  .education-funds-simulator h1 {font-size:24px}
  .education-funds-simulator .input-section {grid-template-columns:1fr}
  .education-funds-simulator .results-section {grid-template-columns:1fr}
  .education-funds-simulator .chart-section {height:300px}
}
</style>
<!-- MSIM:STYLE-END -->

<!-- MSIM:HTML-START -->
<div class="education-funds-simulator" data-tool="education-funds" data-version="1.0.0">
  <div class="container">
    <h1>教育資金シミュレーター</h1>
    <p class="subtitle">教育費の総額試算と積立計画のシミュレーション</p>

    <div class="input-section">
      <div class="input-group">
        <label>子どもの現在年齢</label>
        <select data-ms-child-age>
          <option value="0" selected>0歳(生まれたばかり)</option>
          <option value="1">1歳</option>
          <option value="2">2歳</option>
          <option value="3">3歳</option>
          <option value="4">4歳</option>
          <option value="5">5歳</option>
          <option value="6">6歳</option>
          <option value="7">7歳</option>
          <option value="8">8歳</option>
          <option value="9">9歳</option>
          <option value="10">10歳</option>
          <option value="11">11歳</option>
          <option value="12">12歳</option>
          <option value="13">13歳</option>
          <option value="14">14歳</option>
          <option value="15">15歳</option>
        </select>
      </div>
      <div class="input-group">
        <label>進学コース</label>
        <select data-ms-course-type>
          <option value="public-public" selected>高校公立・大学国公立</option>
          <option value="public-private">高校公立・大学私立文系</option>
          <option value="public-science">高校公立・大学私立理系</option>
          <option value="private-private">高校私立・大学私立文系</option>
          <option value="private-science">高校私立・大学私立理系</option>
        </select>
      </div>
      <div class="input-group">
        <label>現在の貯蓄額(万円)</label>
        <input type="number" data-ms-current-savings value="0" min="0" max="10000" step="10">
      </div>
      <div class="input-group">
        <label>月々の積立額(円)</label>
        <input type="number" data-ms-monthly-amount value="10000" min="0" max="100000" step="1000">
      </div>
      <div class="input-group">
        <label>想定利回り(%/年)</label>
        <input type="number" data-ms-expected-return value="3" min="0" max="10" step="0.5">
      </div>
    </div>

    <div class="results-section">
      <div class="result-item">
        <span class="result-label">教育費総額(目安)</span>
        <span class="result-value total" data-ms-total-cost>¥0</span>
      </div>
      <div class="result-item">
        <span class="result-label">18歳時の資産</span>
        <span class="result-value" data-ms-final-amount>¥0</span>
      </div>
      <div class="result-item">
        <span class="result-label">不足額</span>
        <span class="result-value required" data-ms-shortage>¥0</span>
      </div>
    </div>

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

    <div class="info-section">
      <p class="info-title">📊 進学コース別の教育費目安</p>
      <table>
        <thead>
          <tr>
            <th>進学コース</th>
            <th>教育費総額(目安)</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>高校公立・大学国公立</td>
            <td>約800万円</td>
          </tr>
          <tr>
            <td>高校公立・大学私立文系</td>
            <td>約1,000万円</td>
          </tr>
          <tr>
            <td>高校公立・大学私立理系</td>
            <td>約1,150万円</td>
          </tr>
          <tr>
            <td>高校私立・大学私立文系</td>
            <td>約1,200万円</td>
          </tr>
          <tr>
            <td>高校私立・大学私立理系</td>
            <td>約1,350万円</td>
          </tr>
        </tbody>
      </table>
    </div>

    <div class="disclaimer-section">
      <p class="disclaimer-title">⚠️ 注意事項</p>
      <ul>
        <li>計算された数値は、あくまでもシミュレーションであり、実際の教育費や資産額を保証するものではありません。</li>
        <li>教育費の総額は一般的な平均値に基づく概算です。学校や地域により大きく異なります。</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 CJ_URL = "https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js";
  let loadingCJ = false, loadedCJ = !!window.Chart;

  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);
    }
  }

  const fmt = new Intl.NumberFormat("ja-JP", {
    style: "currency",
    currency: "JPY",
    minimumFractionDigits: 0,
    maximumFractionDigits: 0
  });

  // 教育費目安データ(文部科学省等の統計に基づく概算)
  const educationCosts = {
    "public-public": 8000000,    // 高校公立・大学国公立
    "public-private": 10000000,   // 高校公立・大学私立文系
    "public-science": 11500000,   // 高校公立・大学私立理系
    "private-private": 12000000,  // 高校私立・大学私立文系
    "private-science": 13500000   // 高校私立・大学私立理系
  };

  function calculateEducationFunds(childAge, courseType, currentSavings, monthlyAmount, annualReturn) {
    const yearsUntil18 = 18 - childAge;
    const months = yearsUntil18 * 12;
    const monthlyRate = annualReturn / 100 / 12;

    // 現在の貯蓄の将来価値
    const futureValueOfSavings = currentSavings * 10000 * Math.pow(1 + monthlyRate, months);

    // 積立投資の将来価値(複利計算)
    let futureValueOfMonthly = 0;
    if (monthlyAmount > 0 && monthlyRate > 0) {
      futureValueOfMonthly = monthlyAmount * (Math.pow(1 + monthlyRate, months) - 1) / monthlyRate;
    } else if (monthlyAmount > 0) {
      futureValueOfMonthly = monthlyAmount * months;
    }

    const totalAmount = futureValueOfSavings + futureValueOfMonthly;
    const totalCost = educationCosts[courseType] || 10000000;
    const shortage = Math.max(0, totalCost - totalAmount);

    // 年ごとの資産推移を計算
    const schedule = [];
    let balance = currentSavings * 10000;

    for (let year = 0; year <= yearsUntil18; year++) {
      const age = childAge + year;
      const monthsElapsed = year * 12;

      if (year > 0) {
        // 前年からの複利計算
        balance *= Math.pow(1 + monthlyRate, 12);
        // 今年の積立分
        for (let m = 0; m < 12; m++) {
          balance += monthlyAmount * Math.pow(1 + monthlyRate, 12 - m - 1);
        }
      }

      schedule.push({
        age: age,
        balance: Math.round(balance)
      });
    }

    return {
      totalCost: totalCost,
      finalAmount: Math.round(totalAmount),
      shortage: Math.round(shortage),
      schedule: schedule
    };
  }

  function boot(root) {
    let chart = null;
    const q = s => root.querySelector(s);
    const els = {
      childAge: q("[data-ms-child-age]"),
      courseType: q("[data-ms-course-type]"),
      currentSavings: q("[data-ms-current-savings]"),
      monthlyAmount: q("[data-ms-monthly-amount]"),
      expectedReturn: q("[data-ms-expected-return]"),
      totalCost: q("[data-ms-total-cost]"),
      finalAmount: q("[data-ms-final-amount]"),
      shortage: q("[data-ms-shortage]"),
      canvas: q("[data-ms-canvas]")
    };

    function draw(schedule, targetCost) {
      if (!loadedCJ) {
        ensureChartJs(() => draw(schedule, targetCost));
        return;
      }

      const labels = schedule.map(d => `${d.age}`);
      const balances = schedule.map(d => d.balance);
      const target = schedule.map(() => targetCost);

      if (chart) chart.destroy();
      chart = new Chart(els.canvas, {
        type: "line",
        data: {
          labels,
          datasets: [{
            label: "積立資産",
            data: balances,
            borderColor: "rgba(52,152,219,1)",
            backgroundColor: "rgba(52,152,219,.2)",
            borderWidth: 2,
            fill: true,
            tension: 0.3
          }, {
            label: "教育費目安",
            data: target,
            borderColor: "rgba(231,76,60,1)",
            backgroundColor: "rgba(231,76,60,.1)",
            borderWidth: 2,
            borderDash: [5, 5],
            fill: false
          }]
        },
        options: {
          responsive: true,
          maintainAspectRatio: false,
          plugins: {
            tooltip: {
              callbacks: {
                label: t => `${t.dataset.label}: ${fmt.format(t.parsed.y)}`
              }
            },
            legend: {
              display: true,
              position: "top"
            }
          },
          scales: {
            y: {
              beginAtZero: true,
              ticks: { callback: v => fmt.format(v) }
            }
          }
        }
      });
    }

    function update() {
      const age = parseInt(els.childAge.value) || 0;
      const course = els.courseType.value;
      const savings = parseFloat(els.currentSavings.value) || 0;
      const monthly = parseFloat(els.monthlyAmount.value) || 0;
      const returnRate = parseFloat(els.expectedReturn.value) || 0;

      if (age >= 18) {
        els.totalCost.textContent = "¥0";
        els.finalAmount.textContent = "¥0";
        els.shortage.textContent = "¥0";
        return;
      }

      const result = calculateEducationFunds(age, course, savings, monthly, returnRate);
      els.totalCost.textContent = fmt.format(result.totalCost);
      els.finalAmount.textContent = fmt.format(result.finalAmount);
      els.shortage.textContent = result.shortage > 0 ? fmt.format(result.shortage) : "¥0(達成)";

      draw(result.schedule, result.totalCost);
    }

    els.childAge.addEventListener("change", update);
    els.courseType.addEventListener("change", update);
    els.currentSavings.addEventListener("input", update);
    els.monthlyAmount.addEventListener("input", update);
    els.expectedReturn.addEventListener("input", update);

    if ("IntersectionObserver" in window) {
      const io = new IntersectionObserver(es => {
        es.some(e => e.isIntersecting) && (ensureChartJs(() => {}), io.disconnect());
      });
      io.observe(els.canvas);
    }

    update();
  }

  window.addEventListener("DOMContentLoaded", () =>
    document.querySelectorAll('.education-funds-simulator[data-tool="education-funds"]').forEach(boot)
  );
})();
</script>
<!-- MSIM:JS-END -->

Chart.jsなし簡易版(軽量)

教育資金シミュレーター

教育費の総額試算と積立計画のシミュレーション

教育費総額(目安) ¥0
18歳時の資産 ¥0
不足額 ¥0

📊 進学コース別の教育費目安

進学コース 教育費総額(目安)
高校公立・大学国公立 約800万円
高校公立・大学私立文系 約1,000万円
高校公立・大学私立理系 約1,150万円
高校私立・大学私立文系 約1,200万円
高校私立・大学私立理系 約1,350万円

⚠️ 注意事項

  • 計算された数値は、あくまでもシミュレーションであり、実際の教育費や資産額を保証するものではありません。
  • 教育費の総額は一般的な平均値に基づく概算です。学校や地域により大きく異なります。
  • 本シミュレーションでは塾・予備校費用、留学費用等は含まれていません。
  • 運用利回りは想定値であり、元本割れのリスクがあります。

免責事項

本シミュレーションは教育資金計画の参考情報提供のみを目的として作成されたもので、特定の金融商品を推奨したり、個々の家庭の資金計画を保証するものではありません。教育資金の準備方針は、ご自身の判断と責任で決定してください。万一、本シミュレーションに基づいて損害を被ったとしても、当方は一切その責任を負うものではありません。

コピー用コード

<!--
================================================
WordPress カスタムHTMLブロック用コード
教育資金シミュレーター簡易版Chart.jsなし
================================================
機能教育費総額試算積立シミュレーション進路別費用比較
セキュリティ】✅ ブラウザ内完結通信ゼロ
利用規約無償無保証投資判断は自己責任
外部依存なし完全スタンドアロン
================================================
-->

<!-- MSIM:STYLE-START -->
<style>
.education-funds-simulator * {margin:0; padding:0; box-sizing:border-box}
.education-funds-simulator {font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif; line-height:1.6; color:#333}
.education-funds-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}
.education-funds-simulator h1 {font-size:28px; margin:0 0 10px; color:#1a1a1a; text-align:center}
.education-funds-simulator .subtitle {font-size:14px; color:#666; text-align:center; margin:0 0 30px}
.education-funds-simulator h2 {font-size:20px; margin:30px 0 20px; color:#1a1a1a}
.education-funds-simulator h3 {font-size:16px; margin:20px 0 15px; color:#555}
.education-funds-simulator .input-section {display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:20px; margin:0 0 30px}
.education-funds-simulator .input-group {display:flex; flex-direction:column}
.education-funds-simulator .input-group label {font-size:14px; font-weight:600; margin:0 0 8px; color:#555}
.education-funds-simulator .input-group input,
.education-funds-simulator .input-group select {padding:12px; border:2px solid #e0e0e0; border-radius:8px; font-size:16px; transition:.3s; background:#fff}
.education-funds-simulator .input-group input:focus,
.education-funds-simulator .input-group select:focus {outline:0; border-color:#3498db; box-shadow:0 0 0 3px rgba(52,152,219,.1)}
.education-funds-simulator .input-group input:hover,
.education-funds-simulator .input-group select:hover {border-color:#b0b0b0}
.education-funds-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}
.education-funds-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)}
.education-funds-simulator .result-label {font-size:13px; color:#777; margin:0 0 8px; font-weight:500}
.education-funds-simulator .result-value {font-size:24px; font-weight:700; color:#3498db}
.education-funds-simulator .result-value.required {color:#e74c3c}
.education-funds-simulator .result-value.total {color:#2ecc71}
.education-funds-simulator .info-section {margin:30px 0; padding:20px; background:#f8f9fa; border-radius:8px}
.education-funds-simulator .info-section .info-title {font-size:14px; font-weight:600; margin:0 0 15px; color:#333; text-align:center}
.education-funds-simulator .info-section table {width:100%; border-collapse:collapse}
.education-funds-simulator .info-section th {text-align:left; padding:10px; background:#e9ecef; font-size:13px; color:#555; font-weight:600; border-bottom:2px solid #dee2e6}
.education-funds-simulator .info-section td {padding:10px; font-size:14px; color:#333; border-bottom:1px solid #dee2e6}
.education-funds-simulator .info-section tr:last-child td {border-bottom:none}
.education-funds-simulator .disclaimer-section {margin-top:30px; padding:20px; background:#fff3cd; border-left:4px solid #ffc107; border-radius:4px}
.education-funds-simulator .disclaimer-section .disclaimer-title {font-size:13px; font-weight:600; color:#856404; margin:0 0 10px}
.education-funds-simulator .disclaimer-section ul {margin:0 0 15px 20px}
.education-funds-simulator .disclaimer-section li {font-size:12px; color:#856404; margin:0 0 6px; line-height:1.6}
.education-funds-simulator .disclaimer-section .disclaimer-text {font-size:12px; color:#856404; line-height:1.6; margin:0}

@media (max-width:768px) {
  .education-funds-simulator .container {padding:20px}
  .education-funds-simulator h1 {font-size:24px}
  .education-funds-simulator .input-section {grid-template-columns:1fr}
  .education-funds-simulator .results-section {grid-template-columns:1fr}
}
</style>
<!-- MSIM:STYLE-END -->

<!-- MSIM:HTML-START -->
<div class="education-funds-simulator" data-tool="education-funds" data-version="1.0.0">
  <div class="container">
    <h1>教育資金シミュレーター</h1>
    <p class="subtitle">教育費の総額試算と積立計画のシミュレーション</p>

    <div class="input-section">
      <div class="input-group">
        <label>子どもの現在年齢</label>
        <select data-ms-child-age>
          <option value="0" selected>0歳(生まれたばかり)</option>
          <option value="1">1歳</option>
          <option value="2">2歳</option>
          <option value="3">3歳</option>
          <option value="4">4歳</option>
          <option value="5">5歳</option>
          <option value="6">6歳</option>
          <option value="7">7歳</option>
          <option value="8">8歳</option>
          <option value="9">9歳</option>
          <option value="10">10歳</option>
          <option value="11">11歳</option>
          <option value="12">12歳</option>
          <option value="13">13歳</option>
          <option value="14">14歳</option>
          <option value="15">15歳</option>
        </select>
      </div>
      <div class="input-group">
        <label>進学コース</label>
        <select data-ms-course-type>
          <option value="public-public" selected>高校公立・大学国公立</option>
          <option value="public-private">高校公立・大学私立文系</option>
          <option value="public-science">高校公立・大学私立理系</option>
          <option value="private-private">高校私立・大学私立文系</option>
          <option value="private-science">高校私立・大学私立理系</option>
        </select>
      </div>
      <div class="input-group">
        <label>現在の貯蓄額(万円)</label>
        <input type="number" data-ms-current-savings value="0" min="0" max="10000" step="10">
      </div>
      <div class="input-group">
        <label>月々の積立額(円)</label>
        <input type="number" data-ms-monthly-amount value="10000" min="0" max="100000" step="1000">
      </div>
      <div class="input-group">
        <label>想定利回り(%/年)</label>
        <input type="number" data-ms-expected-return value="3" min="0" max="10" step="0.5">
      </div>
    </div>

    <div class="results-section">
      <div class="result-item">
        <span class="result-label">教育費総額(目安)</span>
        <span class="result-value total" data-ms-total-cost>¥0</span>
      </div>
      <div class="result-item">
        <span class="result-label">18歳時の資産</span>
        <span class="result-value" data-ms-final-amount>¥0</span>
      </div>
      <div class="result-item">
        <span class="result-label">不足額</span>
        <span class="result-value required" data-ms-shortage>¥0</span>
      </div>
    </div>

    <div class="info-section">
      <p class="info-title">📊 進学コース別の教育費目安</p>
      <table>
        <thead>
          <tr>
            <th>進学コース</th>
            <th>教育費総額(目安)</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>高校公立・大学国公立</td>
            <td>約800万円</td>
          </tr>
          <tr>
            <td>高校公立・大学私立文系</td>
            <td>約1,000万円</td>
          </tr>
          <tr>
            <td>高校公立・大学私立理系</td>
            <td>約1,150万円</td>
          </tr>
          <tr>
            <td>高校私立・大学私立文系</td>
            <td>約1,200万円</td>
          </tr>
          <tr>
            <td>高校私立・大学私立理系</td>
            <td>約1,350万円</td>
          </tr>
        </tbody>
      </table>
    </div>

    <div class="disclaimer-section">
      <p class="disclaimer-title">⚠️ 注意事項</p>
      <ul>
        <li>計算された数値は、あくまでもシミュレーションであり、実際の教育費や資産額を保証するものではありません。</li>
        <li>教育費の総額は一般的な平均値に基づく概算です。学校や地域により大きく異なります。</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
  });

  const courseCosts = {
    "public-public": 8000000,
    "public-private": 10000000,
    "public-science": 11500000,
    "private-private": 12000000,
    "private-science": 13500000
  };

  function calculateEducation(childAge, courseType, currentSavings, monthlyAmount, expectedReturn) {
    const yearsUntilCollege = 18 - childAge;
    const months = yearsUntilCollege * 12;
    const monthlyRate = expectedReturn / 100 / 12;

    const futureValueSavings = currentSavings * 10000 * Math.pow(1 + monthlyRate, months);

    let futureValueMonthly = 0;
    if (monthlyAmount > 0 && monthlyRate > 0) {
      futureValueMonthly = monthlyAmount * (Math.pow(1 + monthlyRate, months) - 1) / monthlyRate;
    } else if (monthlyAmount > 0) {
      futureValueMonthly = monthlyAmount * months;
    }

    const totalAssets = futureValueSavings + futureValueMonthly;
    const totalCost = courseCosts[courseType] || 10000000;
    const shortage = Math.max(0, totalCost - totalAssets);

    return {
      totalCost: totalCost,
      finalAmount: Math.round(totalAssets),
      shortage: Math.round(shortage)
    };
  }

  function boot(root) {
    const q = (sel) => root.querySelector(sel);
    const els = {
      childAge: q("[data-ms-child-age]"),
      courseType: q("[data-ms-course-type]"),
      currentSavings: q("[data-ms-current-savings]"),
      monthlyAmount: q("[data-ms-monthly-amount]"),
      expectedReturn: q("[data-ms-expected-return]"),
      totalCost: q("[data-ms-total-cost]"),
      finalAmount: q("[data-ms-final-amount]"),
      shortage: q("[data-ms-shortage]")
    };

    function update() {
      const age = parseInt(els.childAge.value) || 0;
      const course = els.courseType.value;
      const savings = parseFloat(els.currentSavings.value) || 0;
      const monthly = parseFloat(els.monthlyAmount.value) || 0;
      const returnRate = parseFloat(els.expectedReturn.value) || 0;

      if (age >= 18) {
        els.totalCost.textContent = "\uffe50";
        els.finalAmount.textContent = "\uffe50";
        els.shortage.textContent = "\uffe50";
        return;
      }

      const result = calculateEducation(age, course, savings, monthly, returnRate);

      els.totalCost.textContent = fmt.format(result.totalCost);
      els.finalAmount.textContent = fmt.format(result.finalAmount);
      els.shortage.textContent = result.shortage > 0 ? fmt.format(result.shortage) : "\uffe50\uff08\u9054\u6210\uff09";
    }

    els.childAge.addEventListener("change", update);
    els.courseType.addEventListener("change", update);
    els.currentSavings.addEventListener("input", update);
    els.monthlyAmount.addEventListener("input", update);
    els.expectedReturn.addEventListener("input", update);

    update();
  }

  window.addEventListener("DOMContentLoaded", () => {
    document.querySelectorAll('.education-funds-simulator[data-tool="education-funds"]').forEach(boot);
  });
})();
</script>
<!-- MSIM:JS-END -->

シミュレーターの基本機能

できること

5つの進学コース別に教育費総額の目安を試算します。現在の貯蓄額と月々の積立額から18歳時点の資産額を計算します。

複利運用を考慮した正確なシミュレーションです。不足額を自動計算して資金計画を立てやすくします。

計算方式

すべての計算がブラウザ内で完結します。サーバーとの通信はゼロです。

データベース接続やCookie使用もありません。入力した情報が外部に送信されることは一切ありません。

使い方

子どもの現在年齢を選択

お子さまの現在の年齢を0歳から15歳の範囲で選択します。年齢に応じて18歳までの積立期間が自動計算されます。

0歳を選択すると18年間の積立期間になります。すでに10歳の場合は残り8年間での資金準備を計算します。

進学コースを選択

想定する進学コースを5つのパターンから選択します。コースによって教育費総額の目安が異なります。

進学コース別の費用目安

進学コース教育費総額(目安)
高校公立・大学国公立約800万円
高校公立・大学私立文系約1,000万円
高校公立・大学私立理系約1,150万円
高校私立・大学私立文系約1,200万円
高校私立・大学私立理系約1,350万円

これらの金額は文部科学省等の統計に基づく概算です。実際の費用は学校や学部によって大きく異なります。

現在の貯蓄額を入力

教育資金として既に準備している貯蓄額を万円単位で入力します。学資保険や児童手当の貯蓄額も含めて計算してください。

すでに50万円貯蓄がある場合は「50」と入力します。これから貯め始める場合は「0」と入力してください。

月々の積立額を設定

毎月積み立てる金額を円単位で入力します。児童手当を全額貯蓄する場合は10,000〜15,000円が目安です。

余裕がある場合は月3万円以上の積立も検討できます。無理のない範囲で継続できる金額を設定することが重要です。

想定利回りを設定

運用する場合の年間平均利回りを設定します。預貯金のみの場合は0%と設定してください。

参考値

運用方法想定利回り
預貯金のみ0%
学資保険0.5〜1%
バランス型投資信託3〜5%
株式中心の投資信託5〜7%

投資には元本割れのリスクがあります。教育資金は必要な時期が決まっているため、リスクを十分理解して運用方法を選択してください。

計算結果の見方

教育費総額(目安)

選択した進学コースに必要な教育費の概算です。この金額は幼稚園から大学卒業までの総額ではありません。

主に高校・大学の学費を中心とした試算です。塾や習い事、受験費用などは含まれていません。

18歳時の資産

現在の貯蓄と今後の積立を続けた場合の18歳時点での資産額です。複利運用を考慮した計算結果が表示されます。

この金額が教育費総額を上回っていれば資金準備は順調です。下回っている場合は不足額が表示されます。

不足額

教育費総額から18歳時の資産を引いた金額です。この金額がプラスの場合は追加の資金準備が必要です。

不足額が大きい場合は月々の積立額を増やすか運用方法を見直す必要があります。マイナス(達成)の場合は目標達成できる計画です。

グラフの見方(Chart.js版のみ)

折れ線グラフで年齢ごとの資産推移が表示されます。青色の実線は積立資産の推移です。

赤色の点線は教育費総額の目標ラインです。グラフにマウスを乗せると各年齢での詳細な金額が表示されます。

シミュレーション例

例1:児童手当を全額貯蓄(0歳から)

設定

  • 子どもの現在年齢:0歳
  • 進学コース:高校公立・大学私立文系
  • 現在の貯蓄額:0万円
  • 月々の積立額:15,000円
  • 想定利回り:0%(預貯金のみ)

結果

  • 教育費総額:約1,000万円
  • 18歳時の資産:約324万円
  • 不足額:約676万円

児童手当のみでは不足します。追加の積立や運用が必要です。

例2:月3万円を投資信託で運用(0歳から)

設定

  • 子どもの現在年齢:0歳
  • 進学コース:高校公立・大学私立文系
  • 現在の貯蓄額:0万円
  • 月々の積立額:30,000円
  • 想定利回り:3%

結果

  • 教育費総額:約1,000万円
  • 18歳時の資産:約847万円
  • 不足額:約153万円

運用により資産が増加しますが、わずかに不足します。あと数万円の積立増額で達成可能です。

例3:既に貯蓄あり・追加積立(5歳から)

設定

  • 子どもの現在年齢:5歳
  • 進学コース:高校公立・大学国公立
  • 現在の貯蓄額:100万円
  • 月々の積立額:40,000円
  • 想定利回り:3%

結果

  • 教育費総額:約800万円
  • 18歳時の資産:約808万円
  • 不足額:¥0(達成)

既存の貯蓄と13年間の積立で目標達成できます。国公立進学を前提とすれば十分な準備です。

よくある質問

教育費総額の目安は正確ですか?

文部科学省等の統計に基づく概算です。実際の費用は学校や学部によって大きく異なります。

塾や習い事、受験費用は含まれていません。医学部や薬学部などは費用がさらに高額になります。

幼稚園から小学校の費用は含まれますか?

このシミュレーターは主に高校・大学の費用を中心に試算しています。幼稚園から中学校までの費用は日常の家計から支出することを想定しています。

より詳細な試算が必要な場合は金融機関の教育資金相談をご利用ください。私立小学校・中学校に進学する場合は別途資金準備が必要です。

学資保険と積立投資はどちらが良いですか?

学資保険は元本保証がありますが返戻率は低めです。積立投資は運用次第で高いリターンが期待できますが元本割れリスクがあります。

確実性を重視するなら学資保険、リターンを重視するなら積立投資が適しています。両方を組み合わせるのも有効な戦略です。

児童手当だけで教育費は足りますか?

児童手当を全額貯蓄しても約200〜300万円程度にしかなりません。大学進学を考える場合は追加の積立が必要です。

児童手当に加えて月1〜2万円を追加で積み立てることを推奨します。早めに準備を始めるほど月々の負担は軽くなります。

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

完全無料でご利用いただけます。会員登録も不要です。

何度でもシミュレーションを試せます。スマートフォンでもパソコンでも利用可能です。

プライバシーとセキュリティ

ブラウザ内完結の設計

すべての計算がブラウザ内で完結します。サーバーとの通信はゼロです。

データベース接続なし、Cookie/LocalStorage不使用、個人情報の取得・送信なしです。入力した金額や設定内容が外部に送信されることは一切ありません。

Chart.js(グラフ描画ライブラリ)について

グラフ表示機能を提供するため、オープンソースライブラリ「Chart.js」を使用しています(Chart.js版のみ)。

提供元: jsDelivr CDN(コンテンツ配信ネットワーク)

用途: 計算結果のグラフ表示

送信される可能性のある情報:

  • IPアドレス
  • ブラウザの種類とバージョン
  • アクセス日時

これらの情報は、JavaScriptライブラリファイルを取得する際に、通常のWebサイト閲覧と同様に自動的に送信されるものです。

利用者が計算ツールに入力した数値(貯蓄額、積立額等)が外部に送信されることは一切ありません。すべての計算処理は利用者のブラウザ内で完結します。

Chart.jsライセンス: MIT License(オープンソース)

jsDelivrのプライバシーポリシー: https://www.jsdelivr.com/privacy-policy-jsdelivr-net

Chart.jsなし簡易版について: 外部ライブラリを一切使用したくない場合は、Chart.jsなし簡易版をご利用ください。こちらは完全にスタンドアロンで動作します。

注意事項

免責事項

計算結果は参考値であり、実際の教育費を保証するものではありません。資金計画の判断は自己責任でお願いします。

実際の教育費は学校、学部、地域によって大きく異なります。投資には元本割れのリスクがあります。

教育資金計画を立てる際は、金融機関や専門家のアドバイスも参考にしてください。

まとめ

教育資金シミュレーターは、教育費の総額と積立計画を簡単に試算できる無料ツールです。子どもの年齢、進学コース、積立額を入力するだけで即座に計算できます。

18歳時の資産と不足額が一目でわかります。プライバシー完全保護で安心してご利用いただけます。

教育資金の準備計画を立てる際に、ぜひご活用ください。

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

この記事を書いた人

コメント

コメントする


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

目次