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

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

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

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

Google Apps Script

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

JavaScript

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

Q&A

解決済

2回答

373閲覧

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

takFF

総合スコア14

Google スプレッドシート

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

Google Apps Script

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

JavaScript

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

0グッド

1クリップ

投稿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)で読み込むというのが、より普通なのかもしれないと思います。これから調べようと思いますが。

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

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

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

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

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

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

guest

回答2

0

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

投稿2022/10/11 16:52

draq

総合スコア2573

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

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

takFF

2022/11/11 15:25

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

0

ベストアンサー

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

総合スコア33715

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

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問