<?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://office-automation-lab.com/tag/%e6%8b%85%e5%bd%93%e8%80%85%e5%88%a5%e9%9b%86%e8%a8%88/feed/" rel="self" type="application/rss+xml" />
	<link>https://office-automation-lab.com</link>
	<description>AIとExcelで仕事を少しだけ楽にする方法を、リアルな体験と検証で発信</description>
	<lastBuildDate>Wed, 17 Jun 2026 15:32:13 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://office-automation-lab.com/wp-content/uploads/2026/06/cropped-サイト画像-32x32.jpg</url>
	<title>担当者別集計</title>
	<link>https://office-automation-lab.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【AIとのやりとり記録⑨】AIに担当者別集計表とPDF保存機能を作らせてみた結果</title>
		<link>https://office-automation-lab.com/project-ver1-staff-summary/</link>
					<comments>https://office-automation-lab.com/project-ver1-staff-summary/#respond</comments>
		
		<dc:creator><![CDATA[mkhome_ai]]></dc:creator>
		<pubDate>Wed, 17 Jun 2026 15:32:13 +0000</pubDate>
				<category><![CDATA[AIとのやりとり記録]]></category>
		<category><![CDATA[ChatGPT]]></category>
		<category><![CDATA[GAS]]></category>
		<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[PDF保存]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[担当者別集計]]></category>
		<category><![CDATA[案件管理システム]]></category>
		<category><![CDATA[業務効率化]]></category>
		<guid isPermaLink="false">https://office-automation-lab.com/?p=695</guid>

					<description><![CDATA[今回やる内容案件データベースから担当者別集計表を作成し、PDFとして保存する機能の作成です。 結果成功 初心者でも再現できるか基本操作が分かれば再現可能です。 Step1 AIに依頼 【AIへの指示】 データベースシート [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">今回やる内容<br>案件データベースから担当者別集計表を作成し、PDFとして保存する機能の作成です。</p>



<p class="wp-block-paragraph">結果<br>成功</p>



<p class="wp-block-paragraph">初心者でも再現できるか<br>基本操作が分かれば再現可能です。</p>



<h2 class="wp-block-heading">Step1 AIに依頼</h2>



<p class="wp-block-paragraph">【AIへの指示】</p>



<p class="wp-block-paragraph">データベースシートの内容を担当者別に集計し、印刷できるVBAを作成してください。<br>そして、データベースシートのスクショと関数で計算したシートのスクショを貼付しました。</p>



<p class="wp-block-paragraph">👉 なぜこの指示にしたか</p>



<p class="wp-block-paragraph">登録した案件データを担当者別に一覧化したかったためです。</p>



<h2 class="wp-block-heading">Step2 AIの回答</h2>



<p class="wp-block-paragraph">AIは担当者別の件数を集計し、印刷用シートへ出力するコードを提案しました。</p>



<p class="wp-block-paragraph">シート名や列位置も指定できる内容でした。</p>



<p class="wp-block-paragraph">👉 一言評価</p>



<p class="wp-block-paragraph">最初からかなり実用的でした。</p>



<h2 class="wp-block-heading">Step3 実際に実行</h2>



<p class="wp-block-paragraph">実際に集計表を作成して動作確認を行いました。</p>



<p class="wp-block-paragraph">集計自体は問題なく動作しました。</p>



<h2 class="wp-block-heading">Step4 結果確認</h2>



<p class="wp-block-paragraph">✅ 成功</p>



<p class="wp-block-paragraph">担当者別集計表は正常に作成できました。</p>



<p class="wp-block-paragraph">ただし実務では作成直後に印刷することは少なく、一度内容確認を行いたいと感じました。</p>



<h2 class="wp-block-heading">Step5 AIに修正依頼</h2>



<p class="wp-block-paragraph">【修正プロンプト】</p>



<p class="wp-block-paragraph">印刷ではなくPDF保存に変更してください。</p>



<p class="wp-block-paragraph">さらに保存前に内容確認を行いたいので、集計作成とPDF保存を別のボタンに分けてください。</p>



<p class="wp-block-paragraph">👉 修正した理由</p>



<p class="wp-block-paragraph">実務では確認後に保存や印刷を行うことが多いためです。</p>



<h2 class="wp-block-heading">Step6 修正版の結果</h2>



<p class="wp-block-paragraph">最終的に以下の3機能へ分割しました。</p>



<p class="wp-block-paragraph">・担当者別集計作成<br>・PDF保存<br>・集計クリア</p>



<p class="wp-block-paragraph">実務に近い流れで利用できるようになりました。</p>



<h2 class="wp-block-heading">関数版との比較</h2>



<p class="wp-block-paragraph">今回の担当者別集計は、最初に関数を使って作成していました。<br>関数版では、<br>・担当者名をあらかじめ作成<br>・進捗状況ごとの集計欄を作成<br>・COUNTIF関数（データベースに担当者の名前の数をカウント）<br>・COUNTIFS関数（データベースに担当者の名前と進捗状況の数をカウント）<br>を利用して集計を行いました。<br>ただし担当者が増えたり、レイアウトを変更したりする場合は手作業で修正が必要になります。<br>今回作成したVBA版とGAS版では、案件データベースの内容から自動で集計表を作成できるため、メンテナンスの手間を減らせるようになりました。<br>まずは関数で仕組みを理解し、その後に自動化へ進める流れは初心者にもおすすめです。</p>



<h2 class="wp-block-heading">GAS検証で気付いたこと</h2>



<p class="wp-block-paragraph">PDF保存機能を初回実行した際、Googleの認証画面が複数回表示されました。<br>最初はエラーかと思いましたが異常ではありませんでした。<br>今回のコードでは</p>



<p class="wp-block-paragraph">SpreadsheetApp</p>



<p class="wp-block-paragraph">↓</p>



<p class="wp-block-paragraph">DriveApp</p>



<p class="wp-block-paragraph">↓</p>



<p class="wp-block-paragraph">UrlFetchApp</p>



<p class="wp-block-paragraph">を利用しています。</p>



<p class="wp-block-paragraph">そのため、<br>・スプレッドシートへのアクセス<br>・Google Driveへのアクセス<br>・PDF変換処理<br>の許可確認が順番に表示されることがあります。<br>認証画面が複数回表示されても正常動作です。<br>エラーではありません。</p>



<h2 class="wp-block-heading">今回のAI評価</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>項目</th><th>評価</th></tr></thead><tbody><tr><td>コード品質</td><td>★★★★★</td></tr><tr><td>実務利用度</td><td>★★★★★</td></tr><tr><td>初心者向け</td><td>★★★★☆</td></tr><tr><td>総合評価</td><td>★★★★★</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">今回のコードは集計機能として十分実用的でした。<br>また、実務フローに合わせて機能を分割する改善提案もスムーズに行えました。<br>PDF保存機能まで短時間で完成できた点は非常に便利でした。</p>



<h2 class="wp-block-heading">今回の気付き</h2>



<p class="wp-block-paragraph">・最初の指示では確認作業が考慮されていなかった<br>・印刷よりPDF保存の方が管理しやすい<br>・機能を分割した方が実務では使いやすい<br>・関数で仕組みを理解してから自動化すると理解しやすい<br>・GASは認証画面が複数回表示される場合がある<br>・AIは仕様整理にも役立つ</p>



<h2 class="wp-block-heading">完成コード</h2>



<p class="wp-block-paragraph">今回完成したコードはこちらです。</p>



<p class="wp-block-paragraph">【VBA版】</p>



<p class="wp-block-paragraph">▶ <a target="_blank" href="https://office-automation-lab.com/vba-person-summary-report/" data-type="link" data-id="https://office-automation-lab.com/vba-person-summary-report/">VBA完成コード記事（集計表作成）</a></p>



<p class="wp-block-paragraph">▶ <a target="_blank" href="https://office-automation-lab.com/vba-save-summary-report-pdf/" data-type="link" data-id="https://office-automation-lab.com/vba-save-summary-report-pdf/">VBA完成コード記事（PDF保存）</a></p>



<p class="wp-block-paragraph">【GAS版】</p>



<p class="wp-block-paragraph">▶ <a target="_blank" href="https://office-automation-lab.com/gas-create-staff-summary/" data-type="link" data-id="https://office-automation-lab.com/gas-create-staff-summary/">GAS完成コード記事（集計表作成）</a></p>



<p class="wp-block-paragraph">▶ <a target="_blank" href="https://office-automation-lab.com/gas-export-staff-summary-pdf/" data-type="link" data-id="https://office-automation-lab.com/gas-export-staff-summary-pdf/">GAS完成コード記事（PDF保存）</a></p>



<h2 class="wp-block-heading">AIへ依頼する時のコツ</h2>



<p class="wp-block-paragraph">同じ機能を作る場合は</p>



<p class="wp-block-paragraph">・入力場所</p>



<p class="wp-block-paragraph">・出力場所</p>



<p class="wp-block-paragraph">・保存先</p>



<p class="wp-block-paragraph">・確認作業の有無</p>



<p class="wp-block-paragraph">を具体的に伝えると精度が上がります。</p>



<h2 class="wp-block-heading">結論</h2>



<p class="wp-block-paragraph">✅ AIで担当者別集計表は作れる</p>



<p class="wp-block-paragraph">✅ PDF保存機能も作れる</p>



<p class="wp-block-paragraph">✅ 実務フローを伝えるとさらに使いやすくなる</p>



<h2 class="wp-block-heading">ひとこと</h2>



<p class="wp-block-paragraph">まずは集計機能だけでも試してみてください。</p>



<h2 class="wp-block-heading">次回予告</h2>



<p class="wp-block-paragraph">新規プロジェクト開始予定</p>



<p class="wp-block-paragraph">お楽しみに。</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://office-automation-lab.com/project-ver1-staff-summary/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>GASで担当者別集計表をPDF保存するコード（DriveApp）｜案件管理システムVer.1完成版</title>
		<link>https://office-automation-lab.com/gas-export-staff-summary-pdf/</link>
					<comments>https://office-automation-lab.com/gas-export-staff-summary-pdf/#respond</comments>
		
		<dc:creator><![CDATA[mkhome_ai]]></dc:creator>
		<pubDate>Wed, 17 Jun 2026 14:53:12 +0000</pubDate>
				<category><![CDATA[GASコード集]]></category>
		<category><![CDATA[DriveApp]]></category>
		<category><![CDATA[GAS]]></category>
		<category><![CDATA[GoogleAppsScript]]></category>
		<category><![CDATA[GoogleDrive]]></category>
		<category><![CDATA[PDF保存]]></category>
		<category><![CDATA[帳票作成]]></category>
		<category><![CDATA[担当者別集計]]></category>
		<category><![CDATA[案件管理システム]]></category>
		<category><![CDATA[業務効率化]]></category>
		<guid isPermaLink="false">https://office-automation-lab.com/?p=693</guid>

					<description><![CDATA[・担当者別集計表をPDF化してGoogle Driveへ保存・保存フォルダを自動作成・帳票管理を自動化できる このコードでできること ・担当者別集計表をPDF保存 ・Google Driveへ自動保存 ・保存フォルダを自 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">・担当者別集計表をPDF化してGoogle Driveへ保存<br>・保存フォルダを自動作成<br>・帳票管理を自動化できる</p>



<h2 class="wp-block-heading">このコードでできること</h2>



<p class="wp-block-paragraph">・担当者別集計表をPDF保存</p>



<p class="wp-block-paragraph">・Google Driveへ自動保存</p>



<p class="wp-block-paragraph">・保存フォルダを自動作成</p>



<h2 class="wp-block-heading">初回実行時の注意</h2>



<p class="wp-block-paragraph">初めて実行するとGoogleの承認画面が表示されます。<br>このコードはGoogle DriveへPDFを保存するため、利用許可が必要です。<br>承認後にすぐ動作しない場合がありますが、その場合はもう一度実行してみてください。<br>環境によっては2～3回実行すると正常に動作します。<br>「エラーかな？」と思うかもしれませんが、Googleの権限設定が行われているだけなので心配ありません。<br>一度承認が完了すれば、次回以降はスムーズに利用できます。</p>



<h3 class="wp-block-heading">GASコード</h3>



<pre class="wp-block-code"><code>function exportStaffSummaryPDF() {

const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName("担当者別集計(GAS)");

const folderName = "担当者別集計PDF";

let folder;

const folders = DriveApp.getFoldersByName(folderName);

if (folders.hasNext()) {
folder = folders.next();
} else {
folder = DriveApp.createFolder(folderName);
}

const gid = sheet.getSheetId();

const url =
"https://docs.google.com/spreadsheets/d/" +
ss.getId() +
"/export?format=pdf" +
"&amp;gid=" + gid +
"&amp;size=A4" +
"&amp;portrait=false" +
"&amp;fitw=true" +
"&amp;sheetnames=false" +
"&amp;printtitle=false" +
"&amp;pagenumbers=false" +
"&amp;gridlines=false" +
"&amp;fzr=false";

const token = ScriptApp.getOAuthToken();

const response = UrlFetchApp.fetch(url, {
headers: {
Authorization: "Bearer " + token
}
});

const fileName =
"担当者別集計_" +
Utilities.formatDate(
new Date(),
Session.getScriptTimeZone(),
"yyyyMMdd_HHmmss"
) +
".pdf";

const file = folder.createFile(
response.getBlob().setName(fileName)
);

SpreadsheetApp.getUi().alert(
"PDF保存が完了しました。\n\n" +
"保存先フォルダ：担当者別集計PDF\n" +
"ファイル名：" + file.getName()
);

}
</code></pre>



<h2 class="wp-block-heading">カスタマイズ例</h2>



<h3 class="wp-block-heading">パターン①</h3>



<p class="wp-block-paragraph">保存フォルダ名を変更する</p>



<pre class="wp-block-code"><code>const folderName = "案件管理PDF";
</code></pre>



<h3 class="wp-block-heading">パターン②</h3>



<p class="wp-block-paragraph">縦向きPDFで保存する</p>



<pre class="wp-block-code"><code>"&amp;portrait=true"
</code></pre>



<h2 class="wp-block-heading">よくあるエラー</h2>



<h3 class="wp-block-heading">症状</h3>



<p class="wp-block-paragraph">Googleの承認画面が何度も表示される</p>



<p class="wp-block-paragraph">対処法<br>・承認処理を最後まで完了する<br>・再度スクリプトを実行する</p>



<h3 class="wp-block-heading">症状</h3>



<p class="wp-block-paragraph">PDFが保存されない</p>



<p class="wp-block-paragraph">対処法<br>・Google Driveの容量を確認する<br>・担当者別集計(GAS)シート名を確認する</p>



<h2 class="wp-block-heading">サンプルファイル</h2>



<p class="wp-block-paragraph">このコードを試せるGoogleスプレッドシートを配布しています。</p>



<p class="wp-block-paragraph">▶ <a rel="noopener" target="_blank" href="https://docs.google.com/spreadsheets/d/1hBcYy_8TvDZvypBzl3nWO_6SsBHOc3UvZHyB0QEKs6k/edit?usp=sharing" data-type="link" data-id="https://docs.google.com/spreadsheets/d/1hBcYy_8TvDZvypBzl3nWO_6SsBHOc3UvZHyB0QEKs6k/edit?usp=sharing">サンプルシートをコピーする（前回までのデータ）</a></p>



<p class="wp-block-paragraph">▶<a rel="noopener" target="_blank" href="https://docs.google.com/spreadsheets/d/1yax8QvjBMyMCxF5qceGTiT-8avF3DKyJiSb-orL-QCA/edit?usp=sharing" data-type="link" data-id="https://docs.google.com/spreadsheets/d/1yax8QvjBMyMCxF5qceGTiT-8avF3DKyJiSb-orL-QCA/edit?usp=sharing"> 完成版シートをコピーする（案件管理システム_完成版）</a></p>



<h2 class="wp-block-heading">関連記事</h2>



<p class="wp-block-paragraph">▶ <a target="_blank" href="https://office-automation-lab.com/gas-form-transfer-database/" data-type="post" data-id="587">GASで案件データを登録するコード</a></p>



<p class="wp-block-paragraph">▶ <a target="_blank" href="https://office-automation-lab.com/gas-create-staff-summary/" data-type="link" data-id="https://office-automation-lab.com/gas-create-staff-summary/">GASで担当者別集計表を自動作成するコード</a></p>



<p class="wp-block-paragraph">▶ <a target="_blank" href="https://office-automation-lab.com/gas-clear-project-entry-form/" data-type="link" data-id="https://office-automation-lab.com/gas-clear-project-entry-form/">GASで入力フォームを自動クリアするコード</a></p>



<h2 class="wp-block-heading">次回予告</h2>



<p class="wp-block-paragraph">次回から新プロジェクトを開始します。<br>お楽しみに</p>
]]></content:encoded>
					
					<wfw:commentRss>https://office-automation-lab.com/gas-export-staff-summary-pdf/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>GASで担当者別集計表を自動作成するコード（getValues）｜案件管理システムVer.1完成版</title>
		<link>https://office-automation-lab.com/gas-create-staff-summary/</link>
					<comments>https://office-automation-lab.com/gas-create-staff-summary/#respond</comments>
		
		<dc:creator><![CDATA[mkhome_ai]]></dc:creator>
		<pubDate>Wed, 17 Jun 2026 14:39:47 +0000</pubDate>
				<category><![CDATA[GASコード集]]></category>
		<category><![CDATA[GAS]]></category>
		<category><![CDATA[getValues]]></category>
		<category><![CDATA[GoogleAppsScript]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[担当者別集計]]></category>
		<category><![CDATA[案件管理システム]]></category>
		<category><![CDATA[業務効率化]]></category>
		<category><![CDATA[自動集計]]></category>
		<category><![CDATA[進捗管理]]></category>
		<guid isPermaLink="false">https://office-automation-lab.com/?p=691</guid>

					<description><![CDATA[・案件データベースから担当者別の進捗を自動集計・完了、進行中、未着手を自動で分類・ボタン1つで集計表を更新可能 このコードでできること ・担当者ごとの総案件数を集計 ・完了、進行中、未着手件数を集計 ・担当者別集計表を自 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">・案件データベースから担当者別の進捗を自動集計<br>・完了、進行中、未着手を自動で分類<br>・ボタン1つで集計表を更新可能</p>



<h2 class="wp-block-heading">このコードでできること</h2>



<p class="wp-block-paragraph">・担当者ごとの総案件数を集計</p>



<p class="wp-block-paragraph">・完了、進行中、未着手件数を集計</p>



<p class="wp-block-paragraph">・担当者別集計表を自動作成</p>



<h3 class="wp-block-heading">GASコード</h3>



<pre class="wp-block-code"><code>function createStaffSummary() {

const ss = SpreadsheetApp.getActiveSpreadsheet();

const wsData = ss.getSheetByName("案件データベース");
const wsOut = ss.getSheetByName("担当者別集計(GAS)");

const lastRow = wsData.getLastRow();

const data = wsData.getRange(2, 1, lastRow - 1, 9).getValues();

let summary = {};

data.forEach(row =&gt; {

const person = row&#91;4];
const status = row&#91;7];

if (!person) return;

if (!summary&#91;person]) {

  summary&#91;person] = {
    total: 0,
    complete: 0,
    progress: 0,
    waiting: 0
  };

}

summary&#91;person].total++;

switch (status) {

  case "完了":
    summary&#91;person].complete++;
    break;

  case "進行中":
    summary&#91;person].progress++;
    break;

  case "未着手":
    summary&#91;person].waiting++;
    break;

}

});

// 出力エリア初期化
wsOut.getRange("B4:O14").clearContent();

// 列幅設定
&#91;4, 7, 10, 13].forEach(col =&gt; {
wsOut.setColumnWidth(col, 30);
});

const startCols = &#91;2, 5, 8, 11, 14, 2, 5, 8, 11, 14];

let count = 0;

for (let person in summary) {

if (count &gt;= 10) break;

const topRow = count &lt;= 4 ? 4 : 10;
const col = startCols&#91;count];

const item = summary&#91;person];

wsOut.getRange(topRow, col).setValue(person);
wsOut.getRange(topRow, col + 1).setValue("件数");

wsOut.getRange(topRow + 1, col).setValue("総件数");
wsOut.getRange(topRow + 1, col + 1).setValue(item.total);

wsOut.getRange(topRow + 2, col).setValue("完了");
wsOut.getRange(topRow + 2, col + 1).setValue(item.complete);

wsOut.getRange(topRow + 3, col).setValue("進行中");
wsOut.getRange(topRow + 3, col + 1).setValue(item.progress);

wsOut.getRange(topRow + 4, col).setValue("未着手");
wsOut.getRange(topRow + 4, col + 1).setValue(item.waiting);

// 担当者名太字
wsOut.getRange(topRow, col).setFontWeight("bold");

// 下罫線
wsOut.getRange(topRow, col, 1, 2)
  .setBorder(false, false, true, false, false, false);

// 中央揃え
wsOut.getRange(topRow, col, 5, 1)
  .setHorizontalAlignment("center")
  .setVerticalAlignment("middle");

wsOut.getRange(topRow, col + 1)
  .setHorizontalAlignment("center");

count++;

}

SpreadsheetApp.getUi().alert(
"担当者別集計を作成しました。内容を確認してください。"
);

}
</code></pre>



<h2 class="wp-block-heading">カスタマイズ例</h2>



<h3 class="wp-block-heading">パターン①</h3>



<p class="wp-block-paragraph">担当者数を15名まで表示する</p>



<pre class="wp-block-code"><code>if (count &gt;= 15) break;
</code></pre>



<h3 class="wp-block-heading">パターン②</h3>



<p class="wp-block-paragraph">表示開始行を変更する</p>



<pre class="wp-block-code"><code>const topRow = count &lt;= 4 ? 15 : 21;
</code></pre>



<h2 class="wp-block-heading">よくあるエラー</h2>



<h3 class="wp-block-heading">症状</h3>



<p class="wp-block-paragraph">集計結果が表示されない</p>



<p class="wp-block-paragraph">対処法<br>・シート名を確認する<br>・担当者列がE列か確認する</p>



<h3 class="wp-block-heading">症状</h3>



<p class="wp-block-paragraph">実行時エラーが発生する</p>



<p class="wp-block-paragraph">対処法<br>・担当者別集計(GAS)シートが存在するか確認する<br>・案件データベースシート名を確認する</p>



<h2 class="wp-block-heading">サンプルファイル</h2>



<p class="wp-block-paragraph">このコードを試せるGoogleスプレッドシートを配布しています。</p>



<p class="wp-block-paragraph">▶ <a rel="noopener" target="_blank" href="https://docs.google.com/spreadsheets/d/1hBcYy_8TvDZvypBzl3nWO_6SsBHOc3UvZHyB0QEKs6k/edit?usp=sharing" data-type="link" data-id="https://docs.google.com/spreadsheets/d/1hBcYy_8TvDZvypBzl3nWO_6SsBHOc3UvZHyB0QEKs6k/edit?usp=sharing">サンプルシートをコピーする</a>（前回までの完成版）</p>



<p class="wp-block-paragraph">▶ <a rel="noopener" target="_blank" href="https://docs.google.com/spreadsheets/d/1yax8QvjBMyMCxF5qceGTiT-8avF3DKyJiSb-orL-QCA/edit?usp=sharing" data-type="link" data-id="https://docs.google.com/spreadsheets/d/1yax8QvjBMyMCxF5qceGTiT-8avF3DKyJiSb-orL-QCA/edit?usp=sharing">完成版シートをコピーする</a>（案件管理システム_完成版）</p>



<h2 class="wp-block-heading">関連記事</h2>



<p class="wp-block-paragraph">▶ <a target="_blank" href="https://office-automation-lab.com/gas-form-transfer-database/" data-type="link" data-id="https://office-automation-lab.com/gas-form-transfer-database/">GASで案件データを登録するコード</a></p>



<p class="wp-block-paragraph">▶ <a target="_blank" href="https://office-automation-lab.com/gas-clear-project-entry-form/" data-type="link" data-id="https://office-automation-lab.com/gas-clear-project-entry-form/">GASで入力フォームを自動クリアするコード</a></p>



<p class="wp-block-paragraph">▶ <a target="_blank" href="https://office-automation-lab.com/gas-copy-data-to-two-sheets-checkbox/" data-type="link" data-id="https://office-automation-lab.com/gas-copy-data-to-two-sheets-checkbox/">GASでチェックボックスにチェックしたら別シートへ転記するコード</a></p>



<h2 class="wp-block-heading">次回予告</h2>



<p class="wp-block-paragraph">次回は「GASで担当者別集計表をPDF保存するコード」を紹介予定です。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://office-automation-lab.com/gas-create-staff-summary/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>VBAで担当者別集計表をPDF保存するコード（ExportAsFixedFormat）｜案件管理システムVer.1完成版</title>
		<link>https://office-automation-lab.com/vba-save-summary-report-pdf/</link>
					<comments>https://office-automation-lab.com/vba-save-summary-report-pdf/#respond</comments>
		
		<dc:creator><![CDATA[mkhome_ai]]></dc:creator>
		<pubDate>Wed, 17 Jun 2026 14:23:04 +0000</pubDate>
				<category><![CDATA[VBAコード集]]></category>
		<category><![CDATA[ExcelVBA]]></category>
		<category><![CDATA[ExportAsFixedFormat]]></category>
		<category><![CDATA[PDF保存]]></category>
		<category><![CDATA[PDF出力]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[帳票作成]]></category>
		<category><![CDATA[担当者別集計]]></category>
		<category><![CDATA[案件管理システム]]></category>
		<category><![CDATA[業務効率化]]></category>
		<guid isPermaLink="false">https://office-automation-lab.com/?p=688</guid>

					<description><![CDATA[・担当者別集計表をPDF化して保存・保存先フォルダを選ぶだけで利用可能・報告書や進捗資料の作成を効率化 このコードでできること ・担当者別集計表をPDFで保存・保存先フォルダを自由に選択・保存後にPDFを自動で開く VB [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">・担当者別集計表をPDF化して保存<br>・保存先フォルダを選ぶだけで利用可能<br>・報告書や進捗資料の作成を効率化</p>



<h2 class="wp-block-heading">このコードでできること</h2>



<p class="wp-block-paragraph">・担当者別集計表をPDFで保存<br>・保存先フォルダを自由に選択<br>・保存後にPDFを自動で開く</p>



<h3 class="wp-block-heading">VBAコード</h3>



<pre class="wp-block-code"><code>Sub 担当者別集計PDF保存()

Dim wsOut As Worksheet
Dim fd As FileDialog
Dim saveFolder As String
Dim pdfPath As String

Set wsOut = Worksheets("担当者別集計(VBA)")

Set fd = Application.FileDialog(msoFileDialogFolderPicker)

With fd

    .Title = "PDF保存先フォルダを選択してください"

    If .Show &lt;&gt; -1 Then Exit Sub

    saveFolder = .SelectedItems(1)

End With

pdfPath = saveFolder &amp; "\" &amp; _
          "担当者別集計_" &amp; _
          Format(Now, "yyyymmdd_hhnnss") &amp; ".pdf"

wsOut.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=pdfPath, _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=True

MsgBox "PDF保存が完了しました。", vbInformation

End Sub
</code></pre>



<h2 class="wp-block-heading">カスタマイズ例</h2>



<h3 class="wp-block-heading">パターン①</h3>



<p class="wp-block-paragraph">PDF保存後に自動で開かない</p>



<pre class="wp-block-code"><code>OpenAfterPublish:=False
</code></pre>



<h3 class="wp-block-heading">パターン②</h3>



<p class="wp-block-paragraph">ファイル名に担当者別集計表を追加する</p>



<pre class="wp-block-code"><code>pdfPath = saveFolder &amp; "\" &amp; _
          "担当者別集計表_" &amp; _
          Format(Now, "yyyymmdd_hhnnss") &amp; ".pdf"
</code></pre>



<h2 class="wp-block-heading">よくあるエラー</h2>



<h3 class="wp-block-heading">症状</h3>



<p class="wp-block-paragraph">PDFが保存されない</p>



<p class="wp-block-paragraph">対処法</p>



<p class="wp-block-paragraph">・保存先フォルダへの権限を確認する</p>



<p class="wp-block-paragraph">・同名ファイルが開かれていないか確認する</p>



<h3 class="wp-block-heading">症状</h3>



<p class="wp-block-paragraph">実行時エラーが発生する</p>



<p class="wp-block-paragraph">対処法<br>・担当者別集計(VBA)シートが存在するか確認する<br>・印刷範囲設定を確認する</p>



<h2 class="wp-block-heading">サンプルファイル</h2>



<p class="wp-block-paragraph">このコードを試せるサンプルファイルを配布しています。</p>



<p class="wp-block-paragraph">▶ <a target="_blank" href="https://office-automation-lab.com/wp-content/uploads/2026/06/案件管理システム_4_VBAサンプル.zip" data-type="link" data-id="https://office-automation-lab.com/wp-content/uploads/2026/06/案件管理システム_4_VBAサンプル.zip">サンプルファイルをダウンロード（.zip）</a></p>



<h2 class="wp-block-heading">関連記事</h2>



<p class="wp-block-paragraph">▶ <a target="_blank" href="https://office-automation-lab.com/vba-project-registration/" data-type="link" data-id="https://office-automation-lab.com/vba-project-registration/">VBAで案件データを登録するコード</a></p>



<p class="wp-block-paragraph">▶ <a target="_blank" href="https://office-automation-lab.com/vba-person-summary-report/" data-type="link" data-id="https://office-automation-lab.com/vba-person-summary-report/">VBAで担当者別集計表を自動作成するコード</a></p>



<p class="wp-block-paragraph">▶ <a target="_blank" href="https://office-automation-lab.com/vba-clear-project-entry-form/" data-type="link" data-id="https://office-automation-lab.com/vba-clear-project-entry-form/">VBAで入力フォームを自動クリアするコード</a></p>



<h2 class="wp-block-heading">次回予告</h2>



<p class="wp-block-paragraph">次回は新プロジェクトを開始します。</p>



<p class="wp-block-paragraph">お楽しみに。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://office-automation-lab.com/vba-save-summary-report-pdf/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>VBAで担当者別集計表を自動作成するコード（Dictionary）｜案件管理システムVer.1完成版</title>
		<link>https://office-automation-lab.com/vba-person-summary-report/</link>
					<comments>https://office-automation-lab.com/vba-person-summary-report/#respond</comments>
		
		<dc:creator><![CDATA[mkhome_ai]]></dc:creator>
		<pubDate>Wed, 17 Jun 2026 14:10:21 +0000</pubDate>
				<category><![CDATA[VBAコード集]]></category>
		<category><![CDATA[Dictionary]]></category>
		<category><![CDATA[ExcelVBA]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[担当者別集計]]></category>
		<category><![CDATA[案件管理]]></category>
		<category><![CDATA[案件管理システム]]></category>
		<category><![CDATA[業務効率化]]></category>
		<category><![CDATA[進捗管理]]></category>
		<category><![CDATA[集計表作成]]></category>
		<guid isPermaLink="false">https://office-automation-lab.com/?p=686</guid>

					<description><![CDATA[・案件データベースから担当者ごとの進捗状況を自動集計・完了・進行中・未着手を自動で分類・案件管理システムの集計画面をボタン1つで更新可能 このコードでできること ・担当者ごとの総案件数を集計・完了、進行中、未着手件数を集 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">・案件データベースから担当者ごとの進捗状況を自動集計<br>・完了・進行中・未着手を自動で分類<br>・案件管理システムの集計画面をボタン1つで更新可能</p>



<h2 class="wp-block-heading">このコードでできること</h2>



<p class="wp-block-paragraph">・担当者ごとの総案件数を集計<br>・完了、進行中、未着手件数を集計<br>・集計結果を担当者別に一覧表示</p>



<h3 class="wp-block-heading">VBAコード</h3>



<pre class="wp-block-code"><code>Sub 担当者別集計作成()

Dim wsData As Worksheet
Dim wsOut As Worksheet

Dim lastRow As Long
Dim r As Long

Dim dic As Object
Dim person As String
Dim status As String
Dim info

Dim startCols As Variant
Dim topRow As Long
Dim col As Long
Dim cnt As Long

Dim key As Variant
Dim c As Variant

'=================================
' シート設定
'=================================
Set wsData = Worksheets("案件データベース")
Set wsOut = Worksheets("担当者別集計(VBA)")

Set dic = CreateObject("Scripting.Dictionary")

'=================================
' 最終行取得
'=================================
lastRow = wsData.Cells(wsData.Rows.Count, "E").End(xlUp).Row

'=================================
' 集計
'=================================
For r = 2 To lastRow

    person = Trim(wsData.Cells(r, "E").Value)
    status = Trim(wsData.Cells(r, "H").Value)

    If person &lt;&gt; "" Then

        If Not dic.Exists(person) Then
            dic.Add person, Array(0, 0, 0, 0)
        End If

        info = dic(person)

        info(0) = info(0) + 1

        Select Case status

            Case "完了"
                info(1) = info(1) + 1

            Case "進行中"
                info(2) = info(2) + 1

            Case "未着手"
                info(3) = info(3) + 1

        End Select

        dic(person) = info

    End If

Next r

wsOut.Range("B4:O14").ClearContents

For Each c In Array("D", "G", "J", "M")
    wsOut.Columns(c).ColumnWidth = 3.75
Next c

startCols = Array(2, 5, 8, 11, 14, 2, 5, 8, 11, 14)

cnt = 0

For Each key In dic.Keys

    If cnt &gt; 9 Then Exit For

    If cnt &lt;= 4 Then
        topRow = 4
        col = startCols(cnt)
    Else
        topRow = 10
        col = startCols(cnt)
    End If

    info = dic(key)

    wsOut.Cells(topRow, col).Value = key
    wsOut.Cells(topRow, col + 1).Value = "件数"

    wsOut.Cells(topRow + 1, col).Value = "総件数"
    wsOut.Cells(topRow + 1, col + 1).Value = info(0)

    wsOut.Cells(topRow + 2, col).Value = "完了"
    wsOut.Cells(topRow + 2, col + 1).Value = info(1)

    wsOut.Cells(topRow + 3, col).Value = "進行中"
    wsOut.Cells(topRow + 3, col + 1).Value = info(2)

    wsOut.Cells(topRow + 4, col).Value = "未着手"
    wsOut.Cells(topRow + 4, col + 1).Value = info(3)

    wsOut.Cells(topRow, col).Font.Bold = True

    With wsOut.Range( _
        wsOut.Cells(topRow, col), _
        wsOut.Cells(topRow, col + 1) _
        ).Borders(xlEdgeBottom)

        .LineStyle = xlContinuous
        .Weight = xlThin

    End With

    With wsOut.Range( _
        wsOut.Cells(topRow, col), _
        wsOut.Cells(topRow + 4, col))

        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter

    End With

    wsOut.Cells(topRow, col + 1).HorizontalAlignment = xlCenter
    wsOut.Cells(topRow, col + 1).VerticalAlignment = xlCenter

    cnt = cnt + 1

Next key

wsOut.Activate

MsgBox "担当者別集計を作成しました。" &amp; vbCrLf &amp; _
       "内容を確認してください。", vbInformation

End Sub
</code></pre>



<h2 class="wp-block-heading">カスタマイズ例</h2>



<h3 class="wp-block-heading">パターン①</h3>



<p class="wp-block-paragraph">担当者数を15名まで表示する</p>



<pre class="wp-block-code"><code>If cnt &gt; 14 Then Exit For
</code></pre>



<h3 class="wp-block-heading">パターン②</h3>



<p class="wp-block-paragraph">集計開始行を変更する</p>



<pre class="wp-block-code"><code>topRow = 15
</code></pre>



<h2 class="wp-block-heading">よくあるエラー</h2>



<h3 class="wp-block-heading">症状</h3>



<p class="wp-block-paragraph">実行時エラーが発生する</p>



<p class="wp-block-paragraph">対処法<br>・案件データベースシート名を確認する<br>・担当者別集計(VBA)シート名を確認する</p>



<h3 class="wp-block-heading">症状</h3>



<p class="wp-block-paragraph">集計結果が0件になる</p>



<p class="wp-block-paragraph">対処法<br>・担当者列がE列か確認する<br>・状態列がH列か確認する</p>



<h2 class="wp-block-heading">サンプルファイル</h2>



<p class="wp-block-paragraph">このコードを試せるサンプルファイルを配布しています。</p>



<p class="wp-block-paragraph">▶ <a target="_blank" href="https://office-automation-lab.com/wp-content/uploads/2026/06/案件管理システム_4_VBAサンプル.zip" data-type="link" data-id="https://office-automation-lab.com/wp-content/uploads/2026/06/案件管理システム_4_VBAサンプル.zip">サンプルファイルをダウンロード（.zip）</a></p>



<h2 class="wp-block-heading">関連記事</h2>



<p class="wp-block-paragraph">▶ <a target="_blank" href="https://office-automation-lab.com/vba-project-registration/" data-type="link" data-id="https://office-automation-lab.com/vba-project-registration/">VBAで案件データを登録するコード</a></p>



<p class="wp-block-paragraph">▶ <a target="_blank" href="https://office-automation-lab.com/vba-transfer-checked-data-to-another-sheet/" data-type="post" data-id="660">VBAで入力フォームを自動クリアするコード</a></p>



<p class="wp-block-paragraph">▶ <a target="_blank" href="https://office-automation-lab.com/vba-transfer-checked-data-to-another-sheet/" data-type="link" data-id="https://office-automation-lab.com/vba-transfer-checked-data-to-another-sheet/">VBAでチェックボックスにチェックしたら別シートへ転記するコード</a></p>



<h2 class="wp-block-heading">次回予告</h2>



<p class="wp-block-paragraph">次回は「VBAで担当者別集計表をPDF保存するコード」を紹介予定です。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://office-automation-lab.com/vba-person-summary-report/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
