【GAS】Gメールのラベル機能まとめ【サンプルソース付】

快速ワーク
スポンサーリンク

GAS開発者向けにGメールのラベル機能をすべてまとめました。

大量のメールをラベルで整理できれば確実に効率が上がります。

メールにラベルを設定したり、特定ラベルのスレッドを調べたりもできます。

ラベルに関するメソッドをすべて載せてます。少しでも参考になれば幸いです。


GメールAPPクラス[GmailApp]のラベル作成・削除

Gメールのラベル作成・削除メソッドです。

ラベル作成[createLabel(ラベル名)]

createLabel(name)
指定された名前の新しいユーザーラベルを作成します。

function createLabelSample() {
  // ラベル@FOOを作成し、ラベルを記録します:FOO
  Logger.log("label: " + GmailApp.createLabel("FOO"));
}
Parameters
名前タイプ説明
nameString新しいラベルの名前。

Return
GmailLabel - 新しく作成されたラベル。

参照:Google Apps Script | REFERENCE | Gmail | Class GmailApp | Methods | createLabel(name)

ラベル削除[deleteLabel(指定ラベル)]

deleteLabel(label)
指定されたラベルを削除します。

function deleteLabelSample() {
  // 最初に名前でラベルを取得する必要があります
  var label = GmailApp.getUserLabelByName("FOO");
  GmailApp.deleteLabel(label);
}
Parameters
名前タイプ説明
labelGmailLabel削除するラベル。

Return
GmailApp - 連鎖用のGmailサービス。

参照:Google Apps Script | REFERENCE | Gmail | Class GmailApp | Methods | deleteLabel(label)

GメールAPPクラス[GmailApp]のラベル取得

Gメールのラベル取得メソッドです。

ラベル取得[getUserLabelByName(ラベル名)]

getUserLabelByName(name)
ラベル名を指定してラベルを取得します。

function getUserLabelByNameSample() {
  var labelObject = GmailApp.getUserLabelByName("myLabel");
}
Parameters
名前タイプ説明
nameString取得するラベルの名前。

Return
GmailLabel - 指定された名前のGmailラベル。

参照:Google Apps Script | REFERENCE | Gmail | Class GmailApp | Methods | getUserLabelByName(name)

ラベル配列取得[getUserLabels()]

getUserLabels()
ユーザーが作成したラベルのリストを取得します。

function getUserLabelsSample() {
  // ラベルのすべての名前を記録します
  var labels = GmailApp.getUserLabels();
  for (var i = 0; i < labels.length; i++) {
    Logger.log("label: " + labels[i].getName());
  }
}

Return
GmailLabel[] - ユーザーが作成したラベルの配列。

参照:Google Apps Script | REFERENCE | Gmail | Class GmailApp | Methods | getUserLabels()

Gメールラベルクラス[GmailLabel]

ユーザーのGmailアカウントにユーザーが作成したラベル。

参照:Google Apps Script | REFERENCE | Gmail | Class GmailLabel

Methods
方法タイプ説明
addToThread(thread)GmailLabelこのラベルを特定のスレッドに追加し、スレッドを強制的に更新します(GmailThread.refresh())。
addToThreads(threads)GmailLabelこのラベルを特定のスレッドに追加し、スレッドを強制的に更新します。
deleteLabel()voidこのラベルを削除します。
getName()Stringこのラベルの名前を取得します。
getThreads()GmailThread[]このラベルでマークされたスレッドを取得します。
getThreads(start, max)GmailThread[]このラベルでマークされたスレッドの範囲を取得します。
getUnreadCount()Integerこのラベルでタグ付けされた未読スレッドの数を取得します。
removeFromThread(thread)GmailLabel指定されたスレッドからこのラベルを削除し、スレッドを強制的に更新します。
removeFromThreads(threads)GmailLabel指定されたスレッドからこのラベルを削除し、スレッドを強制的に更新します。

ラベルの特定スレッド追加[addToThread(スレッド)]

addToThread(thread)
このラベルを特定のスレッドに追加し、スレッドを強制的に更新します(GmailThread.refresh())。

function addToThreadSample() {
  // 受信トレイの最初のスレッドにMyLabelというラベルを付けます
  var label = GmailApp.getUserLabelByName("MyLabel");
  var firstThread = GmailApp.getInboxThreads(0,1)[0];
  label.addToThread(firstThread);
}
Parameters
名前タイプ説明
threadGmailThreadラベルを付けるスレッド。

Return
GmailLabel - 連鎖用のラベル。

