2012年7月11日水曜日

シートを選択(アクティブに)する

スプレッドシートの特定のシートを選択する、すなわち、アクティブにするには、SpreadsheetApp
クラスの setActiveSheet メソッドを用いる。
  
  
【構文】
SpreadsheetApp.setActiveSheet(sheet)
  
sheet : Sheet 型。選択したいシートオブジェクトを指定する。
  
  
シート1~5をもつアクティブなスプレッドシートについて、シート1をアクティブな状態からシート3
を選択するコードを以下に記す。
  
  
【例1】
function SetActiveSheet1() {
  var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var objSheet = objSpreadsheet.getSheetByName("シート3");
  SpreadsheetApp.setActiveSheet(objSheet);
  Browser.msgBox(objSheet.getName() + "へ移動しました。"); 
}
  
  
上記コードを実行すると、シート3がアクティブになった後、
  
「シート3へ移動しました。」
  
とメッセージが表示される。
因みに、アクティブでないスプレッドシートのシートを選択するようにコードを書き換えてみたが、
処理が正常に実行されなかった。アクティブなスプレッドシートのシートにのみ有効なメソッド
なのかも知れない(要確認)。
  
  
スプレッドシート内の特定のシートをアクティブにするもうひとつの方法として、Spreadsheet
クラスの setActiveSheet メソッドを用いるやり方がある。個人的には、こちらの方が正統な
気がする。
  
  
【構文】
SpreadsheetObject.setActiveSheet(sheet)
  
sheet : Sheet 型。選択したいシートオブジェクトを指定する。
  
  
上の例と同様、シート3をアクティブにする例をいかに記す。
  
  
【例2】
function SetActiveSheet2() {
  var objSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var objSheet = objSpreadsheet.getSheetByName("シート3");
  objSpreadsheet.setActiveSheet(objSheet);
  Browser.msgBox(objSheet.getName() + "へ移動しました。"); 
}
  
  
こちらのやり方でも、アクティブスプレッドシートでないものに対しては、エラーになってしまう。

0 件のコメント:

コメントを投稿