ラベル スプレッドシート操作 の投稿を表示しています。 すべての投稿を表示
ラベル スプレッドシート操作 の投稿を表示しています。 すべての投稿を表示

2012年7月10日火曜日

スプレッドシート内のシート数を取得する

スプレッドシートに含まれるシート数を取得する為には、Spreadsheet クラスの getNumSheets
メソッドを使用する。
  
  
【構文】
SpreadsheetObject.getNumSheets()
  
戻り値 : int 型。シート数。
  
  
【例】
function GetNumberOfSheets() {
  var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  Browser.msgBox(objSpreadsheet.getNumSheets());
}

スプレッドシートの全ての閲覧者を取得する

スプレッドシートに設定された閲覧者を解除するには、Spreadsheet クラスの getViewers
メソッドを用いる。
 
  
【構文】
SpreadsheetObject.getViewers()
  
戻り値 : User 型の配列。スプレッドシートを閲覧可能な User オブジェクトを返す。
 
  
getViewers メソッドは閲覧可能な全ての User オブジェクトの配列を返す為、所有者や
共同編集者も閲覧者の配列に含まれることになる。
今、仮に、
 
所有者 : fumufumu@gmail.com
共同編集者 : oyaoya@gmail.com
閲覧者 : hogehoge@gmail.com、oraora@gmail.com
 
として、以下のサンプルコードを実行したとする :
 
 
【例】
function ViewersList() {
var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var users = objSpreadsheet.getViewers();
var intMaxIndex = users.length;
for (intIndex = 0; intIndex < intMaxIndex; intIndex++) {
Logger.log(users[intIndex].getEmail());
}
}
 
 
上記コードを実行すると、ログには、
  
oyaoya@gmail.com
hogehoge@gmail.com
oraora@gmail.com
fumufumu@gmail.com
 
所有者、共同編集者、閲覧者の全ユーザーが表示される。

2012年7月9日月曜日

スプレッドシートの閲覧者を解除する

スプレッドシートに設定された閲覧者を解除するには、Spreadsheet クラスの removeViewer
メソッドを用いる。
 
 
【構文】
SpreadsheetObject.removeViewer(email) 
email : String 型。解除する閲覧者の e-mail アドレスを指定する。
戻り値 : なし
  
  
『スプレッドシートの閲覧者を追加する』の項の例題で設定された閲覧者のうち、
 
oraora@gmail.com
 
のみを閲覧者から解除するサンプルコードを以下に記す :
【例】
function RemoveViewerFromSpreadsheet() {
var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
 
  objSpreadsheet.removeViewer("oraora@gmail.com");
}
 
 
上記処理の結果、共有設定画面を見ると下図の通り、閲覧者が一つ解除されて
いるのがわかる :











スプレッドシートの閲覧者を追加する

スプレッドシートに対して閲覧者を設定するには、Spreadsheet クラスの addViewer メソッド
を用いる。
  
  
【構文】 
SpreadsheetObject.addViewer(email) 
email : String 型。追加する閲覧者の e-mail アドレスを指定する。
戻り値 : なし
  
  
アクティブスプレッドシートに対して閲覧者を設定するサンプルコードを以下に記す。
  
  
【例】
function AddViewerToSpreadsheet() {
var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
 
  objSpreadsheet.addViewer("hogehoge@gmail.com")
  objSpreadsheet.addViewer("oraora@gmail.com");
}
  
  
上記処理の結果、アクティブスプレッドシートの共有設定画面を見ると、下図の通り閲覧者
が設定された :
  










2012年7月7日土曜日

スプレッドシートの共同編集者を解除する

スプレッドシートの共同編集者を解除するには、Spreadsheet クラスの removeddEditor
メソッドを用いる。
【構文】
SpreadsheetObject.removeEditor(email)
email : String 型。解除する共同編集者の e-mail アドレスを指定する。
戻り値 : なし
下記サンプルコードで使用するスプレッドシートは、『既存のスプレッドシートを取得する』の
と同様のものを使用する。


