はじめに
みなさんGoogle Meetの自動録画機能&文字起こし&議事録使ってますか?
管理者コンソールで、自動メモ作成機能をオンにしておいて・・・
Googleカレンダーでミーティングなんかをセッティングした際に「Google Meetビデオ会議を追加」
これだけで、あとは会議すると議事録までつくってくれちゃう。(こまい設定作業はあった気がするけどわすれちゃったw)
なまら便利ですよね。でも、ちょっとネックなのが作成された議事が全部マイドライブに保存されてしまうこと。これ、できればみんなで共有しているところとか、プロジェクト単位で保存しておきたいじゃないですか。
なので、作ってみましたGAS。(僕がじゃなくてGeminiがだけどw)
下準備とコード
下準備は簡単。
大体議事録をみんなに共有したい時って「定例会」的なものが多いと思うんですが、その会議名をちゃんと固定化させておくこと
例えばたっくんとの週1定例会議があったと仮定したならば
「たっくん_定例MTG」
といった形にしておくと良いです。
定例会議はいろんな方とすごい量みなさん持っていると思うんですが、「XXXXX_定例MTG」みたいな表示フォーマット作っておくと便利かと
GASはドライブの「+新規」から選んでくださいね。
ここに以下のコードを貼り付けしてください。
なお、設定項目は前半3行のみです
function moveFilesByTitle() {
// ★★★ 設定項目以下3行 ★★★
const sourceFolderId = 'ここに移動元のドライブID'; // 移動元
const destinationFolderId = 'ここに移動先のドライブID'; // 移動先
const searchString = 'ここに移動したい定例会議名'; // 例: '「XXXXX_定例MTG'
// 共有ドライブへの移動の場合、destinationFolderIdは共有ドライブのIDとなります。
// マイドライブ内のフォルダへの移動の場合、destinationFolderIdはそのフォルダのIDです。
// 共有ドライブへの移動かどうかの判定 (共有ドライブの場合、IDが異なる形式になることがあります)
const isSharedDriveDestination = destinationFolderId.length < 20; // 共有ドライブIDは比較的短い傾向
// フォルダの取得
const sourceFolder = DriveApp.getFolderById(sourceFolderId);
let destinationFolderOrDrive;
try {
if (isSharedDriveDestination) {
// 共有ドライブの場合
destinationFolderOrDrive = DriveApp.getFolderById(destinationFolderId);
} else {
// マイドライブ内のフォルダの場合
destinationFolderOrDrive = DriveApp.getFolderById(destinationFolderId);
}
} catch (e) {
Logger.log('移動先フォルダ/共有ドライブの取得に失敗しました。IDを確認してください: ' + e.message);
return;
}
// 検索文字列を含むファイルの取得(ここではDriveApp.getFilesByName()を使わず、後でフィルターします)
// getFilesByName()は部分一致なので、ここではgetSourceFolder().getFiles()を使い、後でフィルターします
const allFiles = sourceFolder.getFiles();
let movedCount = 0;
while (allFiles.hasNext()) {
const file = allFiles.next();
const fileName = file.getName();
// ★★★ 前方一致でチェック(大文字小文字を区別しない場合) ★★★
if (fileName.toLowerCase().startsWith(searchString.toLowerCase())) {
try {
// ファイルを移動元から削除
sourceFolder.removeFile(file);
// ファイルを移動先に追加
destinationFolderOrDrive.addFile(file);
Logger.log(`ファイル '${fileName}' を移動しました。`);
movedCount++;
} catch (e) {
Logger.log(`ファイル '${fileName}' の移動中にエラーが発生しました: ${e.message}`);
}
}
}
Logger.log(`合計 ${movedCount} 個のファイルが移動されました。`);
}
GASが完成したらトリガーを忘れずに。僕は毎回ではなくて、週1回、定例会議が終わった1時間後とかにスクリプト動かすようにしています。
以上。
効果とまとめ
- さまざまな定例の後にわざわざファイルを移動させる必要なし!!なまら楽ちん!!
- ただし定例がずれたら翌週のスクリプト動くまでまってねw(そんなこまらない
インターネットの活用で会議のあり方が大きく変わったと思います。
それに伴って、議事録のシェアなどなかなか大変ですが、MeetとApps Scriptを使えば、意外と手軽に“ちょうどいい公開”ができるので、同じような悩みを抱える方の参考になれば幸いです!