Omitでは、いくつかのプロジェクト管理ツールを使ってきましたが、もっとシンプルで社内の業務が簡素化できるプロジェクト管理ツールを探していました。
使ってた(検討していた)ツールとしては、Redmine、Asana、Jooto、Notion、Wrikeなどなどありますが
どれも人数が増えるとコストが増えたり、やりたいことが出来なかったり、スタッフ全員がわかりやすいものではなかったりと満足できるものが無い状態でした。
そこで、スクラッチで作ってしまおうかと思いましたが、いい機会なのでAppsheetを使ってノーコードで構築から運用までしてみましたので、ざっくりではございますがご紹介いたします。
- シンプルである
- 会社全体のプロジェクト状況がわかる画面と各個人が自身のタスクの状況を把握できる画面
- GoogleDriveでプロジェクト用のデータや素材など管理しているので、連携してほしい(プロジェクト追加すると、指定の場所に複数フォルダが作成される)
- RocketChatと連携したい(期限間近タスクの通知、プロジェクト追加時にRoomの作成)
- プロジェクトの進行状況、個人の負荷状態がわかりやすい
- 案件ごとメールをテンプレで送信できるように(打ち合わせのお礼等)
- タスクやプロジェクトタイムラインがほしい
- カスタマイズが容易
- AIと連携させたい(プロジェクトの進行状況まとめの通知、タスク忘れ防止、クライアントへの連絡忘れ防止、様々なミスを未然に防げるように、更にDriveや議事録と連携させ案件に対する分析やアドバイスが自動出てくる仕組み)
AppSheet(アップシート)は、プログラミングの知識がなくても、誰でも簡単にアプリを作れるサービスです。Googleが提供しているツールで、「ノーコードアプリ作成ツール」**と呼ばれています
AppSheetの特徴を簡単に説明すると…
1. プログラミング不要!
→ コードを書かなくても、マウス操作や簡単な設定だけでアプリを作れます。
2. 表計算ソフトがそのままアプリに!
→ GoogleスプレッドシートやExcelなどのデータを使ってアプリが作れます。例えば、スプレッドシートに「商品名」「価格」「在庫数」などを入力しておけば、それがそのまま在庫管理アプリになります。
3. スマホやパソコンで使える!
→ 作ったアプリはスマホやタブレット、パソコンから使えるので、現場でも事務所でも同じ情報が確認できます。
4. 業務効率化にピッタリ!
→ 営業管理、タスク管理、顧客管理、在庫管理など、会社の業務に合わせたオリジナルアプリが簡単に作れます。



function doPost(customerName, projectName, projectDate) {
try {
var parentFolderId = "〇〇〇〇〇〇〇〇〇〇〇〇"; // 親フォルダのIDを設定
var newFolderId = createFolderByPath(parentFolderId, customerName, projectName, projectDate);
return newFolderId;
} catch (error) {
Logger.log(error);
return ContentService.createTextOutput(JSON.stringify({
error: error.toString()
})).setMimeType(ContentService.MimeType.JSON);
}
}
function createFolderByPath(parentFolderId, customerName, projectName, projectDate) {
var parentFolder = DriveApp.getFolderById(parentFolderId);
//顧客名フォルダを作成
var customerFolders = parentFolder.getFoldersByName(customerName);
if (customerFolders && customerFolders.hasNext()) {
customerFolder = customerFolders.next();
} else {
customerFolder = parentFolder.createFolder(customerName);
}
Logger.log("customerFolder: " + customerFolder.getId());
if (customerFolder && projectName && projectDate) {
formattedDate = formatDate(projectDate);
// フォルダ名を作成 (例: "20250107_プロジェクト名")
var folderName = formattedDate + "_" + projectName;
// 既存のフォルダがあるか確認
var projectFolder = createCheckFolder(customerFolder, folderName);
// 必要なサブフォルダを作成
createCheckFolder(projectFolder, "ディレクション");
var dataFolder = createCheckFolder(projectFolder, "データ");
createCheckFolder(dataFolder, "デザイン");
createCheckFolder(dataFolder, "ソースコード");
return projectFolder.getId(); // 最終フォルダのIDを返す
}
return customerFolder.getId(); // 最終フォルダのIDを返す
}
function createCheckFolder(parent, folderName) {
var folders = parent.getFoldersByName(folderName);
var targetFolder;
if (folders.hasNext()) {
targetFolder = folders.next(); // 既存フォルダを取得
} else {
targetFolder = parent.createFolder(folderName);
}
return targetFolder;
}
function formatDate(dateString) {
// 受け取った日付文字列を Date オブジェクトに変換
var dateObj = new Date(dateString);
// 変換が失敗した場合のチェック
if (isNaN(dateObj.getTime())) {
return "Invalid Date"; // エラー処理
}
// YYYYMMDD 形式に変換
var year = dateObj.getFullYear();
var month = ('0' + (dateObj.getMonth() + 1)).slice(-2); // 0埋め
var day = ('0' + dateObj.getDate()).slice(-2); // 0埋め
return year + month + day;
}

無料相談・お問い合わせ Web制作・システム開発に関する
ご相談はこちらよりご連絡ください。
お客様のビジネスの成長と成功を支えるパートナーとして、
どんなご相談でもお待ちしております。お気軽にお問い合わせください。