こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

【2】同一スプレッドシート内で複数GASを使用

以前、「同一スプレッドシート内で、複数GASを使用したい」のタイトルで投稿し、回答を頂きました。
https://okwave.jp/qa/q9537222.html

それを参考に、

●シート名を取得
function sheetname() {
return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
}

●必ず一番左のタブを開く(https://kitaney-google.blogspot.com/2015/11/google-url.html
function sample_activate_first_sheet_2(){
 SpreadsheetApp.getActiveSpreadsheet().getSheets()[0].activate();
}

の2つのGASを以下のように記述しました

---------------------
sheetname();
sample_activate_first_sheet_2();

function sheetname() {
return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
}

function sample_activate_first_sheet_2(){
 SpreadsheetApp.getActiveSpreadsheet().getSheets()[0].activate();
}
------------------------------------

すると、「必ず一番左のタブを開く」は動作したのですが、
「シート名を取得」がうまく表示されませんでした。

この記述方法ではダメなんでしょうか。
超初心者なので具体的に教えて頂けると嬉しいです。

投稿日時 - 2018-09-23 03:13:30

QNo.9540074

困ってます

質問者が選んだベストアンサー

>ReferenceError: 「alert」が定義されていません。
衝撃の真実…!失礼、とりあえず alert ~の部分を以下のように書き換えてみて再度、実験してみてください。今度は少なくともエラーは出ないはずです(多分…?

Browser.msgBox( my_seet_name );

P.S.
いやはや何ともちょっと油断して先入観というか、ちゃんと検証せずに回答してしまいました。GASの本質はSSSであって、互換JS言語などでは無かったんですね…大変、勉強になりました。

おかげで今まで全くノーチェックだったGASに少し興味が湧いて来ました。優先順位は低いですが、改めて今後の課題として少しずつ知見を高めて行きたいと決意を新たにしました。

完全に "こっちの話" で何の事やらサッパリだと思いますが、まあ気にせず聞き流してくだされば幸いです。貴殿のGASが上手く機能する事を願っております。

投稿日時 - 2018-09-25 19:02:17

お礼

有難うございます!
修正してみたのですが、今度は「msgBox」のエラーが出てしましました。

ところが、ふと、
同じ「プロジェクト内」で別の「スクリプト」ファイルを作って、
「シート名を取得する関数」とは別に
そこに「必ず一番左のタブを開く」を記述してみました。
function sample_activate_first_sheet_2(){
 SpreadsheetApp.getActiveSpreadsheet().getSheets()[0].activate();
}

すると何だかうまく動作しているようです。

いつのまにか、
{
"timeZone": "Asia/Tokyo",
"dependencies": {
},
"exceptionLogging": "STACKDRIVER"
}
と記述された「appsscript.json」というスクリプトファイルができていましたが、
削除しようとしてもできず、必要なファイルが自動でできたようです。

複数のスクリプトを同じファイルに書き込み、
var my_seet_name = sheetname();
sample_activate_first_sheet_2();
Browser.msgBox( my_seet_name );
といった事を記述する手間が省ける仕様なのかもしれませんね。

Googleのスプレッドシートは、学校などでも活用されていると聞いていますし、
機能も少しずつ増えたりしているようです。

機能は制限されますが、スマホからもいじったり共有したりできるので便利です。

もしかすると今後エクセルにとって代わるような存在になっていくかもしれないな、と思っています。

投稿日時 - 2018-09-28 15:54:28

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

var my_seet_name = sheetname();
sample_activate_first_sheet_2();
alert( my_seet_name );

~みたいな感じにすれば上手く行くのでは…?GASには余り詳しくないので自信ないけど。

投稿日時 - 2018-09-23 17:52:58

お礼

有難うございます。

最初の2行を、教えて頂いた3行に書き換えたのですが、
「ReferenceError: 「alert」が定義されていません。(行 3、ファイル「コード」)」
と出てしまいました…

投稿日時 - 2018-09-25 11:00:57

あなたにオススメの質問