【コピペでできる】GoogleスプレッドシートからToDoリストにワンクリックで登録する方法

Googleカレンダー

Googleカレンダー関連

ご訪問ありがとうございます。

Googleシートマスターのひろしです。

前回

スプレッドシートからGoogleカレンダーに簡単に予定を登録する方法(初心者向け)
  • かんたんにGoogleスプレッドシートからGoogleカレンダーに予定を追加することができます。
  • シートをコピーして何度かクリックするだけで準備完了です。
  • 今回は、とっても価値の高い方法をお伝えします。


    これを知ることであなたは、

    • Googleスプレッドシートにタスクの一覧を記載しボタンをクリックするだけでGoogleカレンダーのToDoリストに複数のタスクを一気に追加することができます。

    逆に、知らないと

    1個や2個のタスクなら問題ありませんが、大量に登録するタスクがある場合、かなりムダな作業を強いられることになります。

    なので、サクッとマスターして

    と答えてあげてください。

    動画はこちら

    Googleスプレッドシート からワンクリックでToDoリストにタスクを追加する方法

    シートはこちら

    *クリックすることでシートが開きます。

     

    実装方法

     

    Stept1.

    以下と同じ手順です。

     

     

    さらに

    Step2.

    スクリプトエディタを開き

    ①「+」をクリックします。
    ②下にスクロールし「Google Tasks API ドキュメント」をクリックします。
    ③「追加」をクリックします。

     

    起動方法

    Step1.

    ①「タスクを追加」ボタンをクリックします。

     

    Step2.

    権限を許可します。

     

    リストの追加が成功すると以下のメッセージが表示されます。

     

     

    スクリプト

    スクリプトを触る必要はありませんが、参考まで。

     

    /**
     * GoogleカレンダーのToDoリストに追加する
     */
    function AddToDoList() {
    
    
      // ToDoリストのidを取得する
      const id = getTasksId() //自分のタスクIDを取得する
    
    
      // 読み取り範囲(表の始まり行と終わり列)
      const topRow = 2
      const lastCol = 4
      const statusCellCol = 1
    
    
      // 予定の一覧バッファ内の列(0始まり)
      const statusNum = 0
      const dayNum = 1
      const titleNum = 2
      const descriptionNum = 3
    
    
      // シートを取得
      const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
    
    
      // 予定の最終行を取得
      let lastRow = sheet.getLastRow()
    
    
      //予定の一覧をバッファに取得
      const contents = sheet.getRange(topRow, 1, sheet.getLastRow(), lastCol).getValues()
    
    
      //順に予定を作成
      for (let i = 0; i <= lastRow - topRow; i++) {
        try {
    
    
          //「済」の場合は無視する
          if (contents[i][statusNum] === "済") {
            continue
          }
    
    
          // 値をセット 日時はフォーマットして保持
          let day = contents[i][dayNum]
          let title = contents[i][titleNum]
          let notes = contents[i][descriptionNum]
    
    
          console.log(day + " " + contents[i][titleNum])
    
    
          const dueStr = Utilities.formatDate(contents[i][dayNum], "Asia/Tokyo", "yyyy-MM-dd")
    
    
          const task = {
            title: title,
            notes: notes,
            due: dueStr + "T00:00:00.000Z"
          };
    
    
          Tasks.Tasks.insert(task, id);
    
    
          //予定が作成されたら「済」にする
          sheet.getRange(topRow + i, statusCellCol).setValue("済")
    
    
          // エラーの場合ログ出力する
        } catch (e) {
          Logger.log(e)
        }
      }
    
    
      // 完了通知
      Browser.msgBox("ToDoリストに追加しました。")
    }
    
    
    
    /**
     * タスクのIDを取得する
     */
    function getTasksId() {
      const myTaskLists = Tasks.Tasklists.list()
      let toDoList = myTaskLists.items[0]
      // const myTaskListID = toDoList.id
     
      return toDoList.id
    }

     

     

    時間の指定

    以下のようにやれば、時間指定できると思ったのですが

    consttask = {
    title: title,
    notes: notes,
    due: dueStr + "T08:30:00.000Z"
          };
    時間指定は無視されてしまいます。

    残念ながら時間の指定はできません。

     

     

     

    最後までご覧いただきありがとうございます。

    つぎはこちら

    Googleカレンダー CSVファイルから複数の予定を一気に入力する方法
    GoogleカレンダーにCSVファイルを使用して、複数の予定を一気に入力できるようになります。

    Googleカレンダー関連

    コメント

    1. 匿名 より:

      日付だけでなく、時間も指定してtodoリストを登録する方法があれば教えていただきたいです。

      • hiroshi より:

        簡単にできると思ったのですが、残念ながらGASからは、時間指定できないようです。

        • 匿名 より:

          わざわざ調べていただいてありがとうございます。
          時間指定に関してはGカレンダー上で編集することにします…!

    2. 高木 より:

      わかりやすくていつも参考にさせていただいてます!

      同じように、スプシからまとめてTODOリストを削除する方法があれば、教えていただきたいです。

    タイトルとURLをコピーしました