30人分の仕事を少数でこなす組織を創りたい経営者・マネージャーへ
Dify / n8n / Zapier / make / GAS / ChatGPT / Gemini等
あなたの周りにも「なぜか社員数は同じくらいなのに、あそこの会社の方が生産性高い気がする…」と思う会社ありませんか?
まさか「うちの社員が手を抜いてるに違いない…!」とか思ってないですよね?
そんな会社になれる方法、そこには「ある条件」がありました。
再現性高く生産性の高い組織を創るためには共通化した「ある条件」、それは
「キャッチアップ(情報処理)のスピードが速い」
ということです。
今「社員の能力が違うじゃないか!」って思いましたか?
能力は正直問題ではありません。
問題なのは、「キャッチアップ時に、どんだけ頭を空っぽの状態にできるか?」という環境づくりです。
例えば、面倒な作業があり、それを自動化するために新しいツールの使い方をキャッチアップする必要があるとします。
自動化ツールは、誰でも「時間をかければ」できるようになります。
そう「時間をかければ」。
「時間をかければ自分たちだってキャッチアップできるはず」って思っていませんか?
よく考えてみてください。
あなたは、そんな時間を捻出させられますか?
そんな環境を用意できますか?
今ギクッとなった方、安心してください。
それはあなたのせいではありません。
現代が「情報過多すぎる」せいです。
・無造作に手に取ってしまうスマホ。
・鳴り止まない通知。
・脳内で「やらなきゃ」と思っている残タスク。
気づかぬ間に、あなたの脳内マインドシェアは他人の創作物に搾取されています。
脳内のマインドシェアが常に10%しかない状態でキャッチアップしようとしているのです。
これは、エベレストで90分間サッカーをしているのと同じです。
パフォーマンスが高いはずがありません。
十分なマインドシェアを用意さえできれば、あなたもあなたの社員も
自動化ツールを使いこなし、生産性は上がっていくはずです。
自動化ツールに限らず、大きな経営の意思決定も納得できるものになるはずです。
人間の脳が本気集中状態を持続できる時間はたったの「1.5分」。
単調な仕事だと「25分」でパフォーマンスが下がると言われています。
そもそも、こんな情報過多な時代に自分のチカラだけで何か新しいことをキャッチアップしようとするのは、戦場に竹槍で戦いに挑もうとするくらい無謀です。
だから、今あなたに必要なのは、「情報のキャッチアップのスピードを効率化する仕組み」です。
本当に使える、質の高い情報を、時間をかけて咀嚼し、理解する、仕組みです。
だから私たちは、頭を空っぽにして生産的な業務や整理された情報による意思決定ができるように、自動化ツールやノウハウを使って業務を簡易化できる支援を事業として行なっています。
でも、いきなり予算をかけるのは心配ですよね?
だから、そんなあなたのために、まずは有料級のノウハウを発信する公式ラインを開設しました🎉
網羅的に自動化ツールを扱い、実際に弊社で自動化した内容で、ツールの使い方をどこよりも細かく、スクリーンショット満載で載せています!
大事なことなのでもう一度いいます。
「自動化できるんだろうけど、キャッチアップしている時間がないから今は人力で対応、、、!」
と思っているあなた、残念ながらあなたは一生、誰かの創作物の奴隷です。
これを機に「思考の余白」を創りませんか?

Google Apps Scriptの時間設定トリガーはデフォルトでは「1:00-2:00の間のどこか」といった具合で、1時間単位で指定することはできますが、分単位まで指定することができません。
この記事では、強制的に分単位で設定する方法について記述します。

トリガーの基本概念と時間指定の課題
まず、GASで利用可能なトリガーの基本的な種類と、それぞれの特徴を理解しておくことが重要です。通常、時間主導型トリガーは「日次」「週次」「月次」などの単位で設定できますが、時間指定は1時間単位でしか行えません。そのため、特定の分にスクリプトを実行したい場合、標準の設定では不可能です。
しかし、Google Apps Scriptでは、トリガー自体をGASから設定する処理を組むことが可能であり、その場合は分単位の指定することが可能になります。

