0

私が行った調査によると、デフォルトで日付ピッカーを Google スプレッドシートの空のセルに入力する方法はないようです。日付ピッカーがポップアップするためには、セルにすでに日付が含まれている必要があります。スクリプトに関しては、私は非常に環境に配慮しています。ほとんどの用語を理解していますが、どこから作成を開始すればよいかわかりません。誰か助けてくれませんか?特定の列のすべてのセルに日付ピッカーを入力したいと思います。

4

2 に答える 2

1

WebApps の Google スプレッドシートに日付ピッカーを追加することを指摘するつもりでしたが、見つかりました。

ご指摘のとおり、日付ピッカーは、セルに有効な日付がある場合にのみ表示されます。また、datepicker ウィジェットをプログラムで制御することもできません。

この関数は、任意の範囲内のすべてのセルを同じデフォルト値で埋めます。その値は、スプレッドシートでサポートされている任意のタイプにすることができます。

/**
 * Fill a range with a default value.
 *
 * @param {Range} rangeFill A spreadsheet range to be filled
 * @param {Object} value The default value to fill the range with
 */
function rangeDefault( rangeFill, value ) {
  // Fill a two-dimensional array with default values
  var defaults = [[]];
  // Dimension the array to match the input range
  var height = rangeFill.getLastRow() - rangeFill.getRow() + 1;
  var width = rangeFill.getLastColumn() - rangeFill.getColumn() + 1;
  for (var row=0; row < height; row++ ) {
    defaults[row]=[];
    for (var col=0; col < width; col++ ) {
      defaults[row][col] = value;
    }
  }
  // Fill the range with the array contents.
  rangeFill.setValues(defaults);
}

スプレッドシートで使いやすくするために、ここにメニュー機能があります。塗りつぶしたい範囲を選択し、「カスタムメニュー」から「日付入力」を選択するだけで、選択範囲が今日の日付で塗りつぶされます。

/**
 * Menu function - fill the currently selected range with today's date.
 */
function dateFill() {
  var today = new Date();
  var defaultDate = new Date( today.getFullYear(), today.getMonth()+1, today.getDate() );
  rangeDefault( SpreadsheetApp.getActiveSpreadsheet().getActiveRange(), defaultDate);
}

function onOpen() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var entries = [{
    name : "Date Fill",
    functionName : "dateFill"
  }];
  sheet.addMenu("Custom Menu", entries);
};
于 2013-05-01T17:21:01.267 に答える