【例】
function RemoveEditorFromSpreadsheet() {
 var objSpreadsheet = SpreadsheetApp.openById("abcdEFGHijklmnopQrstUvwXYz");
 objSpreadsheet.removeEditor("hogehoge@gmail.com");
}

スプレッドシートの共同編集者を追加する

スプレッドシートに対して共同編集者を設定するには、Spreadsheet クラスの addEditor
メソッドを用いる。
【構文】
SpreadsheetObject.addEditor(email)
email : String 型。追加する共同編集者の e-mail アドレスを指定する。
戻り値 : なし
下記サンプルコードで使用するスプレッドシートは、『既存のスプレッドシートを取得する』の
と同様のものを使用する。
【例】
function AddEditorToSpreadsheet() {
 var objSpreadsheet = SpreadsheetApp.openById("abcdEFGHijklmnopQrstUvwXYz");
 objSpreadsheet.addEditor("
hogehoge@gmail.com ");
}

スプレッドシートの「所有者」を取得する

スプレッドシートの所有者を取得するには Spreadsheet クラスの getOwner メソッドを用いる。
  
  
【構文】
SpreadsheetObject.getOwner()
  
戻り値 : User 型。対象のスプレッドシートの所有者のユーザー情報を返す。
  
  
今、hogehoge@gmail.com がスプレッドシートを作成し、共同編集者として oraora@gmail.com
を設定したとする。このスプレッドシートの ID が
  
abcdEFGHijklmnopQrstUvwXYz

であったとして、ユーザー oraora@gmail.com が下記サンプルコードを実行したとしよう。


【例】
function GetOwner() {
var objSpreadsheet = SpreadsheetApp.openById("abcdEFGHijklmnopQrstUvwXYz");
Browser.msgBox("所有者 : " + objSpreadsheet.getOwner().getEmail());
}


上記コードを実行すると、メッセージボックスには

「所有者 : hogehoge@gmail.com」

と表示される。

2012年7月6日金曜日

スプレッドシートのIDとURLに関する不可解なこと

スプレッドシートの ID と URL に関する不可解なことについて。
  
今、URL の key= の値が
  
0AgnaXTOGCDURdEdhZk8zWHo5bWlNUGpqUlR1bDQxZGc
  
である『新規スプレッドシートという名前のスプレッドシートについて、getId メソッドを用いて
ID を取得すると、下記の値が得られた :
  
tGafO3Xz9miMPjjRTul41dg
  
また、getUrl メソッドで URL を取得すると、下記の文字列が得られる :
  
https://docs.google.com/spreadsheet/ccc?key=tGafO3Xz9miMPjjRTul41dg
  
getId メソッドで取得した ID も、getUrl で取得した URL も、明らかに最初の値と矛盾する。
そこで、別のスプレッドシートから下記コードを実行してみる :
  
  
function GetIdAndUrl() {
  var objSpreadsheet = SpreadsheetApp.openById("tGafO3Xz9miMPjjRTul41dg");
  Browser.msgBox("NAME : " + objSpreadsheet.getName());
  Browser.msgBox("ID : " + objSpreadsheet.getId());
  Browser.msgBox("URL : " + objSpreadsheet.getUrl());
}
  
  
すると、ID と URL は上の値と同じだが、スプレッドシートの名前は確かに『新規スプレッド
シート』となった。つまり、新規スプレッドシート』という、ひとつのスプレッドシートに対して
ID と URL が複数存在する場合があり得る、ということである。 ID には、正式な ID と、短縮
ID のようなものがある、ということなのだろうか?

スプレッドシートのURLを取得する

スプレッドシートの URL を取得するには SpreadsheetApp クラスの getUrl メソッドを用いる
  
  
【構文】

SpreadsheetObject.getUrl()
  
戻り値 : String 型。スプレッドシートの URL の文字列を返す。
  
  
『既存スプレッドシート (オブジェクト) を取得する』の項でも述べた通り、スプレッドシートの
ID は URL の 
  
key=xxxxxxx
  
の部分に指定された値になる訳だが、getUrl メソッドによりその URL を取得することが
できる。以下は、アクティブスプレッドシートの URL を取得するサンプルコードである。
  
  
【例】
function GetMyUrl() {
  var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  Browser.msgBox("ID : " + objSpreadsheet.getUrl());
}

スプレッドシートのIDを取得する

スプレッドシートの ID を取得する為には Spreadsheet クラスの getId メソッドを用いる。
  
  
【構文1】
SpreadsheetObject.getId()
  
戻り値 : String 型。スプレッドシートの「ID」の文字列を返す。
  
  
以下の例は、取得したアクティブ・スプレッドシートの ID を取得するサンプルコードで
ある。
  
  
【例1】
function GetMyId() {
  var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  Browser.msgBox("ID : " + objSpreadsheet.getId());
}

アクティブスプレッドシートを取得する

アクティブになっているスプレッドシートオブジェクトを取得する為には SpreadsheetApp
クラスの getActiveSpreadsheet メソッドを用いる。
  
  
【構文】
SpreadsheetApp.getActiveSpreadsheet()
  
戻り値 : Spreadsheet 型。
  
  
【例】
function GetActiveSpreadsheet() {
  var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  Browser.msgBox(objSpreadsheet.getName());
}

スプレッドシートの名前を変更する

スプレッドシートの名前の取得について述べたので、それに関連して、スプレッドシートの名前の
変更方法について記す。
スプレッドシートの名前を変更するには、Spreadsheet クラスの rename メソッドを用いる。
【構文】
SpreadsheetObject.rename(newname) 
  
newname : String 型。スプレッドシートの新しい名前を指定する。
戻り値 : なし
  
  
下記のサンプルコードで使用するスプレッドシートは、『既存のスプレッドシートを取得する』の
項と同じものを使用する。


【例】
function RenameSpreadsheet() {
 var objSpreadsheet = SpreadsheetApp.openById("abcdEFGHijklmnopQrstUvwXYz");
 Browser.msgBox("スプレッドシート名 : " + objSpreadsheet.getName());
 objSpreadsheet.rename("サンプルスプレッドシートその1");
 Browser.msgBox("新しいスプレッドシート名 : " + objSpreadsheet.getName());
}

スプレッドシートの名前を取得する

『既存スプレッドシート (オブジェクト) を取得する』の項の例題で既に書いてしまっている
が、スプレッドシートの名前を取得するには Spreadsheet クラスの getName メソッドを
用いる。
  
  
【構文】
SpreadsheetObject.getName()

戻り値 : String 型。スプレッドシートの名前を戻り値として返す。

既存スプレッドシート (オブジェクト) を取得する

既存のスプレッドシートオブジェクトを取得するには、SpreadsheetApp クラスの openById
メソッドを用いる。
【構文】
SpreadsheetApp.openById(id)
id : String 型。スプレッドシートのURLの key= 以降の部分の文字列を指定する。
戻り値 : Spreadsheet 型
 
 
スプレッドシートのURLが

 https://docs.google.com/spreadsheet/ccc?key=abcdEFGHijklmnopQrstUvwXYz&hl=ja#gid=0
  
であった場合の例を以下に記す。


【例】
function GetSpreadsheet() {
 var objSpreadsheet = SpreadsheetApp.openById("abcdEFGHijklmnopQrstUvwXYz");
 Browser.msgBox("スプレッドシート名 : " + objSpreadsheet.getName());
}

 

openById メソッドを用いて既存のスプレッドシートオブジェクトを取得しただけでは、見た目上、
何も起きない。但し、例題のようにスプレッドシートの名前を取得したり、シートの値を取得した
り、共同編集者の設定を行ったり、等の処理を実行する為には、先ず最初にスプレッドシート
オブジェクトを取得するところから始まるので、とても大事。

新規スプレッドシートを作成する

新たにスプレッドシートを作成するには、SpreadsheetApp クラスの create メソッドを使用する。
【構文】SpreadsheetApp.create(name)

name : String 型。新たに作成するスプレッドシートの名前を指定する。
戻り値 : Spreadsheet 型


【例】
function CreateSpreadsheet() {
 var objSpreadsheet = SpreadsheetApp.create("新しいスプレッドシート");
 Browser.msgBox("スプレッドシート名 : " + objSpreadsheet.getName());
}