<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>便利ツールのお部屋</title>
	<atom:link href="https://joho-taisaku.com/tools/feed/" rel="self" type="application/rss+xml" />
	<link>https://joho-taisaku.com/tools</link>
	<description>情報試験対策室より</description>
	<lastBuildDate>Tue, 20 Jan 2026 11:26:06 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Word・Excel・PowerPointファイルから画像ファイルを抽出するツール</title>
		<link>https://joho-taisaku.com/tools/office-media/</link>
		
		<dc:creator><![CDATA[hikaruinbiz@gmail.com]]></dc:creator>
		<pubDate>Tue, 20 Jan 2026 11:16:15 +0000</pubDate>
				<category><![CDATA[ビジネス]]></category>
		<guid isPermaLink="false">https://joho-taisaku.com/tools/?p=253</guid>

					<description><![CDATA[ワード・エクセル・パワーポイントのファイルから、埋め込みメディア（画像・音声・動画など）を抽出しまとめてZip形式でダウンロードします。 Officeファイル メディア抽出 クリックして Office ファイルを選択（. [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>ワード・エクセル・パワーポイントのファイルから、埋め込みメディア（画像・音声・動画など）を抽出しまとめてZip形式でダウンロードします。</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="pptx-notes-wrap">
  <h3 class="pptx-title">Officeファイル メディア抽出</h3>
  <br>
  <form id="ppt-media-form" enctype="multipart/form-data" class="pptx-form">
    <label class="pptx-file">
      <input type="file" name="office" accept=".pptx,.pptm,.docx,.docm,.xlsx,.xlsm" required />
      <span class="pptx-file-label">クリックして Office ファイルを選択（.docx/.docm/.xlsx/.xlsm/.pptx/.pptm）</span>
    </label>

    <button type="submit" id="ppt-media-submit" class="pptx-btn primary">
      <span class="btn-text">抽出して ZIP をダウンロード</span>
      <span class="btn-spinner" aria-hidden="true"></span>
    </button>

    <div id="ppt-media-error" class="pptx-error" style="display:none;"></div>
  </form>

  <div id="ppt-media-output" class="pptx-output" style="display:none;">
    <div class="pptx-output-toolbar">
      <h4 class="pptx-output-title">抽出完了</h4>
      <div class="pptx-actions">
        <a id="ppt-media-download" class="pptx-btn" download>ZIPを再ダウンロード</a>
      </div>
    </div>
    <div id="ppt-media-message" class="pptx-pre" style="max-height:none;"></div>
  </div>
</div>

<style>
  /* ====== Modern, clean look (no external CSS required) ====== */
  :root {
    --bg: #ffffff;
    --card: #ffffff;
    --muted: #6b7280;
    --border: #e5e7eb;
    --ring: #3b82f6;
    --text: #111827;
    --mono: ui-monospace, Menlo, Consolas, monospace;
    --radius: 14px;
    --shadow: 0 10px 25px rgba(0,0,0,.06);
  }
  .pptx-notes-wrap {
    max-width: 920px;
    margin: 2rem auto;
    padding: 1.25rem;
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
  }
  .pptx-title {
    margin: 0 0 .25rem;
    font-size: clamp(1.2rem, 2vw, 1.5rem);
    letter-spacing: .02em;
  }
  .pptx-help{
    margin: 0 0 1rem;
    color: var(--muted);
    line-height: 1.5;
    font-size: .95rem;
  }
  .pptx-form {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .75rem 1rem;
    align-items: center;
  }
  @media (max-width: 640px) {
    .pptx-form { grid-template-columns: 1fr; }
  }

  /* File input */
  .pptx-file {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    border: 1px dashed var(--border);
    padding: .75rem 1rem;
    border-radius: 12px;
    transition: border-color .2s ease, background .2s ease;
    cursor: pointer;
  }
  .pptx-file:hover { border-color: #cbd5e1; background: #f9fafb; }
  .pptx-file input[type="file"] { display: none; }
  .pptx-file-label { color: var(--muted); }

  /* Buttons */
  .pptx-btn {
    appearance: none; -webkit-appearance: none;
    display: inline-flex; align-items: center; justify-content: center;
    gap: .5rem;
    border: 1px solid var(--border);
    background: #f8fafc;
    color: var(--text);
    border-radius: 12px;
    padding: .65rem 1rem;
    font-weight: 600;
    transition: transform .06s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
    text-decoration: none;
    cursor: pointer;
    box-shadow: 0 2px 0 rgba(0,0,0,.04);
    white-space: nowrap;
  }
  .pptx-btn:hover { background: #f1f5f9; border-color: #dbeafe; }
  .pptx-btn:active { transform: translateY(1px); }
  .pptx-btn.primary {
    background: #2563eb; color: #fff; border-color: #1d4ed8;
  }
  .pptx-btn.primary:hover { background: #1d4ed8; }
  .pptx-btn.primary:disabled { opacity: .65; cursor: not-allowed; }

  /* Submit spinner */
  #ppt-media-submit { position: relative; }
  #ppt-media-submit .btn-spinner {
    width: 1em; height: 1em; border-radius: 999px;
    border: 2px solid rgba(255,255,255,.45);
    border-top-color: #fff;
    display: none;
    animation: pptx-spin .8s linear infinite;
  }
  #ppt-media-submit.loading .btn-text { opacity: .75; }
  #ppt-media-submit.loading .btn-spinner { display: inline-block; }
  @keyframes pptx-spin { to { transform: rotate(360deg); } }

  .pptx-error {
    grid-column: 1 / -1;
    color: #b91c1c;
    background: #fef2f2;
    border: 1px solid #fecaca;
    padding: .6rem .8rem;
    border-radius: 10px;
  }

  .pptx-output { margin-top: 1rem; }
  .pptx-output-toolbar {
    display: flex; align-items: center; justify-content: space-between;
    gap: 1rem; margin-bottom: .5rem;
  }
  .pptx-output-title { margin: .25rem 0; font-size: 1.05rem; }
  .pptx-actions { display: inline-flex; gap: .5rem; flex-wrap: wrap; }

  .pptx-pre {
    white-space: pre-wrap;
    font-family: var(--mono);
    background: #ffffff;
    color: #000000;
    padding: 1rem;
    border-radius: 12px;
    max-height: 55vh;
    overflow: auto;
    border: 1px solid #d1d5db;
  }

  /* Focus ring */
  .pptx-file, .pptx-btn {
    outline: none;
  }
  .pptx-file:focus-within,
  .pptx-btn:focus-visible {
    box-shadow: 0 0 0 4px rgba(59,130,246,.25);
    border-color: var(--ring);
  }
</style>

<script>
(function(){
  const $  = (s) => document.querySelector(s);

  const form = $('#ppt-media-form');
  const out  = $('#ppt-media-output');
  const msg  = $('#ppt-media-message');
  const err  = $('#ppt-media-error');
  const aDl  = $('#ppt-media-download');
  const btnSubmit = $('#ppt-media-submit');
  const fileInput = form.querySelector('input[type=file]');
  const fileLabel = form.querySelector('.pptx-file-label');

  const ALLOWED_EXT = ['pptx','pptm','docx','docm','xlsx','xlsm'];
  const MAX_BYTES = 100 * 1024 * 1024; // 100MB（既存と合わせ）

  function getExt(name){
    const m = String(name || '').toLowerCase().match(/\.([a-z0-9]+)$/);
    return m ? m[1] : '';
  }
  function humanBytes(n){
    const units = ['B','KB','MB','GB'];
    let v = Number(n || 0);
    let i = 0;
    while (v >= 1024 && i < units.length - 1){ v /= 1024; i++; }
    return `${v.toFixed(i === 0 ? 0 : 1)} ${units[i]}`;
  }
  function filenameFromContentDisposition(cd){
    if (!cd) return '';
    // RFC 5987 (filename*=UTF-8'') と通常 filename= の両対応をざっくり
    const m5987 = cd.match(/filename\*\s*=\s*UTF-8''([^;]+)/i);
    if (m5987 && m5987[1]) {
      try { return decodeURIComponent(m5987[1].replace(/\"/g,'')); } catch(_) {}
      return m5987[1].replace(/\"/g,'');
    }
    const m = cd.match(/filename\s*=\s*\"?([^\";]+)\"?/i);
    return m && m[1] ? m[1] : '';
  }
  function makeDefaultZipName(original){
    const base = String(original || 'media').replace(/\.[^.]+$/,'');
    return `${base}_media.zip`;
  }

  // ファイル名をラベルに表示
  fileInput.addEventListener('change', () => {
    fileLabel.textContent = (fileInput.files[0]?.name) || 'クリックして Office ファイルを選択';
  });

  form.addEventListener('submit', async (e) => {
    e.preventDefault();
    err.style.display = 'none';
    out.style.display = 'none';

    const file = fileInput.files[0];
    if (!file) { err.textContent = 'ファイルを選択してください。'; err.style.display = 'block'; return; }

    const ext = getExt(file.name);
    if (!ALLOWED_EXT.includes(ext)) {
      err.textContent = '対応形式は .pptx/.pptm/.docx/.docm/.xlsx/.xlsm です（.ppt/.doc/.xls は非対応）。';
      err.style.display = 'block';
      return;
    }
    if (file.size > MAX_BYTES) {
      err.textContent = `ファイルサイズが上限を超えています。現在: ${humanBytes(file.size)}`;
      err.style.display = 'block';
      return;
    }

    const fd = new FormData();
    fd.append('office', file);

    const nonceMeta = document.querySelector('meta[name="ppt-media-extracter-nonce"]');
    const nonce = nonceMeta ? nonceMeta.getAttribute('content') : '';

    const apiUrlMeta = document.querySelector('meta[name="ppt-media-extracter-api-url"]');
    const apiUrl = apiUrlMeta ? apiUrlMeta.getAttribute('content') : '';

    if (!apiUrl) {
      err.textContent = 'ページを再読み込みしてください（API URL を取得できません）。';
      err.style.display = 'block';
      return;
    }

    // UIロック
    btnSubmit.disabled = true;
    btnSubmit.classList.add('loading');

    try {
      const res = await fetch(apiUrl, {
        method: 'POST',
        headers: { 'X-Ppt-Media-Extracter-Nonce': nonce },
        body: fd,
        credentials: 'same-origin'
      });

      const ct = (res.headers.get('content-type') || '').toLowerCase();

      // 成功: zip バイナリ
      if (res.ok && (ct.includes('application/zip') || ct.includes('application/octet-stream'))) {
        const blob = await res.blob();
        if (!blob || blob.size === 0) throw new Error('ZIP が空でした。埋め込みメディアが無い可能性があります。');

        const url = URL.createObjectURL(blob);
        const filename = filenameFromContentDisposition(res.headers.get('content-disposition')) || makeDefaultZipName(file.name);

        aDl.href = url;
        aDl.download = filename;
        msg.textContent = `抽出完了：${filename}（${humanBytes(blob.size)}）`;
        out.style.display = 'block';

        // UX: ボタンを押したら即ダウンロード
        aDl.click();
        return;
      }

      // 失敗: JSON かテキスト
      let message = '抽出に失敗しました。';
      if (ct.includes('application/json')) {
        try {
          const data = await res.json();
          if (data && data.message) message = String(data.message);
        } catch(_){ }
      } else {
        try {
          const text = await res.text();
          if (text) message = text;
        } catch(_){ }
      }
      throw new Error(message);

    } catch (e2) {
      err.textContent = (e2 && e2.message) ? e2.message : '通信エラーが発生しました。';
      err.style.display = 'block';
    } finally {
      btnSubmit.disabled = false;
      btnSubmit.classList.remove('loading');
    }
  });
})();
</script>




<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">使い方</h3>



<ul class="wp-block-list">
<li>「クリックしてOfficeファイルを選択」を押し、ファイルを選択します。</li>



<li>「抽出してZIPをダウンロード」を押すと処理が行われ、完了次第Zipがダウンロードされます。</li>



<li>処理完了後、「ZIPを再ダウンロード」を押すと、もう一度Zipファイルをダウンロードできます。</li>
</ul>



<h3 class="wp-block-heading">注意点</h3>



<ul class="wp-block-list">
<li>100MB以上のファイルは受け付けません。動画ファイルなどが含まれている場合は分割・動画のみ削除などしてからご利用ください。</li>



<li>受け付けるファイル形式は、.docx/.docm/.xlsx/.xlsm/.pptx/.pptmです。他の形式の場合は、変換してからご利用ください。</li>



<li>エラーメッセージが表示された場合は、アクセスが集中していることがあります。時間を置いてからご利用ください。</li>
</ul>



<p></p>
<div class="veu_socialSet veu_socialSet-position-after veu_contentAddSection"><script>window.twttr=(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src="https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);t._e=[];t.ready=function(f){t._e.push(f);};return t;}(document,"script","twitter-wjs"));</script><ul><li class="sb_facebook sb_icon"><a class="sb_icon_inner" href="//www.facebook.com/sharer.php?src=bm&u=https%3A%2F%2Fjoho-taisaku.com%2Ftools%2Foffice-media%2F&amp;t=%E4%BE%BF%E5%88%A9%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%8A%E9%83%A8%E5%B1%8B" target="_blank" onclick="window.open(this.href,'FBwindow','width=650,height=450,menubar=no,toolbar=no,scrollbars=yes');return false;"><span class="vk_icon_w_r_sns_fb icon_sns"></span><span class="sns_txt">Facebook</span><span class="veu_count_sns_fb"></span></a></li><li class="sb_x_twitter sb_icon"><a class="sb_icon_inner" href="//twitter.com/intent/tweet?url=https%3A%2F%2Fjoho-taisaku.com%2Ftools%2Foffice-media%2F&amp;text=%E4%BE%BF%E5%88%A9%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%8A%E9%83%A8%E5%B1%8B" target="_blank" ><span class="vk_icon_w_r_sns_x_twitter icon_sns"></span><span class="sns_txt">X</span></a></li><li class="sb_hatena sb_icon"><a class="sb_icon_inner" href="//b.hatena.ne.jp/add?mode=confirm&url=https%3A%2F%2Fjoho-taisaku.com%2Ftools%2Foffice-media%2F&amp;title=%E4%BE%BF%E5%88%A9%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%8A%E9%83%A8%E5%B1%8B" target="_blank"  onclick="window.open(this.href,'Hatenawindow','width=650,height=450,menubar=no,toolbar=no,scrollbars=yes');return false;"><span class="vk_icon_w_r_sns_hatena icon_sns"></span><span class="sns_txt">Hatena</span><span class="veu_count_sns_hb"></span></a></li><li class="sb_pocket sb_icon"><a class="sb_icon_inner"  href="//getpocket.com/edit?url=https%3A%2F%2Fjoho-taisaku.com%2Ftools%2Foffice-media%2F&title=%E4%BE%BF%E5%88%A9%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%8A%E9%83%A8%E5%B1%8B" target="_blank"  onclick="window.open(this.href,'Pokcetwindow','width=650,height=450,menubar=no,toolbar=no,scrollbars=yes');return false;"><span class="vk_icon_w_r_sns_pocket icon_sns"></span><span class="sns_txt">Pocket</span><span class="veu_count_sns_pocket"></span></a></li><li class="sb_copy sb_icon"><button class="copy-button sb_icon_inner"data-clipboard-text="便利ツールのお部屋 https://joho-taisaku.com/tools/office-media/"><span class="vk_icon_w_r_sns_copy icon_sns"><i class="fas fa-copy"></i></span><span class="sns_txt">Copy</span></button></li></ul></div><!-- [ /.socialSet ] -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>パワーポイントPPTXファイルからノートを抽出するツール</title>
		<link>https://joho-taisaku.com/tools/ppt-note/</link>
		
		<dc:creator><![CDATA[hikaruinbiz@gmail.com]]></dc:creator>
		<pubDate>Mon, 22 Sep 2025 19:18:48 +0000</pubDate>
				<category><![CDATA[ビジネス]]></category>
		<guid isPermaLink="false">https://joho-taisaku.com/tools/?p=185</guid>

					<description><![CDATA[パワーポイントのファイル（.pptx）から、全ページのノートを抽出しまとめてテキストで表示します。 結果はクリップボードにコピーするか、テキストファイルとしてダウンロードできます。 パワーポイントの「配布資料を作成」機能 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>パワーポイントのファイル（.pptx）から、全ページのノートを抽出しまとめてテキストで表示します。</p>



<p>結果はクリップボードにコピーするか、テキストファイルとしてダウンロードできます。</p>



<p>パワーポイントの「配布資料を作成」機能でもノートを抜き出したwordファイルを作成できますが、途中で止まることも多く、ノートのテキストだけを抜き出すツールが欲しくて作成しました。</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="pptx-notes-wrap">
  <h3 class="pptx-title">PPTX ノート抽出</h3>

  <form id="pptx-notes-form" enctype="multipart/form-data" class="pptx-form">
    <label class="pptx-file">
      <input type="file" name="pptx" accept=".pptx" required />
      <span class="pptx-file-label">クリックして.pptxを選択</span>
    </label>

    <label class="pptx-check">
      <input type="checkbox" id="show-headers" checked />
      <span>スライド番号を表示</span>
    </label>

    <button type="submit" id="pptx-submit" class="pptx-btn primary">
      <span class="btn-text">抽出する</span>
      <span class="btn-spinner" aria-hidden="true"></span>
    </button>

    <div id="pptx-notes-error" class="pptx-error" style="display:none;"></div>
  </form>

  <div id="pptx-notes-output" class="pptx-output" style="display:none;">
    <div class="pptx-output-toolbar">
      <h4 class="pptx-output-title">抽出結果</h4>
      <div class="pptx-actions">
        <a id="pptx-notes-download" download="notes.txt" class="pptx-btn">テキストをダウンロード</a>
        <button id="pptx-notes-copy" type="button" class="pptx-btn">クリップボードにコピー</button>
      </div>
    </div>
    <pre id="pptx-notes-result" class="pptx-pre"></pre>
  </div>
</div>

<style>
  /* ====== Modern, clean look (no external CSS required) ====== */
  :root {
    --bg: #ffffff;
    --card: #ffffff;
    --muted: #6b7280;
    --border: #d5d7db;
    --ring: #3b82f6;
    --text: #010817;
    --mono: ui-monospace, Menlo, Consolas, monospace;
    --radius: 14px;
    --shadow: 0 10px 25px rgba(0,0,0,.06);
  }
  .pptx-notes-wrap {
    max-width: 920px;
    margin: 2rem auto;
    padding: 1.25rem;
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
  }
  .pptx-title {
    margin: 0 0 1rem;
    font-size: clamp(1.2rem, 2vw, 1.5rem);
    letter-spacing: .02em;
  }
  .pptx-form {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .75rem 1rem;
    align-items: center;
  }
  @media (max-width: 640px) {
    .pptx-form { grid-template-columns: 1fr; }
  }

  /* File input */
  .pptx-file {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    border: 1px dashed var(--border);
    padding: 1.75rem 1rem;
    border-radius: 12px;
    transition: border-color .2s ease, background .2s ease;
    cursor: pointer;
  }
  .pptx-file:hover { border-color: #cbd5e1; background: #f9fafb; }
  .pptx-file input[type="file"] { display: none; }
  .pptx-file-label { color: var(--muted); }

  /* Checkbox */
  .pptx-check {
    justify-self: start;
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    color: var(--muted);
    user-select: none;
  }
  .pptx-check input { transform: scale(1.1); }

  /* Buttons */
  .pptx-btn {
    appearance: none; -webkit-appearance: none;
    display: inline-flex; align-items: center; justify-content: center;
    gap: .5rem;
    border: 1px solid var(--border);
    background: #f8fafc;
    color: var(--text);
    border-radius: 12px;
    padding: .65rem 1rem;
    font-weight: 600;
    transition: transform .06s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
    text-decoration: none;
    cursor: pointer;
    box-shadow: 0 2px 0 rgba(0,0,0,.04);
    white-space: nowrap;
  }
  .pptx-btn:hover { background: #f1f5f9; border-color: #dbeafe; }
  .pptx-btn:active { transform: translateY(1px); }
  .pptx-btn.primary {
    background: #2563eb; color: #fff; border-color: #1d4ed8;
  }
  .pptx-btn.primary:hover { background: #1d4ed8; }
  .pptx-btn.primary:disabled { opacity: .65; cursor: not-allowed; }
  .pptx-btn.secondary {
    background: #111827; color: #fff; border-color: #0f172a;
  }
  .pptx-btn.secondary:hover { background: #0b1222; }

  /* Submit spinner */
  #pptx-submit { position: relative; }
  #pptx-submit .btn-spinner {
    width: 1em; height: 1em; border-radius: 999px;
    border: 2px solid rgba(255,255,255,.45);
    border-top-color: #fff;
    display: none;
    animation: pptx-spin .8s linear infinite;
  }
  #pptx-submit.loading .btn-text { opacity: .75; }
  #pptx-submit.loading .btn-spinner { display: inline-block; }
  @keyframes pptx-spin { to { transform: rotate(360deg); } }

  .pptx-error {
    grid-column: 1 / -1;
    color: #b91c1c;
    background: #fef2f2;
    border: 1px solid #fecaca;
    padding: .6rem .8rem;
    border-radius: 10px;
  }

  .pptx-output { margin-top: 1rem; }
  .pptx-output-toolbar {
    display: flex; align-items: center; justify-content: space-between;
    gap: 1rem; margin-bottom: .5rem;
  }
  .pptx-output-title { margin: .25rem 0; font-size: 1.05rem; }
  .pptx-actions { display: inline-flex; gap: .5rem; flex-wrap: wrap; }

  .pptx-pre {
    white-space: pre-wrap;
    font-family: var(--mono);
    background: #ffffff;   /* 白地 */
    color: #000000;        /* 黒文字 */
    padding: 1rem;
    border-radius: 12px;
    max-height: 55vh;
    overflow: auto;
    border: 1px solid #d1d5db;
  }

  /* Focus ring */
  .pptx-file, .pptx-btn, .pptx-check input {
    outline: none;
  }
  .pptx-file:focus-within,
  .pptx-btn:focus-visible,
  .pptx-check input:focus-visible {
    box-shadow: 0 0 0 4px rgba(59,130,246,.25);
    border-color: var(--ring);
  }
</style>

<script>
(function(){
  const $  = (s) => document.querySelector(s);
  const form = $('#pptx-notes-form');
  const out  = $('#pptx-notes-output');
  const pre  = $('#pptx-notes-result');
  const err  = $('#pptx-notes-error');
  const aDl  = $('#pptx-notes-download');
  const btnCopy = $('#pptx-notes-copy');
  const cb   = $('#show-headers');
  const btnSubmit = $('#pptx-submit');
  const fileInput = form.querySelector('input[type=file]');
  const fileLabel = form.querySelector('.pptx-file-label');

  // ファイル名をラベルに表示
  fileInput.addEventListener('change', () => {
    fileLabel.textContent = (fileInput.files[0]?.name) || '.pptx を選択';
  });

  // 抽出時のチェック状態だけ反映し、ヘッダー行だけ削除（改行は維持）
  function renderForDownload(rawText, showHeaders) {
    let processed = rawText;
    const headerRe = /^\s*===\s*Slide\s+\d+\s*===\s*$/gmi;

    if (!showHeaders) {
      processed = processed.replace(headerRe, '');
    }

    // 本文の有無は「ヘッダーを除いたテキスト」で判定
    const contentOnly = processed.replace(headerRe, '').trim();
    const displayText = contentOnly === '' ? '（ノートが存在しませんでした。）' : processed;

    pre.textContent = displayText;

    // ダウンロード用Blob
    const blob = new Blob([processed], {type: 'text/plain;charset=utf-8'});
    const url = URL.createObjectURL(blob);
    aDl.href = url;
  }

  async function copyToClipboard(text) {
    try {
      await navigator.clipboard.writeText(text);
      btnCopy.classList.add('ok');
      btnCopy.textContent = 'コピーしました';
      setTimeout(() => {
        btnCopy.classList.remove('ok');
        btnCopy.textContent = 'クリップボードにコピー';
      }, 1500);
    } catch(e) {
      // 失敗時は選択→execCommandのフォールバック（サポート外環境向け）
      const ta = document.createElement('textarea');
      ta.value = text;
      ta.style.position = 'fixed';
      ta.style.opacity = '0';
      document.body.appendChild(ta);
      ta.select();
      try { document.execCommand('copy'); } catch(_){}
      document.body.removeChild(ta);
    }
  }

  btnCopy.addEventListener('click', () => {
    const txt = pre.textContent || '';
    if (!txt) return;
    copyToClipboard(txt);
  });

  form.addEventListener('submit', async (e) => {
    e.preventDefault();
    err.style.display = 'none';
    out.style.display = 'none';

    const file = fileInput.files[0];
    if (!file) { err.textContent = 'ファイルを選択してください。'; err.style.display = 'block'; return; }
    if (!file.name.toLowerCase().endsWith('.pptx')) {
      err.textContent = '.pptx ファイルのみ対応です。'; err.style.display = 'block'; return;
    }
    if (file.size > 20 * 1024 * 1024) {
      err.textContent = 'ファイルサイズが上限(20MB)を超えています。'; err.style.display = 'block'; return;
    }

    // 抽出時点のチェック状態（この後のトグルは無視）
    const showHeadersNow = cb.checked;

    const fd = new FormData();
    fd.append('pptx', file);

    const nonceMeta = document.querySelector('meta[name="pptx-notes-nonce"]');
    const nonce = nonceMeta ? nonceMeta.getAttribute('content') : '';

    const apiUrlMeta = document.querySelector('meta[name="pptx-notes-api-url"]');
    const apiUrl = apiUrlMeta ? apiUrlMeta.getAttribute('content') : '';

    if (!apiUrl) {
      // エラー処理（URLが取得できなかった場合）
      err.textContent = 'ページを再読み込みしてください。';
      err.style.display = 'block';
      // UIロックを解除して終了
      btnSubmit.disabled = false;
      btnSubmit.classList.remove('loading');
      return; 
    }

    // UIロック
    btnSubmit.disabled = true;
    btnSubmit.classList.add('loading');

    try {
      // サブディレクトリWP（例: https://example.com/tools/）
      const res = await fetch(apiUrl, { 
        method: 'POST',
        headers: { 'X-Pptx-Notes-Nonce': nonce },
        body: fd,
        credentials: 'same-origin'
      });
      const data = await res.json();
      if (!res.ok || !data || !data.ok) {
        throw new Error((data && data.message) || '抽出に失敗しました');
      }

      renderForDownload(data.text || '', showHeadersNow);
      out.style.display = 'block';
    } catch (e2) {
      err.textContent = e2.message || '通信エラーが発生しました';
      err.style.display = 'block';
    } finally {
      btnSubmit.disabled = false;
      btnSubmit.classList.remove('loading');
    }
  });
})();
</script>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">使い方</h3>



<ul class="wp-block-list">
<li>「クリックして.pptxを選択」を押し、ファイルを選択します。</li>



<li>「抽出する」を押すと処理が行われます。</li>



<li>「スライド番号を表示」のチェックを外すと、ノートの内容のみ表示します。</li>
</ul>



<h3 class="wp-block-heading">注意点</h3>



<ul class="wp-block-list">
<li>セキュリティの観点から、pptxファイル以外は受け付けません。他の形式の場合は、変換してからご利用ください。</li>



<li>「Too many requests」と表示された場合は、アクセスが集中しています。時間を置いてからご利用ください。</li>
</ul>



<p></p>
<div class="veu_socialSet veu_socialSet-position-after veu_contentAddSection"><script>window.twttr=(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src="https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);t._e=[];t.ready=function(f){t._e.push(f);};return t;}(document,"script","twitter-wjs"));</script><ul><li class="sb_facebook sb_icon"><a class="sb_icon_inner" href="//www.facebook.com/sharer.php?src=bm&u=https%3A%2F%2Fjoho-taisaku.com%2Ftools%2Fppt-note%2F&amp;t=%E4%BE%BF%E5%88%A9%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%8A%E9%83%A8%E5%B1%8B" target="_blank" onclick="window.open(this.href,'FBwindow','width=650,height=450,menubar=no,toolbar=no,scrollbars=yes');return false;"><span class="vk_icon_w_r_sns_fb icon_sns"></span><span class="sns_txt">Facebook</span><span class="veu_count_sns_fb"></span></a></li><li class="sb_x_twitter sb_icon"><a class="sb_icon_inner" href="//twitter.com/intent/tweet?url=https%3A%2F%2Fjoho-taisaku.com%2Ftools%2Fppt-note%2F&amp;text=%E4%BE%BF%E5%88%A9%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%8A%E9%83%A8%E5%B1%8B" target="_blank" ><span class="vk_icon_w_r_sns_x_twitter icon_sns"></span><span class="sns_txt">X</span></a></li><li class="sb_hatena sb_icon"><a class="sb_icon_inner" href="//b.hatena.ne.jp/add?mode=confirm&url=https%3A%2F%2Fjoho-taisaku.com%2Ftools%2Fppt-note%2F&amp;title=%E4%BE%BF%E5%88%A9%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%8A%E9%83%A8%E5%B1%8B" target="_blank"  onclick="window.open(this.href,'Hatenawindow','width=650,height=450,menubar=no,toolbar=no,scrollbars=yes');return false;"><span class="vk_icon_w_r_sns_hatena icon_sns"></span><span class="sns_txt">Hatena</span><span class="veu_count_sns_hb"></span></a></li><li class="sb_pocket sb_icon"><a class="sb_icon_inner"  href="//getpocket.com/edit?url=https%3A%2F%2Fjoho-taisaku.com%2Ftools%2Fppt-note%2F&title=%E4%BE%BF%E5%88%A9%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%8A%E9%83%A8%E5%B1%8B" target="_blank"  onclick="window.open(this.href,'Pokcetwindow','width=650,height=450,menubar=no,toolbar=no,scrollbars=yes');return false;"><span class="vk_icon_w_r_sns_pocket icon_sns"></span><span class="sns_txt">Pocket</span><span class="veu_count_sns_pocket"></span></a></li><li class="sb_copy sb_icon"><button class="copy-button sb_icon_inner"data-clipboard-text="便利ツールのお部屋 https://joho-taisaku.com/tools/ppt-note/"><span class="vk_icon_w_r_sns_copy icon_sns"><i class="fas fa-copy"></i></span><span class="sns_txt">Copy</span></button></li></ul></div><!-- [ /.socialSet ] -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>クレジットカード損益分岐点 計算ツール</title>
		<link>https://joho-taisaku.com/tools/break-even-point/</link>
		
		<dc:creator><![CDATA[hikaruinbiz@gmail.com]]></dc:creator>
		<pubDate>Thu, 07 Mar 2024 04:40:49 +0000</pubDate>
				<category><![CDATA[日常のツール]]></category>
		<guid isPermaLink="false">https://joho-taisaku.com/tools/?p=148</guid>

					<description><![CDATA[クレジットカードの還元率、年会費、キャンペーンポイント/キャッシュバック金額（オプション）を入力すると損益分岐点（月いくら以上の使用で、もらえるポイントが年会費を上回るか）を計算します。使用額と得する金額のグラフも表示し [&#8230;]]]></description>
										<content:encoded><![CDATA[
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('current', {'packages':['corechart']});
</script>



<p>クレジットカードの還元率、年会費、キャンペーンポイント/キャッシュバック金額（オプション）を入力すると損益分岐点（月いくら以上の使用で、もらえるポイントが年会費を上回るか）を計算します。使用額と得する金額のグラフも表示します。</p>



<p class="has-small-font-size">※このページはアフィリエイトリンクを含みます。</p>



<h3 class="wp-block-heading">入力：</h3>



<div>
    <label for="kangen_rate">還元率（％）：</label>
    <input type="number" id="kangen_rate" value="1" required>
</div>
<br>
<div>
    <label for="nenkaihi">年会費（円）：</label>
    <input type="number" id="nenkaihi" value="5000" required>
</div>
<br>
<div>
    <label for="nenkaihi">入会キャンペーンポイント/キャッシュバック（円）：</label>
    <input type="number" id="campaign" value="0" required>
</div>
<br>
<div>
グラフに表示する金額：　<input type="number" id="minv" value="0" style="width:15%;" required>　万円以上　<input type="number" id="deltav" value="1" style="width:15%;" required>　万円ずつ
</div>
<br>
<div>
    <button type="button" onclick="run()" class="run">計算</button>
</div>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<div style="border:2px #DDD solid;padding:15px;">
<p>■ 各社カードの数値を呼び出し：</p>
    <button type="button" onclick="applyNum('rakuten')" class="run">楽天プレミアムカード</button>
    　詳細はこちら＞＞＞　<u><a href="//af.moshimo.com/af/c/click?a_id=5333660&p_id=7276&pc_id=20877&pl_id=91972" rel="nofollow" referrerpolicy="no-referrer-when-downgrade" attributionsrc>楽天プレミアムカード</a><img decoding="async" src="//i.moshimo.com/af/i/impression?a_id=5333660&p_id=7276&pc_id=20877&pl_id=91972" width="1" height="1" style="border:none;" loading="lazy"></u>
</div>



<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">結果：</h3>



<p id="resultText"></p>
<div id="chart_div" style="width:100%; height:300pt;"></div>



<p></p>



<p></p>
<div class="veu_socialSet veu_socialSet-position-after veu_contentAddSection"><script>window.twttr=(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src="https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);t._e=[];t.ready=function(f){t._e.push(f);};return t;}(document,"script","twitter-wjs"));</script><ul><li class="sb_facebook sb_icon"><a class="sb_icon_inner" href="//www.facebook.com/sharer.php?src=bm&u=https%3A%2F%2Fjoho-taisaku.com%2Ftools%2Fbreak-even-point%2F&amp;t=%E4%BE%BF%E5%88%A9%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%8A%E9%83%A8%E5%B1%8B" target="_blank" onclick="window.open(this.href,'FBwindow','width=650,height=450,menubar=no,toolbar=no,scrollbars=yes');return false;"><span class="vk_icon_w_r_sns_fb icon_sns"></span><span class="sns_txt">Facebook</span><span class="veu_count_sns_fb"></span></a></li><li class="sb_x_twitter sb_icon"><a class="sb_icon_inner" href="//twitter.com/intent/tweet?url=https%3A%2F%2Fjoho-taisaku.com%2Ftools%2Fbreak-even-point%2F&amp;text=%E4%BE%BF%E5%88%A9%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%8A%E9%83%A8%E5%B1%8B" target="_blank" ><span class="vk_icon_w_r_sns_x_twitter icon_sns"></span><span class="sns_txt">X</span></a></li><li class="sb_hatena sb_icon"><a class="sb_icon_inner" href="//b.hatena.ne.jp/add?mode=confirm&url=https%3A%2F%2Fjoho-taisaku.com%2Ftools%2Fbreak-even-point%2F&amp;title=%E4%BE%BF%E5%88%A9%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%8A%E9%83%A8%E5%B1%8B" target="_blank"  onclick="window.open(this.href,'Hatenawindow','width=650,height=450,menubar=no,toolbar=no,scrollbars=yes');return false;"><span class="vk_icon_w_r_sns_hatena icon_sns"></span><span class="sns_txt">Hatena</span><span class="veu_count_sns_hb"></span></a></li><li class="sb_pocket sb_icon"><a class="sb_icon_inner"  href="//getpocket.com/edit?url=https%3A%2F%2Fjoho-taisaku.com%2Ftools%2Fbreak-even-point%2F&title=%E4%BE%BF%E5%88%A9%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%8A%E9%83%A8%E5%B1%8B" target="_blank"  onclick="window.open(this.href,'Pokcetwindow','width=650,height=450,menubar=no,toolbar=no,scrollbars=yes');return false;"><span class="vk_icon_w_r_sns_pocket icon_sns"></span><span class="sns_txt">Pocket</span><span class="veu_count_sns_pocket"></span></a></li><li class="sb_copy sb_icon"><button class="copy-button sb_icon_inner"data-clipboard-text="便利ツールのお部屋 https://joho-taisaku.com/tools/break-even-point/"><span class="vk_icon_w_r_sns_copy icon_sns"><i class="fas fa-copy"></i></span><span class="sns_txt">Copy</span></button></li></ul></div><!-- [ /.socialSet ] -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>空気の屈折率を気圧、温度、光の波長から算出するツール</title>
		<link>https://joho-taisaku.com/tools/refractive-index/</link>
		
		<dc:creator><![CDATA[hikaruinbiz@gmail.com]]></dc:creator>
		<pubDate>Tue, 05 Sep 2023 16:42:15 +0000</pubDate>
				<category><![CDATA[工学]]></category>
		<guid isPermaLink="false">https://joho-taisaku.com/tools/?p=114</guid>

					<description><![CDATA[空気中の光の屈折率を気圧、温度、光の波長から算出します。 根拠とする文献は、[ Edlén, B. (1966). The refractive index of air.&#160;Metrologia,&#160;2 [&#8230;]]]></description>
										<content:encoded><![CDATA[




<p>空気中の光の屈折率を気圧、温度、光の波長から算出します。</p>



<p>根拠とする文献は、[ Edlén, B. (1966). The refractive index of air.&nbsp;<em>Metrologia</em>,&nbsp;<em>2</em>(2), 71. ] です。<a href="http://jupiter.chem.uoa.gr/thanost/papers/papers4/Metrol_2(1966)71.pdf" data-type="link" data-id="http://jupiter.chem.uoa.gr/thanost/papers/papers4/Metrol_2(1966)71.pdf" target="_blank" rel="noreferrer noopener">PDFのリンク</a></p>



<h3 class="wp-block-heading">入力</h3>



<div>
        <label for="pressure">気圧（Pa、指数形式）：</label>
        <input type="text" id="pressure" placeholder="例: 1.0e5" required>
    </div><br>

    <div>
        <label for="temperature">温度（℃）：</label>
        <input type="text" id="temperature" placeholder="例: 24" required>
    </div><br>

    <div>
        <label for="wavelength">真空中での光の波長（μm）：</label>
        <input type="text" id="wavelength" placeholder="例: 300" required>
    </div><br>

    <button onclick="performCalculation()" class="run">計算</button>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">結果</h3>



<div id="result">
        <!-- 結果を表示するための要素 -->
    </div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">解説</h3>



<p>先に挙げた文献には、Abstractの部分において以下の数式が記されており、当ツールはそれに従って計算を実行しています。</p>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>標準気体での空気の屈折率から1引いた値を\((n-1)_s\)、真空中での光の波数を\(\sigma\)[μm\(^{-1}\)]とすると、</p>



<p>$$ (n-1)_s \times 10^8 = 8342.13 + 2406030 (130 - \sigma^2)^{-1} + 15997 (38.9 - \sigma^2)^{-1} $$</p>



<p>また、温度\(t\)[℃]、気圧\(p\)[torr]での空気の屈折率から1引いた値を\((n-1)_{tp}\)とすると、</p>



<p>$$ (n-1)_{tp} = (n-1)_s \times 0.00138823 p/(1 + 0.003671 t) $$</p>
<cite>Edlén, B. (1966). The refractive index of air.&nbsp;<em>Metrologia</em>,&nbsp;<em>2</em>(2), 71. </cite></blockquote>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<p>ただし、1[torr] = \(\frac{101325}{760}\)[Pa]です。</p>



<p>適用条件、導出方法などは元論文を確認してください。当ページは数式の使用方法等の正確さを保証するものではありません。また元論文の正確性を主張するものでもありません。</p>
<div class="veu_socialSet veu_socialSet-position-after veu_contentAddSection"><script>window.twttr=(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src="https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);t._e=[];t.ready=function(f){t._e.push(f);};return t;}(document,"script","twitter-wjs"));</script><ul><li class="sb_facebook sb_icon"><a class="sb_icon_inner" href="//www.facebook.com/sharer.php?src=bm&u=https%3A%2F%2Fjoho-taisaku.com%2Ftools%2Frefractive-index%2F&amp;t=%E4%BE%BF%E5%88%A9%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%8A%E9%83%A8%E5%B1%8B" target="_blank" onclick="window.open(this.href,'FBwindow','width=650,height=450,menubar=no,toolbar=no,scrollbars=yes');return false;"><span class="vk_icon_w_r_sns_fb icon_sns"></span><span class="sns_txt">Facebook</span><span class="veu_count_sns_fb"></span></a></li><li class="sb_x_twitter sb_icon"><a class="sb_icon_inner" href="//twitter.com/intent/tweet?url=https%3A%2F%2Fjoho-taisaku.com%2Ftools%2Frefractive-index%2F&amp;text=%E4%BE%BF%E5%88%A9%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%8A%E9%83%A8%E5%B1%8B" target="_blank" ><span class="vk_icon_w_r_sns_x_twitter icon_sns"></span><span class="sns_txt">X</span></a></li><li class="sb_hatena sb_icon"><a class="sb_icon_inner" href="//b.hatena.ne.jp/add?mode=confirm&url=https%3A%2F%2Fjoho-taisaku.com%2Ftools%2Frefractive-index%2F&amp;title=%E4%BE%BF%E5%88%A9%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%8A%E9%83%A8%E5%B1%8B" target="_blank"  onclick="window.open(this.href,'Hatenawindow','width=650,height=450,menubar=no,toolbar=no,scrollbars=yes');return false;"><span class="vk_icon_w_r_sns_hatena icon_sns"></span><span class="sns_txt">Hatena</span><span class="veu_count_sns_hb"></span></a></li><li class="sb_pocket sb_icon"><a class="sb_icon_inner"  href="//getpocket.com/edit?url=https%3A%2F%2Fjoho-taisaku.com%2Ftools%2Frefractive-index%2F&title=%E4%BE%BF%E5%88%A9%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%8A%E9%83%A8%E5%B1%8B" target="_blank"  onclick="window.open(this.href,'Pokcetwindow','width=650,height=450,menubar=no,toolbar=no,scrollbars=yes');return false;"><span class="vk_icon_w_r_sns_pocket icon_sns"></span><span class="sns_txt">Pocket</span><span class="veu_count_sns_pocket"></span></a></li><li class="sb_copy sb_icon"><button class="copy-button sb_icon_inner"data-clipboard-text="便利ツールのお部屋 https://joho-taisaku.com/tools/refractive-index/"><span class="vk_icon_w_r_sns_copy icon_sns"><i class="fas fa-copy"></i></span><span class="sns_txt">Copy</span></button></li></ul></div><!-- [ /.socialSet ] -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>建設工事費デフレーター数値呼び出しツール</title>
		<link>https://joho-taisaku.com/tools/deflator/</link>
		
		<dc:creator><![CDATA[hikaruinbiz@gmail.com]]></dc:creator>
		<pubDate>Mon, 04 Sep 2023 19:39:15 +0000</pubDate>
				<category><![CDATA[土木]]></category>
		<guid isPermaLink="false">https://joho-taisaku.com/tools/?p=90</guid>

					<description><![CDATA[国土交通省のページで公開されている建設工事費デフレーター（2015年度基準）の数値を呼び出します。年度次、令和5年5月31日付けです。 データが存在する年度を2つ選ぶと比も表示されます。 【注】当サイトは国土交通省とは無 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><a rel="noreferrer noopener" href="https://www.mlit.go.jp/sogoseisaku/jouhouka/sosei_jouhouka_tk4_000112.html" data-type="link" data-id="https://www.mlit.go.jp/sogoseisaku/jouhouka/sosei_jouhouka_tk4_000112.html" target="_blank">国土交通省のページ</a>で公開されている建設工事費デフレーター（2015年度基準）の数値を呼び出します。年度次、令和5年5月31日付けです。</p>



<p>データが存在する年度を2つ選ぶと比も表示されます。</p>



<p>【注】当サイトは国土交通省とは無関係です。管理人が令和5年9月4日にダウンロードしたデータに基づき、独自に作成したツールです。正確性には万全を期していますが、このツールを用いたことにより発生した損害等に責任を負うことはできません。利用者様の責任において元データを確認してください。</p>



<h3 class="wp-block-heading">入力</h3>



<div>
        <label for="itemSelect">項目名：</label>
        <select id="itemSelect" onchange="findDataStartYear()"></select>
    </div>

    <div id="itemDataInfo">
        <!-- 項目のデータ存在情報を表示するための要素 -->
    </div>
<br>
    <div>
        <label for="yearSelect1">年度1：</label>
        <select id="yearSelect1"></select>
    </div>
<br>
    <div>
        <label for="yearSelect2">年度2：</label>
        <select id="yearSelect2"></select>
    </div>
<br>
    <button onclick="displayData()" class="run">表示</button>
<br>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">結果</h3>



<div id="result0">
        <!-- 選択されたデータを表示するための要素0 -->
    </div>

    <div id="result1">
        <!-- 選択されたデータを表示するための要素1 -->
    </div>

    <div id="result2">
        <!-- 選択されたデータを表示するための要素2 -->
    </div>

    <div id="result3">
        <!-- 選択されたデータを表示するための要素3 -->
    </div>

<noscript>JavascriptをONにしてください。</noscript>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">その他</h3>



<p>元データに記載の注意事項を以下に引用します。</p>



<p></p>



<p>*　2021年4月分の公表から、基準年を2015年度基準に改定しています。（2021年6月30日付け）<br>*　2019年度までの数値については、当該年度の実績を基に算出した建設投資のウエイトを用いています。また、2020年度以降は2017～2019年度の平均値を暫定的に用いています。<br>*　「道路1」は「道路改良」、「道路舗装」、「道路橋梁」、「道路補修」を、「道路2」は「道路1」と「高速道路株式会社」を、「街路1」　は「街路改良」、「街路舗装」、「街路橋梁」、「区画整理」を、「街路2」は「街路1」、「首都高速道路株式会社」、「阪神高速道路株式会社」を総合したものです。<br>*　「高速道路株式会社」は、「東日本高速道路株式会社」、「中日本高速道路株式会社」、「西日本高速道路株式会社」を統合したものです。<br>*　建設工事費デフレーターは、営業余剰や間接税(消費税を含む)等をウエイト項目に含めていないため、それらを含みません。<br>*　建設工事費とは、「本工事費」、「付帯工事費」、「測量及び試験費」、「機械器具費」、「営繕費」からなり、「用地費」と「補償費」は含みません。<br>*　「河川総合開発」の内容は河川総合開発事業、多目的ダム建設事業等であり、工事種類としては堤体、管理施設、放流設備、ダム用仮設備（工事用道路を含む）、補償工事（付替道路を含む）等となっています。<br>*　企業向けサービス価格指数の基準年は2015年、毎月勤労統計調査、消費者物価指数、企業物価指数の基準年は2020年に移行していますが、2015年度基準に換算して建設工事費デフレーターの算出に使用しています。</p>



<p></p>
<div class="veu_socialSet veu_socialSet-position-after veu_contentAddSection"><script>window.twttr=(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src="https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);t._e=[];t.ready=function(f){t._e.push(f);};return t;}(document,"script","twitter-wjs"));</script><ul><li class="sb_facebook sb_icon"><a class="sb_icon_inner" href="//www.facebook.com/sharer.php?src=bm&u=https%3A%2F%2Fjoho-taisaku.com%2Ftools%2Fdeflator%2F&amp;t=%E4%BE%BF%E5%88%A9%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%8A%E9%83%A8%E5%B1%8B" target="_blank" onclick="window.open(this.href,'FBwindow','width=650,height=450,menubar=no,toolbar=no,scrollbars=yes');return false;"><span class="vk_icon_w_r_sns_fb icon_sns"></span><span class="sns_txt">Facebook</span><span class="veu_count_sns_fb"></span></a></li><li class="sb_x_twitter sb_icon"><a class="sb_icon_inner" href="//twitter.com/intent/tweet?url=https%3A%2F%2Fjoho-taisaku.com%2Ftools%2Fdeflator%2F&amp;text=%E4%BE%BF%E5%88%A9%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%8A%E9%83%A8%E5%B1%8B" target="_blank" ><span class="vk_icon_w_r_sns_x_twitter icon_sns"></span><span class="sns_txt">X</span></a></li><li class="sb_hatena sb_icon"><a class="sb_icon_inner" href="//b.hatena.ne.jp/add?mode=confirm&url=https%3A%2F%2Fjoho-taisaku.com%2Ftools%2Fdeflator%2F&amp;title=%E4%BE%BF%E5%88%A9%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%8A%E9%83%A8%E5%B1%8B" target="_blank"  onclick="window.open(this.href,'Hatenawindow','width=650,height=450,menubar=no,toolbar=no,scrollbars=yes');return false;"><span class="vk_icon_w_r_sns_hatena icon_sns"></span><span class="sns_txt">Hatena</span><span class="veu_count_sns_hb"></span></a></li><li class="sb_pocket sb_icon"><a class="sb_icon_inner"  href="//getpocket.com/edit?url=https%3A%2F%2Fjoho-taisaku.com%2Ftools%2Fdeflator%2F&title=%E4%BE%BF%E5%88%A9%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%8A%E9%83%A8%E5%B1%8B" target="_blank"  onclick="window.open(this.href,'Pokcetwindow','width=650,height=450,menubar=no,toolbar=no,scrollbars=yes');return false;"><span class="vk_icon_w_r_sns_pocket icon_sns"></span><span class="sns_txt">Pocket</span><span class="veu_count_sns_pocket"></span></a></li><li class="sb_copy sb_icon"><button class="copy-button sb_icon_inner"data-clipboard-text="便利ツールのお部屋 https://joho-taisaku.com/tools/deflator/"><span class="vk_icon_w_r_sns_copy icon_sns"><i class="fas fa-copy"></i></span><span class="sns_txt">Copy</span></button></li></ul></div><!-- [ /.socialSet ] -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>気体分子の根二乗平均速度、平均速度、最大確率速度を求める計算ツール</title>
		<link>https://joho-taisaku.com/tools/gas-molecule/</link>
		
		<dc:creator><![CDATA[hikaruinbiz@gmail.com]]></dc:creator>
		<pubDate>Sat, 02 Sep 2023 15:34:25 +0000</pubDate>
				<category><![CDATA[工学]]></category>
		<guid isPermaLink="false">https://joho-taisaku.com/tools/?p=61</guid>

					<description><![CDATA[温度、気体分子の質量、ボルツマン定数を入力すると、気体分子の根二乗平均速度、平均速度、最大確率速度を計算します。 指数形式（1.38e-23など）で入力することができます。 入力 温度 (K)： 気体分子の質量 (kg) [&#8230;]]]></description>
										<content:encoded><![CDATA[




<p>温度、気体分子の質量、ボルツマン定数を入力すると、気体分子の根二乗平均速度、平均速度、最大確率速度を計算します。</p>



<p>指数形式（1.38e-23など）で入力することができます。</p>



<h3 class="wp-block-heading">入力</h3>



<div>
        <label for="temperatureInput">温度 (K)：</label>
        <input type="number" id="temperatureInput" min="0" step="1" required>
    </div><br>
    <div>
        <label for="massInput">気体分子の質量 (kg)：</label>
        <input type="text" id="massInput" pattern="[-+]?[0-9]*\.?[0-9]+[eE][-+]?[0-9]+" required>
    </div><br>
    <div>
        <label for="boltzmannConstantInput">ボルツマン定数 (J/K)：</label>
        <input type="text" id="boltzmannConstantInput" value="1.38e-23" pattern="[-+]?[0-9]*\.?[0-9]+[eE][-+]?[0-9]+" required>
    </div><br>
    <div>
        <label for="significantFiguresInput">有効数字の桁数：</label>
        <input type="number" id="significantFiguresInput" min="1" value="3">
    </div><br>
    <div>
        <button type="button" onclick="calculateVelocities()" class="run">計算</button>
    </div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">結果</h3>



<div id="result">
        <p>根二乗平均速度： <span id="rmsVelocity"></span> m/s</p>
        <p>平均速度： <span id="averageVelocity"></span> m/s</p>
        <p>最大確率速度： <span id="mostProbableVelocity"></span> m/s</p>
    </div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">解説</h3>



<p>気体分子運動論において、気体分子の根二乗平均速度\(v_{rms}\)、平均速度\(v\)、最大確率速度\(v_{mp}\)は、温度を\(T\)[K]、気体分子の質量を\(m\)[kg]、ボルツマン定数を\(k_B\)[J/K]とすると、次のように表されます。</p>



<p>$$v_{rms} = \sqrt{\frac{3k_B T}{m}},　v = \sqrt{\frac{8k_B T}{\pi m}},　v_{mp} = \sqrt{\frac{2k_B T}{m}}$$</p>
<div class="veu_socialSet veu_socialSet-position-after veu_contentAddSection"><script>window.twttr=(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src="https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);t._e=[];t.ready=function(f){t._e.push(f);};return t;}(document,"script","twitter-wjs"));</script><ul><li class="sb_facebook sb_icon"><a class="sb_icon_inner" href="//www.facebook.com/sharer.php?src=bm&u=https%3A%2F%2Fjoho-taisaku.com%2Ftools%2Fgas-molecule%2F&amp;t=%E4%BE%BF%E5%88%A9%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%8A%E9%83%A8%E5%B1%8B" target="_blank" onclick="window.open(this.href,'FBwindow','width=650,height=450,menubar=no,toolbar=no,scrollbars=yes');return false;"><span class="vk_icon_w_r_sns_fb icon_sns"></span><span class="sns_txt">Facebook</span><span class="veu_count_sns_fb"></span></a></li><li class="sb_x_twitter sb_icon"><a class="sb_icon_inner" href="//twitter.com/intent/tweet?url=https%3A%2F%2Fjoho-taisaku.com%2Ftools%2Fgas-molecule%2F&amp;text=%E4%BE%BF%E5%88%A9%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%8A%E9%83%A8%E5%B1%8B" target="_blank" ><span class="vk_icon_w_r_sns_x_twitter icon_sns"></span><span class="sns_txt">X</span></a></li><li class="sb_hatena sb_icon"><a class="sb_icon_inner" href="//b.hatena.ne.jp/add?mode=confirm&url=https%3A%2F%2Fjoho-taisaku.com%2Ftools%2Fgas-molecule%2F&amp;title=%E4%BE%BF%E5%88%A9%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%8A%E9%83%A8%E5%B1%8B" target="_blank"  onclick="window.open(this.href,'Hatenawindow','width=650,height=450,menubar=no,toolbar=no,scrollbars=yes');return false;"><span class="vk_icon_w_r_sns_hatena icon_sns"></span><span class="sns_txt">Hatena</span><span class="veu_count_sns_hb"></span></a></li><li class="sb_pocket sb_icon"><a class="sb_icon_inner"  href="//getpocket.com/edit?url=https%3A%2F%2Fjoho-taisaku.com%2Ftools%2Fgas-molecule%2F&title=%E4%BE%BF%E5%88%A9%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%8A%E9%83%A8%E5%B1%8B" target="_blank"  onclick="window.open(this.href,'Pokcetwindow','width=650,height=450,menubar=no,toolbar=no,scrollbars=yes');return false;"><span class="vk_icon_w_r_sns_pocket icon_sns"></span><span class="sns_txt">Pocket</span><span class="veu_count_sns_pocket"></span></a></li><li class="sb_copy sb_icon"><button class="copy-button sb_icon_inner"data-clipboard-text="便利ツールのお部屋 https://joho-taisaku.com/tools/gas-molecule/"><span class="vk_icon_w_r_sns_copy icon_sns"><i class="fas fa-copy"></i></span><span class="sns_txt">Copy</span></button></li></ul></div><!-- [ /.socialSet ] -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>テレビ・ディスプレイのサイズ計算ツール</title>
		<link>https://joho-taisaku.com/tools/display-size/</link>
		
		<dc:creator><![CDATA[hikaruinbiz@gmail.com]]></dc:creator>
		<pubDate>Fri, 01 Sep 2023 17:35:51 +0000</pubDate>
				<category><![CDATA[日常のツール]]></category>
		<guid isPermaLink="false">https://joho-taisaku.com/tools/?p=9</guid>

					<description><![CDATA[テレビやディスプレイのインチ数（○○型）を入力すると、縦横のサイズを表示します。縦横比を選択することもできます。 入力： テレビの対角線の長さ（インチ）： 縦横比： 16:916:104:321:91:1 結果の単位：  [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>テレビやディスプレイのインチ数（○○型）を入力すると、縦横のサイズを表示します。縦横比を選択することもできます。</p>



<h3 class="wp-block-heading">入力：</h3>



<div>
        <label for="diagonalSizeInput">テレビの対角線の長さ（インチ）：</label>
        <input type="number" id="diagonalSizeInput" required>
    </div><br>
    <div>
        <label for="aspectRatio">縦横比：</label>
        <select id="aspectRatio">
            <option value="16:9">16:9</option>
            <option value="16:10">16:10</option>
            <option value="4:3">4:3</option>
            <option value="21:9">21:9</option>
            <option value="1:1">1:1</option>
        </select>
    </div><br>
    <div>
        <label for="unit">結果の単位：</label>
        <select id="unit">
            <option value="cm">センチメートル</option>
            <option value="m">メートル</option>
            <option value="inch">インチ</option>
        </select>
    </div><br>
    <div>
        <button type="button" onclick="calculateSize()" class="run">計算</button>
    </div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">結果：</h3>



<p id="resultText"><br></p>
<canvas id="tvCanvas" width="400" height="350"></canvas>



<p></p>



<p></p>
<div class="veu_socialSet veu_socialSet-position-after veu_contentAddSection"><script>window.twttr=(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],t=window.twttr||{};if(d.getElementById(id))return t;js=d.createElement(s);js.id=id;js.src="https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);t._e=[];t.ready=function(f){t._e.push(f);};return t;}(document,"script","twitter-wjs"));</script><ul><li class="sb_facebook sb_icon"><a class="sb_icon_inner" href="//www.facebook.com/sharer.php?src=bm&u=https%3A%2F%2Fjoho-taisaku.com%2Ftools%2Fdisplay-size%2F&amp;t=%E4%BE%BF%E5%88%A9%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%8A%E9%83%A8%E5%B1%8B" target="_blank" onclick="window.open(this.href,'FBwindow','width=650,height=450,menubar=no,toolbar=no,scrollbars=yes');return false;"><span class="vk_icon_w_r_sns_fb icon_sns"></span><span class="sns_txt">Facebook</span><span class="veu_count_sns_fb"></span></a></li><li class="sb_x_twitter sb_icon"><a class="sb_icon_inner" href="//twitter.com/intent/tweet?url=https%3A%2F%2Fjoho-taisaku.com%2Ftools%2Fdisplay-size%2F&amp;text=%E4%BE%BF%E5%88%A9%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%8A%E9%83%A8%E5%B1%8B" target="_blank" ><span class="vk_icon_w_r_sns_x_twitter icon_sns"></span><span class="sns_txt">X</span></a></li><li class="sb_hatena sb_icon"><a class="sb_icon_inner" href="//b.hatena.ne.jp/add?mode=confirm&url=https%3A%2F%2Fjoho-taisaku.com%2Ftools%2Fdisplay-size%2F&amp;title=%E4%BE%BF%E5%88%A9%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%8A%E9%83%A8%E5%B1%8B" target="_blank"  onclick="window.open(this.href,'Hatenawindow','width=650,height=450,menubar=no,toolbar=no,scrollbars=yes');return false;"><span class="vk_icon_w_r_sns_hatena icon_sns"></span><span class="sns_txt">Hatena</span><span class="veu_count_sns_hb"></span></a></li><li class="sb_pocket sb_icon"><a class="sb_icon_inner"  href="//getpocket.com/edit?url=https%3A%2F%2Fjoho-taisaku.com%2Ftools%2Fdisplay-size%2F&title=%E4%BE%BF%E5%88%A9%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%8A%E9%83%A8%E5%B1%8B" target="_blank"  onclick="window.open(this.href,'Pokcetwindow','width=650,height=450,menubar=no,toolbar=no,scrollbars=yes');return false;"><span class="vk_icon_w_r_sns_pocket icon_sns"></span><span class="sns_txt">Pocket</span><span class="veu_count_sns_pocket"></span></a></li><li class="sb_copy sb_icon"><button class="copy-button sb_icon_inner"data-clipboard-text="便利ツールのお部屋 https://joho-taisaku.com/tools/display-size/"><span class="vk_icon_w_r_sns_copy icon_sns"><i class="fas fa-copy"></i></span><span class="sns_txt">Copy</span></button></li></ul></div><!-- [ /.socialSet ] -->]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
