質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
86.12%
Google スプレッドシート

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

Google Apps Script

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

JavaScript

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

解決済

GAS spreadsheet の1つのセルに、配列の表記のままの形のデータを入れる

takFF
takFF

総合スコア14

Google スプレッドシート

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

Google Apps Script

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

JavaScript

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

2回答

0グッド

1クリップ

207閲覧

投稿2022/10/11 15:10

編集2022/10/11 15:29

GAS で、spreadsheet の1つのセルに、配列の表記のままの形のデータを入れる
たとえば、["りんご","みかん","なし"] などというデータを、セルの一つに入れたいです。

そのうえで、そのデータをコピーして、RPAの作りかけのフローにペーストして、
そちらのほうにデータを渡したいです。

本来は連続的にできればよいのですが、ちょっとそれがすぐにはわからないので、
とりあえずは、手でコピペする形で作りたいと思います。

以下の内容は、
ある表のある1つのセルを選択した状態で、そのセルの行全体のデータを、合体させた配列にして、その行の末尾のセルに、その配列を入れるという内容です。

function getArray() {
const activeSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); // 現在のSpreadSheetを取得
const activeSheet = activeSpreadSheet.getActiveSheet(); // activeシート

//選択されているアクティブなセルを取得する
let myActiveCell = activeSheet.getActiveCell();

//アクティブなセルからRow:行 とColumn:列 を取得する
let selectedRow = myActiveCell.getRow();
let selectedColumn = myActiveCell.getColumn();

const data = activeSheet.getRange(selectedRow, 1, 1,22).getValues();
console.log(data);
const data1 =data.flat(); 一次元配列に変える
console.log(data1); 
//→ここでは、配列がきちんと配列として表記されている ["りんご","みかん","なし"] という状態

activeSheet.getRange(selectedRow,23).setValue(data1); 
//→ここでは、Sheet上の該当セルは、1つ目のセルの値だけ入っている形になる。すなわち、 りんご とだけ、入っている状態。ここで、
["りんご","みかん","なし"] と表示させたい。それからそれをコピーして、別のところへ持っていきペーストしたい。
}

試したこと

最初は、関数でやろうとした。="["&""","""&A11&""" ,"""&B11&""","""&C11 と続く。 "が大量発生となります。それでもセル上で表記はきちんとしたものができます。しかし、コピペすると、"の数が増えたりして、うまくコピーできない。

ネットで見ると、Jsonファイルを、Spreadsheet から作成し、それをRPA(Uipath)で読み込むというのが、より普通なのかもしれないと思います。これから調べようと思いますが。

何かよい方法なり、基本的知識の欠如なりあれば、お知らせください。

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答2

1

JSON.stringify() を使えば、Array を JSON 文字列にできます。

投稿2022/10/11 16:52

draq

総合スコア2544

takFF👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

takFF

2022/11/11 15:25

ありがとうございます。勉強してみます

1

ベストアンサー

Array.prototype.join() - JavaScript | MDN

JavaScript/GAS

1function getArray() { 2 const activeSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); // 現在のSpreadSheetを取得 3 const activeSheet = activeSpreadSheet.getActiveSheet(); // activeシート 4 5 //選択されているアクティブなセルを取得する 6 let myActiveCell = activeSheet.getActiveCell(); 7 8 //アクティブなセルからRow:行 とColumn:列 を取得する 9 let selectedRow = myActiveCell.getRow(); 10 let selectedColumn = myActiveCell.getColumn(); 11 12 const data = activeSheet.getRange(selectedRow, 1, 1, 5).getValues(); 13 console.log(data); 14 const data1 = data.flat(); 15 console.log(data1); 16 //→ここでは、配列がきちんと配列として表記されている ["りんご","みかん","なし"] という状態 17 18 activeSheet.getRange(selectedRow, 6).setValue('["' + data1.join('","') + '"]'); 19 20}

投稿2022/10/11 16:47

hatena19

総合スコア32005

takFF👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

takFF

2022/10/12 12:39

ありがとうございます。この方法で、見事にセルには表示されました! ただコピペすると、やはりエクセルの時と同じように、表示されている形とは別の形("が、たくさんある)でペーストされてしまいます。やはり、コピペでなく、きちんとファイルか何かで移す必要があるのかもしれません・・
hatena19

2022/10/12 12:53

何をどこにコピペするのですか。 ["りんご","みかん","なし"] となったセルの値をコピペするのですか。当方のサンプルでは問題なくコピペできますが。
takFF

2022/11/11 15:24

メモ帳などにペーストすると、Excel表示のセル内容とは、異なってきます。”が増えたりとか、いろいろ
hatena19

2022/11/12 00:41

スプレッドシートの1セルの値 ["りんご","みかん","なし"] これをコピーしてメモ帳にペースト 問題なく ["りんご","みかん","なし"] とコピーされました。 具体的に、どのような操作をしたのか、正確に説明してもらえますか。 再現できる手順を示してください。

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Google スプレッドシート

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

Google Apps Script

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

JavaScript

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