はじめに
前回の記事では、Google Formsで集めた質問をSpreadSheetに蓄積し、Docsにまとめて、Sitesで公開するという“みんなで作るFAQ”の仕組みを紹介しました。
この流れによって、質問の収集から公開までを自動化できることを確認しました。
今回はその仕組みに、Sheetsで公開状態を管理する工夫を加え、Docsで回答をまとめ、Sitesで公開するという流れを考えてみます。
公開状態の管理
FAQをSitesで公開する際には、回答の進捗を明確にする必要があります。
そこで、Sheetsに「状態」列を設け、以下のように管理します。
-
回答中
Docsにリンクがあり、回答の記述が進んでいる段階。まだ公開には進めない。 -
回答済
Docsで回答が完成し、公開可能な状態。相談会で確認後に公開へ進める。 -
公開済
Sitesに反映され、FAQとして公開された状態。
このように状態をシンプルに整理することで、Sheetsが「公開制御の基準」として機能し、DocsとSitesの間をつなぐ役割を果たします。
シートの分割運用
回答中と回答済/公開済を同じシートに混在させるのではなく、同じファイル内でシートを分けて管理すると進捗や次の作業がわかりやすくなります。
-
回答中シート
→ 回答中のDocsリンクを一覧化。まだ公開できないものを管理。 -
回答済/公開済シート
→ 相談会で確認が終わったものを移動し、公開の進捗を管理。
この構成により、回答中のDocsは「回答中シート」で管理され、回答済や公開済のものは別シートで整理されるため、状態ごとのアクセス先が明確になります。
移動の半自動化
状態列を「回答済」に変更した時に自動移動するのではなく、相談会後に自分のタイミングで移動処理を実行できる仕組みにします。
例:Apps Scriptでの実装イメージ
function moveAnsweredRows() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheetFrom = ss.getSheetByName("回答中");
var sheetTo = ss.getSheetByName("回答済公開済");
var lastRow = sheetFrom.getLastRow();
var data = sheetFrom.getRange(2, 1, lastRow-1, sheetFrom.getLastColumn()).getValues(); // 1行目はヘッダ想定
for (var i = data.length - 1; i >= 0; i--) {
var row = data[i];
var status = row[5]; // F列(6列目)が状態列
if (status === "回答済") {
sheetTo.appendRow(row);
sheetFrom.deleteRow(i+2); // ヘッダ分を考慮
}
}
}
このような関数は、Google Sheetsのカスタムメニューやボタンに紐付けることで利用できます。相談会で確認が終わった後に、任意のタイミングで移動処理を実行できるため、誤移動を防ぎつつ運用に合わせた制御が可能です。
公開済への切り替えは、同じシート内で状態列を「公開済」に変更するだけで管理できます。
Sitesへの反映
回答済から公開済への切り替えは、Docsの内容をSitesに転記して公開するタイミングで行います。これにより、シート上の状態と公開状況が揃い、次に処理すべき作業が明確になります。
状態が「回答済」になったものだけをSitesに掲載することで、公開のタイミングを制御できます。さらに「公開済」に切り替えることで、SpreadSheet上でも公開済みの範囲が一目で分かります。
この仕組みによって、Docsで回答をまとめる作業とSitesで公開する作業を分離でき、公開の進捗を管理しやすくなります。
まとめ
- 状態列を使って「回答中/回答済/公開済」を明確に管理する
- 回答中と回答済/公開済を別シートに分けることで進捗が見やすくなる
- 移動は相談会後に半自動化し、公開はSites反映のタイミングで制御する
これにより「誰がどこまで進めたか」「次に何をすべきか」が一目で分かり、チームでの協働がスムーズになります。
同じような運用を考えている方の参考になれば幸いです。
参考リンク
- 前回の記事:Google Forms→SpreadSheet→Docs→Sitesで“みんなで作るFAQ”を自動公開する仕組み
- Google Apps Script 公式ガイド
- Google Sites ヘルプセンター
※この記事は現在勉強中の内容を整理したものであり、技術的に不正確な点が含まれている可能性があります。
ご指摘や改善案などがあれば、コメントで教えていただけると嬉しいです。