質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google ドライブ

Google ドライブは、Google社が提供するオンラインストレージサービス。オンラインストレージ上に、画像や動画、テキスト、Word/PDFのファイルなどさまざまなファイル保存することができます。また、他のユーザーと共有することも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

0回答

695閲覧

GAS(Google Apps Script)でのスプレッドシート、Googleカレンダーについての質問です。

sun_tree

総合スコア0

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google ドライブ

Google ドライブは、Google社が提供するオンラインストレージサービス。オンラインストレージ上に、画像や動画、テキスト、Word/PDFのファイルなどさまざまなファイル保存することができます。また、他のユーザーと共有することも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2022/07/15 18:42

スプレッドシートで就活のスケジュール管理をしており、自動でGoogleカレンダーに反映されるようにしたいのですが、うまくいきません。プルダウンの「締切」などを選択するとカレンダーに「企業名・締切」と表示されるようにしたいです。
全くの素人なのでお願いします。

スプレッドシートURL
https://docs.google.com/spreadsheets/d/13snGz2ImWDnCLuSLll0Rzp4--ceuuSTlBg76SgquyqY/edit?usp=sharing

コード
/**

  • Googleカレンダーに予定を追加する

*/
function CreateSchedule() {

// googleカレンダーの取得
const calendar = CalendarApp.getDefaultCalendar()

// 読み取り範囲(表の始まり行と終わり列)
const topRow = 2
const lastCol = 78
const statusCellCol = 1 //済の列

// 予定の一覧バッファ内の列(0始まり)
const statusNum = 0 //済の列
const startNum = 2 //開始時刻
const endNum = 3 //終了時刻
const titleNum = 4 //企業名
const locationNum = 5 //締切、結果、実施
const descriptionNum = 6 //説明

//予定の一覧バッファ内の行(0始まり)
const dayNum = 5 //日の行
// シートを取得
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++) {

//「済」の場合は無視する
if (contents[i][statusNum] === "済") {
continue
}

// 値をセット 日時はフォーマットして保持
let day = contents[dayNum][i]
let startTime = contents[1][1]
let endTime = contents[2][1]
let title = contents[i][titleNum]

// 場所と詳細をセット
let options = { location: contents[i][dayNum], description: contents[3][1] }

console.log(day + ""+ contents[i][titleNum])

try {
// 開始終了時刻が無ければ終日で設定
if (startTime == '' || endTime == '') {
//予定を作成
calendar.createAllDayEvent(
title,
day,
options
)

// 開始終了時刻があれば範囲で設定
}
//予定が作成されたら「済」にする
sheet.getRange(topRow + i, statusCellCol).setValue("済")

// エラーの場合ログ出力する
} catch (e) {
Logger.log(e)
}
}

// 完了通知
Browser.msgBox("予定を追加しました。")
}

参考サイト
https://technical.verybestcbp.com/registfromsheetx/

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YAmaGNZ

2022/07/15 23:26

「うまくいきません」とはどうなるのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問