トリガーの設定コードの紹介
以下に、分単位でトリガーを設定するためのサンプルコードを紹介します。このコードは、指定した時間(例えば、翌日の9:59)にスクリプトを実行するためのトリガーを設定するものです。
// 翌日9:59にトリガーをセットする処理
function setMinTrigger() {
let triggers = ScriptApp.getScriptTriggers();
for(let trigger of triggers){
let funcName = trigger.getHandlerFunction();
if(funcName == 'exampleFunction'){ //function名を定期実行したい関数名に変更する
ScriptApp.deleteTrigger(trigger);
}
}
let now = new Date();
let y = now.getFullYear();
let m = now.getMonth();
let d = now.getDate();
let date = new Date(y, m, d+1, 9, 59);
ScriptApp.newTrigger('exampleFunction').timeBased().at(date).create(); //function名を定期実行したい関数名に変更する
}
// 定期実行したい処理
function exampleFunction() {
/* ----------------------------
// ここに定期実行したい内容をかく
------------------------------*/
setMinTrigger(); //上記内容が処理し終える度に、翌日9:59にトリガーがセットする
}たったこれだけで完了です。
setMinTrigger関数内の
let now = new Date();
let y = now.getFullYear();
let m = now.getMonth();
let d = now.getDate();
let date = new Date(y, m, d+1, 9, 59);
ScriptApp.newTrigger('copyValueToLastRow').timeBased().at(date).create();の部分を修正すれば、時間指定も変化させることができます。
例えば、2日置きの23:30に起動したい場合は、
// 翌々日23:00にトリガーをセットする処理
function setMinTrigger() {
let triggers = ScriptApp.getScriptTriggers();
for(let trigger of triggers){
let funcName = trigger.getHandlerFunction();
if(funcName == 'exampleFunction'){
ScriptApp.deleteTrigger(trigger);
}
}
let now = new Date();
let y = now.getFullYear();
let m = now.getMonth();
let d = now.getDate();
let date = new Date(y, m, d+2, 23, 00);
ScriptApp.newTrigger('exampleFunction').timeBased().at(date).create();
}
// 定期実行したい処理
function exampleFunction() {
/* ----------------------------
// ここに定期実行したい内容をかく
------------------------------*/
setMinTrigger(); //上記内容が処理し終える度に、翌日9:59にトリガーがセットする
}
コードの詳細な解説
トリガーのクリアと再設定
まず、setMinTrigger関数では、既存のトリガーを確認し、同じ関数名で設定されたトリガーがあれば削除します。これにより、重複したトリガーの設定を防ぎ、管理をシンプルにします。
日付と時間の設定
次に、Dateオブジェクトを使用して、翌日の特定の時間(9:59)を設定します。new Date(y, m, d+1, 9, 59)で、翌日の9:59に実行されるようにトリガーを設定しています。この部分が、分単位での時間指定を可能にしている要点です。
定期的なトリガーの再設定
copyValueToLastRow関数は、定期的に実行したい処理を記述する場所です。この関数の最後で、再度setMinTrigger関数を呼び出すことで、処理が終わるたびに翌日の9:59にトリガーが再設定されます。これにより、毎日同じ時間に処理を実行させることができます。
より柔軟なスケジュール設定のための応用例
この方法を応用すれば、より複雑なスケジュールや特定の時間帯に実行したい処理のトリガーを柔軟に設定することが可能です。例えば、特定の曜日だけ異なる時間に実行したり、特定の条件を満たしたときにのみトリガーを設定することもできます。
よくある質問とトラブルシューティング
GASでトリガーの日時指定はできますか?
このコードを使用すれば、GASのトリガーを特定の日時に設定することが可能です。標準の設定では分単位の指定ができませんが、この方法なら可能になります。
GASのトリガーは時差を指定できますか?
標準のGASでは時差を設定する機能はありませんが、スクリプト内で計算を行い、異なるタイムゾーンに合わせて日時を設定することは可能です。
GASのトリガーの実行時間はずれることがありますか?
Googleサーバーの負荷やトリガーの登録状況により、実行時間がわずかにずれることがあります。この場合も、再設定のロジックを使って確実に再トリガーを設定することで、安定した実行が可能です。
GASのトリガーの編集時と変更時の違いは何ですか?
編集時はトリガーの既存の設定内容を変更する際に使用し、変更時は新しいトリガーを設定する際に使用します。
まとめ
GASを使ったスクリプトの自動化は非常に便利ですが、トリガーの設定においては時間指定が1時間単位であることがしばしば制約となります。本記事で紹介した方法を使えば、分単位での細かい時間指定が可能になり、より柔軟なスケジュール管理が可能となります。ぜひ、この方法を活用して、GASによる自動化をさらに進化させてください。



