私は、多くの人が使用するワープロドキュメント(ライターのスタイルシート)を作成し、定期的に更新します。参考のためにドキュメントを印刷する人がいるのではないかと思います。Googleドキュメントで、フッターに印刷日または保存日を示すフィールドコードを配置することはできますか?そうでない場合は、ドキュメントに「[ドキュメントタイトル]バージョン[x]」という名前を付けて、フッターに印刷することができますか?
私は、多くの人が使用するワープロドキュメント(ライターのスタイルシート)を作成し、定期的に更新します。参考のためにドキュメントを印刷する人がいるのではないかと思います。Googleドキュメントで、フッターに印刷日または保存日を示すフィールドコードを配置することはできますか?そうでない場合は、ドキュメントに「[ドキュメントタイトル]バージョン[x]」という名前を付けて、フッターに印刷することができますか?
回答:
悲しいかな、これは現在可能ではないようです。Googleドキュメントは、Officeが行う自動更新フィールドをサポートしていません。
ここに、この機能をリクエストできるサポートスレッドがあります。ただし、返信も投稿しました。
はい、可能です。しかし、それは既存のAPIを利用して実際に可能なことではありません。実際、Wordのようにフィールドとそれに関連する機能がないことは、ドキュメントの自動化にとって大きな障害です。
このようなものは、ドキュメントを開いたり開いたりするときにフッターを挿入しますが、最終的には良い解決策ではありません。
function onOpen() {
var time = new Date();
time = Utilities.formatDate(time, "GMT", "yyyy-MM-dd'T'HH:mm:ss'Z'");
var doc = DocumentApp.getActiveDocument();
var s;
if (!doc.getFooter()) {
var footer = doc.addFooter();
var footerText = footer.appendParagrap(time);
} else {
var footer = doc.getFooter();
var footerElements = footer.getNumChildren();
var para = footer.getParagraphs();
s = para[footerElements-1].getText();
var footerText = footer.replaceText(s , time);
}
};
編集:スクリプトを追加する方法。
上記で示したこのコードは、実際には、卸売りではなく、OnOpen()関数から呼び出される独自の関数に含める必要がありますが、すべて例の目的に適しています。
開いているドキュメントの[ツール]メニューから[スクリプトマネージャー]に移動すると、読み込まれたときに現在空であることを確認し、そこにレコードがある場合は、自分でコードを配置します。
スクリプトマネージャーを閉じ、[ツール]メニューに戻り、[スクリプトエディター]を選択します。スクリプトマネージャーに何もない場合は、すべてのコードを選択して削除します。次に、上記のコードを貼り付けて保存できます。
ドキュメントを閉じて再度開くと、フッターに日付が表示されているはずです。ドキュメントが開かれるたびに更新されるはずです。
文書にすでに関連付けられているコードを持っている人のために。上記のコードから最初の行と最後の行を引いたものをonOpen()関数に追加しても機能しますが、コードが既に競合しているため、機能しない場合があります。
これでうまくいくといいのですが。
これはjCiscoの回答を拡張したものであり、Googleドキュメントでうまく機能するセットアンドフォーゲットソリューションであり、シートなどで機能するように調整することができます。
これをドキュメントのフッターセクションに挿入します。
印刷/保存時の制御なし:2016-09-03 14:05。PDFを更新: goo.gl/xXXxxx
そのgoo.glリンクは、ドキュメントの「誰でも閲覧可能」共有リンクの短縮版です/edit?usp=sharing
が、リンクの末尾を/export?format=pdf
(または/export/pdf
シートの場合)に置き換えます。次に、編集した共有リンクをgoo.glに移動して短縮します。
ドキュメントのスクリプトエディターを開き([ツール]> [スクリプトエディター...])、以下のコードを追加します。ドキュメント内からエディタを開く必要があるため、Googleドライブに保存される個別のスクリプトではなく、ドキュメントにバインドされたスクリプトが作成されます。
コード:
function DocControl() {
var time = new Date();
time = Utilities.formatDate(time, "GMT+10:00", "yyyy-MM-dd' 'HH:mm");
var doc = DocumentApp.getActiveDocument();
var bod = doc.getBody();
var fol = bod.getParent();
// Define a custom paragraph style.
var style = {};
style[DocumentApp.Attribute.FONT_FAMILY] = 'Proxima Nova';
style[DocumentApp.Attribute.FONT_SIZE] = 8;
style[DocumentApp.Attribute.ITALIC] = true;
for (i = 0; i<fol.getNumChildren(); i++){
var child = fol.getChild(i);
if (child.getType() == DocumentApp.ElementType.FOOTER_SECTION) {
var footerText = child.asFooterSection().replaceText("Uncontrolled when Printed\/Saved: (.*). Refresh pdf: ", "Uncontrolled when Printed\/Saved: " + time + ". Refresh pdf: ");
footerText.setAttributes(style);
}
}
}
必要に応じて、タイムゾーン(私の場合はAEST)と段落スタイルを編集することができます。
フッターの時間は毎分更新されます。Googleのサーバーがすべての作業を行っているので、ドキュメントを開いたりオンラインにしたりする必要はありません。
ただし、スクリプトが実行されないことが時々あるGoogleのリストから毎週メールを受け取ることを期待できますが、私にとっては時間のわずか1%で、次の分に再度実行されるため、全体的に問題ではありませんでした。