ラベルの特定スレッド配列追加[addToThreads(スレッド's)]

addToThreads(threads)
このラベルを特定のスレッドに追加し、スレッドを強制的に更新します。

function addToThreadsSample() {
  // 受信トレイの最初の3つのスレッドにMyLabelというラベルを付けます
  var label = GmailApp.getUserLabelByName("MyLabel");
  var threads = GmailApp.getInboxThreads(0,3);
  label.addToThreads(threads);
}
Parameters
名前タイプ説明
threadsGmailThread[]ラベル付けされるスレッドの配列。

Return
GmailLabel - 連鎖用のラベル。

ラベル削除[deleteLabel()]

deleteLabel()
このラベルを削除します。

function deleteLabelSample() {
  var label = GmailApp.getUserLabelByName("MyLabel");
  label.deleteLabel();
}

Throws
Error - ラベルを削除できない場合。

ラベル名取得[getName()]

getName()
このラベルの名前を取得します。

function getNameSample() {
  var label = GmailApp.getUserLabelByName("MyLabel");
  Logger.log(label.getName()); // MyLabelを記録します
}

Return
String - ラベルの名前。

ラベルのスレッド取得[getThreads()]

getThreads()
このラベルでマークされたスレッドを取得します。

すべてのスレッドのサイズが大きすぎてシステムが処理できない場合、この呼び出しは失敗します。スレッドサイズが不明で、潜在的に非常に大きい場合は、getThreads(start, max)を使用して、各呼び出しで取得するスレッドの範囲を指定してください。

function getThreadsSample() {
  // MyLabelでラベル付けされたスレッドの件名行を記録します
  var label = GmailApp.getUserLabelByName("MyLabel");
  var threads = label.getThreads();
  for (var i = 0; i < threads.length; i++) {
    Logger.log(threads[i].getFirstMessageSubject());
  }
}

Return
GmailThread[] - このラベルでマークされたスレッドの配列。

ラベルのスレッド範囲取得[getThreads(開始, 最大)]

getThreads(start, max)
このラベルでマークされたスレッドの範囲を取得します。

function getThreadsSample() {
  // MyLabelというラベルで最初の30スレッドまでの件名行を記録します
  var label = GmailApp.getUserLabelByName("MyLabel");
  var threads = label.getThreads(0, 30);
  for (var i = 0; i < threads.length; i++) {
    Logger.log(threads[i].getFirstMessageSubject());
  }
}
Parameters
名前タイプ説明
startInteger開始スレッドのインデックス。
maxInteger返すスレッドの最大数。

Return
GmailThread[] - このラベルでマークされたスレッドの配列。

ラベルの未読スレッド数取得[getUnreadCount()]

getUnreadCount()
このラベルでタグ付けされた未読スレッドの数を取得します。

function getUnreadCountSample() {
  // MyLabelでラベル付けされた未読スレッドの数を記録します
  var label = GmailApp.getUserLabelByName("MyLabel");
  Logger.log(label.getUnreadCount());
}

Return
Integer - 未読のラベル付きスレッドの数。

指定スレッドからラベル削除[removeFromThread(スレッド)]

removeFromThread(thread)
指定されたスレッドからこのラベルを削除し、スレッドを強制的に更新します。

function removeFromThreadSample() {
  // 受信トレイの最初のスレッドからラベルMyLabelを削除します
  var label = GmailApp.getUserLabelByName("MyLabel");
  var firstThread = GmailApp.getInboxThreads(0,1)[0];
  label.removeFromThread(firstThread);
}
Parameters
名前タイプ説明
threadGmailThreadスレッドはラベル付けされていません。

Return
GmailLabel - 連鎖用のラベル。

指定配列スレッドからラベル削除[removeFromThreads(スレッド's)]

removeFromThreads(threads)
指定されたスレッドからこのラベルを削除し、スレッドを強制的に更新します。

function removeFromThreadsSample() {
  // 受信トレイの最初の3つのスレッドからMyLabelラベルを削除します
  var label = GmailApp.getUserLabelByName("MyLabel");
  var threads = GmailApp.getInboxThreads(0,3);
  label.removeFromThreads(threads);
}
Parameters
名前タイプ説明
threadsGmailThread[]ラベル付けされないスレッドの配列。

Return
GmailLabel - 連鎖用のラベル。

最後に

Gメールのラベル機能のまとめをご紹介させていただきました.

スプレッドシートと組み合わせるとさらに効果的です。

必要に応じて、有益な情報でさらに更新していきたいと思います。

プログラミングスキルを向上させるためには、本を読むだけでは脳にインプットされませんね。

実際に手を動かしてアウトプットしまくるのが一番の近道だと思います。

実際にサンプルソースをコピーして実行した結果がどうなるかを体験してみてください。

自分なりのアレンジを加えたり、なぜエラーになるのかを考え、何度も試行錯誤して問題を解決しまくり、着実に理解しながらスキルを向上させていきましょう。

GASはExcelVBAとはかなり違いますが、ベースとなっているJavaScriptは覚えて損はないプログラミング言語なのでショートカットキーなどと組み合わせてぜひ活用してみてください。

Googleスプレッドシート全ショートカットキー一覧はこちら↓↓↓

Googleスプレッドシートの使い方や機能がわかるショートカットキー全まとめ一覧【初心者こそ必見】
表計算ソフトとして、まだまだExcelのシェア率は高いですが、GoogleスプレッドシートにはExcelにはない超強力な関数があったり、Excelとは違って常に最新版を無料で使用できます。なにより、インターネットを使ったオンライン...

ショートカットキー一覧にもGASメソッドを載せています。どの操作からどのメソッドが呼ばれるのかイメージしてください。




快速ワーク
スポンサーリンク
スポンサーリンク
快 ブログ

コメント