🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

1021閲覧

グーグルスプレッドシートでの独自関数での改行について

T.T.

総合スコア14

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

2クリップ

投稿2019/11/21 14:45

googleスプレッドシートについてのご質問です。

GASで
myFunction1を設定するとセル内で改行するのですが、myFunction2(関数)では改行しないのはなぜですか?

function myFunction1() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sh = ss.getActiveSheet(); sh.getRange(1, 1).setValue("1行目\n2行目"); } function myFunction2(a) { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sh = ss.getActiveSheet(); var r = sh.getRange("A17"); //A17セルに「1行目\n2行目」と入力しています。 var v = r.getValue(); a = r; return r; }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

a = r; の部分はいらないですね
最後をreturn v;に変えたらいいと思われます

投稿2019/11/22 03:41

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takaD

2019/11/22 03:53

質問者ではありませんが、横から失礼します。 たしかにそこのコードはreturn r; つまり、sh.getRange("A17")を返していて、間違っているのですが、 かといって、r.getValue()の情報をreturnしても、改行にはなりませんでした。
退会済みユーザー

退会済みユーザー

2019/11/22 07:05 編集

takaDさん function myFunction2(a) の中の a も消したら改行されました 追記: その後、a有りの状態でもう一度実行したら改行はされました。
takaD

2019/11/22 07:53 編集

hachi_さん返答ありがとうございます。 確認したら自分のテスト環境でもできました。 myFunction2(a)のaがあるだけで変わるとは知らなかったです。 勉強になりました。ありがとうございます。
退会済みユーザー

退会済みユーザー

2019/11/22 07:51

私はmyFunction2()の方しかやっておりませんが、内容は上と全く同じです。 もしかしてGAS側の設定としてスプレッドシートにアクセスを許可していないのではないでしょうか?
takaD

2019/11/22 07:56 編集

編集で↑の文けしてしまいました・・・ 自分のテスト環境でいろいろやってるうちに、 function myFunction2(a) { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sh = ss.getActiveSheet(); var r = sh.getRange("A2"); //A17セルに「1行目\n2行目」と入力しています。 var v = r.getValue(); return v; } この中のaを消して実行してたのが原因でした・・・ しっかり改行されて表示されました。 ありがとうございます。
退会済みユーザー

退会済みユーザー

2019/11/22 07:58

aだけでは基本変わらないと思います…(var aと同じなため) ただ使わないものはバグの元なのでできるだけ無い方がいいです
takaD

2019/11/22 08:01

と思ったらいろいろ勘違いして結果的にまだ改行されませんでした・・・。 もうちょっと検証してみます・・・
退会済みユーザー

退会済みユーザー

2019/11/22 08:05

・A2の文字に改行が含まれているか(上のコードではA2になっている) ・どのセルに「=myFunction2()」を入力しているか(A2以外なら大丈夫) あたりでは無いでしょうか。
T.T.

2019/11/23 03:01

質問者です。aを削除したのですがやはりやりたいことは実現しませんでした。
退会済みユーザー

退会済みユーザー

2019/11/26 02:52 編集

返信遅くなってすみません。 私の予想ですが、承認をなされていない可能性が高いです。 https://tonari-it.com/gas-script-approval/#toc4 myfunction1()が実行されるのなら承認はされていますね… 一番初めの「return v」はお試しになられましたか? 変更後、セルに反映させるためには一度セル内をコピー > セル内の数式を削除 > ペーストする必要が有ります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問