0

特定のセルがクリックされたときにスプレッドシート内のセルの色を変更する Google スプレッドシートの関数が必要です。定義済みの 4 つの色を循環する必要があります。

モバイル デバイス、または少なくとも iPad からもこの機能が必要です。

4

2 に答える 2

1

スプレッドシートの値を反映する UI アプリを使用した例を次に示します。グリッドとウィジェットにはデフォルトのサイズがあります。基になるデータは、想定される値 0 ~ 3 です。たとえば、スプレッドシートは更新されません。実際の実装では、同時更新が必要な場合はロックを使用する必要があります。これは、iPad で期待どおりに動作します。

function doGet() {
    var colours = ["white","green","blue","red"];  // background colour names referenced by offset 0,1,2,3
    var app = UiApp.createApplication();
    var grid = app.createFlexTable();  // the grid for ui
    var ss=SpreadsheetApp.openById('your spreadsheet id here')      ;  // your spreadsheet
    var data = ss.getSheets()[0].getDataRange().getValues();  // all the data on sheet 0  (valid values correspond to colour offset)
    var handler = app.createServerHandler('myClickHandler');  
    // fill the grid with text widgets, all using same clickhandler, set colour according to current data value of cell, Tag carries value to server handler
    for (i=0;i<data.length;i++){
      for (j=0;j<data[i].length;j++){
        var widget = app.createTextBox().setText(data[i][j]).addClickHandler(handler).setId("CellR"+i+"C"+j).setTag(data[i][j]).setStyleAttribute("background-color", colours[data[i][j]]);
        grid.setWidget(i, j, widget);
      }
    }
    app.add(grid);
    return app;
    // need to update the spreadsheet to match tag values before closing app!
    }

  function myClickHandler(e) {
    var colours = ["white","green","blue","red"];
    var app = UiApp.getActiveApplication();
    var colourvalue = parseInt(e.parameter[e.parameter.source+"_tag"] )+ 1; // gets the current tag value of clicked widget and increments it
    if (colourvalue > 3) {
      colourvalue = 0;   // reset at 4
    };
    // update the widget
    app.getElementById(e.parameter.source).setStyleAttribute("background-color", colours[colourvalue]).setText(colourvalue).setTag(colourvalue);
    return app;
  }
于 2013-01-13T20:49:40.170 に答える
1

データ検証を使用してドロップダウン リストを作成し、そのリストからの入力のみを許可します。次に、条件付き書式を使用して、4 つのメニュー項目のそれぞれがセルの背景色を変更するようにします。

スプレッドシートに移動し、目的のセルが選択されていることを確認します。メニュー バーで、[日付] > [検証] に移動します。基準を「リストの項目」に変更します。リスト項目「赤、緑、青、オレンジ」を入力します。「ドロップダウンメニューにアイテムのリストを表示する」にチェックを入れます。「無効なデータを許可するが、警告を表示する」のチェックを外します。変更を保存し、セルを選択したまま、メニューバーの [書式] > [条件付き書式] に移動します。このようなテキストを含む基準を使用します...「テキストを含む」「{ここに入力します。赤としましょう}」次に、背景の横にチェックマークを付け、最後のボックスでセルに適用する色を選択します(この場合は赤) に変更します。この条件付き書式にさらに行を追加できます (つまり、この最後の部分を緑、青、オレンジについてもう一度行います)。

于 2013-01-01T23:43:38.710 に答える