Google Spreadsheet API

理由あって Google Spreadsheet でカレンダー的ななにかを作ることになった。最近すぐに忘れてしまうので、1行日記的なものをごにょごにょしたわけだ。

Excel や OOo などのスプレッドシートでは曜日ごとに色分けするのは簡単だ。Google でも「条件に応じて変更」なる機能があり、セルの色を変えることができるのだが、哀しいかなその条件に関数が使えない。

たかが30日程度のことだ、手作業で色を変えてもいいのだが、スマートじゃない。そこで初めてのスクリプトを書いてみることにした。

困ったことにスクリプト内からweekday()関数を呼び出す方法がわからない。よく考えたら、日付というのは基準日からの通算であり、Google では 1899/12/31 が第1日目となっているようだ。ということは単純に 7 で割り、その余りが曜日になるはずだ。

ということでソース。

function WeekdayColor() { var range = SpreadsheetApp.getActiveRange(); var cols = range.getNumColumns(); var rows = range.getNumRows(); for (var i = 1; i <= rows; i++) { for (var j = 1; j <= cols; j++) { var cell = range.getCell(i, j); var w = cell.getValue(); // weekday()が使えないので日付を7で割る if ((w % 7) == 0) { cell.setFontColor("#F00"); } else if ((w % 7) == 6) { cell.setFontColor("#0F0"); } } } }

色指定したい範囲を選択して、「ツール」→「スクリプト」→「管理」から「WeekdayColor」を実行するだけだ。なお、祝日は手作業で色変えしている。

投稿者:

azira

何でもやったけれど、みんな中途半端なプログラマくずれの一匹うさぎ。

“Google Spreadsheet API” への1件のフィードバック

  1. 丁度必要としていたので、大変助かりました。
    ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>