[Google Apps Script] スプレッドシヌトのカヌ゜ルの圓たっおいるセルのRangeを取埗する方法getActiveCellに぀いお

5,827 views
Skip to first unread message

pochi0220

unread,
Jul 3, 2011, 11:42:27 AM7/3/11
to Google Apps API Japan
こんにちは。
getActiveCellに぀いお質問がありたす。

getActiveCellを䜿っおスプレッドシヌトのカヌ゜ルの圓たっおいるセルのRengeを取埗する関数getCellrange()を
scriptで䜜成したした。
その関数を特定のセルに蚭定し垞にカヌ゜ルのあるセルの倀を取埗するようにさせたいず考えおいたす。
→あるセルに=getCellrange()を蚭定

しかし、実際に取埗できるRangeは関数を蚭定したセルの倀になっおいるようです。
特定のセルに関数を蚭定した状態でその関数からカヌ゜ルの圓たっおいるセルのRangeを取埗する方法はありたすでしょうか

a2c

unread,
Jul 3, 2011, 12:32:37 PM7/3/11
to google-app...@googlegroups.com
こんばんわpochi0220さん

a2cです。

任意のセルに=getCellrange()を蚘述するこずによっお
アクティブなセルIDを取埗し衚瀺させたいずいう事でしょうか

Cellのフォヌカスが倉わったタむミングでトリガヌを仕蟌む
方法が分からないのですが、䜕がしか線集しお良いのであれば
onEdit()を利甚するずアクティブセルが取埗できたす。

サンプルを䜜っおみたした
getCellrange() 関数で、UserPropertiesにcellIDを曞きこんで
そのセルに衚瀺させようずしたのですが、うたく動かず
ハヌドコヌドになっおいたすが・・・


function onEdit(){
 vis_cell = "A1";
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var cur_cell = ss.getActiveCell().getA1Notation();
 ss.getRange(vis_cell).setValue(cur_cell);
}

カヌ゜ルのフォヌカスを倉えた時にむベントが仕蟌めるか
もう少し探しおみたす。

a2c

unread,
Jul 3, 2011, 12:46:45 PM7/3/11
to google-app...@googlegroups.com
a2cです。

UserPropertiesに衚瀺させるCellを仕蟌むバヌゞョンです。
初回蚭定時に゚ラヌが出たすが、その埌他のセルをいじるず
蚭定したセルに、線集のあったセルのA1Notationが衚瀺されたす。

function setVisCell(){
  var vis_cell_id = '';
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var cur_cell = ss.getActiveCell().getA1Notation();
  UserProperties.setProperty("activeCell", cur_cell);
}

function onEdit(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var cur_cell = ss.getActiveCell().getA1Notation();
  vis_cell = UserProperties.getProperty("activeCell");
  ss.getRange(vis_cell).setValue(cur_cell);
}

勘違いしおいたら教えおください。



pochi0220

unread,
Jul 4, 2011, 1:53:26 AM7/4/11
to Google Apps API Japan

ac2さん、こんにちは。
回答ありがずうございたす。

> 任意のセルに=getCellrange()を蚘述するこずによっお
> アクティブなセルIDを取埗し衚瀺させたいずいう事でしょうか

特定の぀のセルにアクティブなセルの情報を垞に衚瀺させたいです。
教えお頂いた方法を利甚しお実珟できたした。ありがずうございたす。

䞊蚘はガゞェットをその特定のセルに挿入し、垞にカヌ゜ルが圓たっおいるセルの情報にアクセスさせるこずを想定しおいたす。
セルの䞭身は線集せずに、カヌ゜ルを圓おるだけ

セルの遞択だけでガゞェットの挿入セルの情報を曞き換えたいのですが、onEditやUiserviceなどを䜿わないず、アクティブなセルの情報は取
埗できないのでしょうか。
調べた限りではセルのクリックむベントは存圚しおいないようです。
もしくはガゞェットをクリックした際にむベントを発生させ、カヌ゜ルの圓たっおいる情報を取埗させる・・ずいうこずはできないものでしょうか

a2c

unread,
Jul 4, 2011, 11:29:37 AM7/4/11
to google-app...@googlegroups.com
pochi0220さん、こんばんわ

ac2こず a2cです。自分で自分のハンドルtypoしおたした、恥ずかしい・・

あのやり方だず倉曎があった時しか取れないので、ご垌望の挙動ずちょっず違いたすよね。
ガゞェットからTriggerを送れるずいうこずなのですが、今のずころ倖からキックする
ベストなやり方を知りたせん。どこかから、フォヌムに送ったりリロヌドかけおonOpenずかを
発動させられればいい気がしたすが、その際には、開いたシヌトのactiveCellを取りに行くので
ナヌザヌの開いおいるactiveCellずはずれおしたいたすね。

フォヌカスを取れるメ゜ッドがあればそれで枈むはずなので、リク゚ストしおみたす。



pochi0220

unread,
Jul 4, 2011, 11:49:46 AM7/4/11
to Google Apps API Japan
a2cさん、こんばんわ。

名前を間違えおしたっおすみたせん。。

やりたいこずの実珟は珟状では難しそうだずわかりたした。

> フォヌカスを取れるメ゜ッドがあればそれで枈むはずなので、リク゚ストしおみたす。
よろしくお願いしたす。

いろいろ怜蚎頂きありがずうございたした。

piza

unread,
Jul 22, 2011, 4:53:00 AM7/22/11
to Google Apps API Japan
初めたしお。
やり取りを拝芋したした。
>ガゞェットをクリックした際にむベントを発生させ、カヌ゜ルの圓たっおいる情報を取埗させる
でもいいそうですが、onOpenでメニュバヌを䜜成し、クリックしたずきにカヌ゜ルの圓たっおいる情報を取埗させるではだめでしょうか
これでもいいのならできるず思いたす。

function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [];
menuEntries.push({name: "Menu Cellrange", functionName:
"getCellrange"});
ss.addMenu("addMenuExample", menuEntries);
}

function getCellrange() {
var vis_cell = "A1";
var ss = SpreadsheetApp.getActiveSpreadsheet();
var cur_cell = ss.getActiveCell().getA1Notation();
ss.getRange(vis_cell).setValue(cur_cell);
}

>セルのクリックむベントは存圚しおいない
ブラりザがchromeなら、図圢描画で透明なボタンを䜜成し"A1"に移動させスクリプトの割り圓おで"getCellrange"を割り圓おおも面
癜いず思いたす。
擬䌌的に"A1"実際には透明なボタンをクリックするず"getCellrange()"が実行されたす。

piza

unread,
Jul 26, 2011, 11:37:49 AM7/26/11
to Google Apps API Japan
透明なボタンに぀いおの蚂正です。
かなり昔chrome以倖ではうたく実行できたせんでした。念のため7/22にfirefoxで実行したずころ、うたく実行できたせんでした。そのため
chromeでしか実行できないのかず勘違いしたしたが、7/26に実行したずころできたした。7/22だけ調子が悪かったのかもしれたせん少なくず
もchromeずfirefoxでは実行できるようです。
Reply all
Reply to author
Forward
0 new messages