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

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

新規登録して質問してみよう
ただいま回答率
85.34%
Google Apps Script

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

Q&A

解決済

1回答

149閲覧

RichTextValueとValueを同じセルに入力したい

net0726

総合スコア8

Google Apps Script

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

0グッド

2クリップ

投稿2024/12/27 05:31

実現したいこと

同じセルにリッチテキストバリューの値と、通常の値を入れたいのですが、
そもそもデータの方が異なるので、合体させることもできませんし困っています。
一つのセルにこの2つの情報を書き込みたいのですが、実現方法はございますでしょうか?

発生している問題・分からないこと

同じセルにリッチテキストバリューの値(value)と、通常の値(data)を一緒に入れたいのですが、
下記の通り書くと、もちろん上書きされてしまいます。
sh2.getRange("j"+last_row3).setRichTextValue(value);
sh2.getRange("j"+last_row3).setValue(data);

該当のソースコード

sh2.getRange("j"+last_row3).setRichTextValue(value); sh2.getRange("j"+last_row3).setValue(data);

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

dataをリッチテキストに変換してもダメでした。

補足

特になし

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

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

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

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

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

YellowGreen

2024/12/27 23:51 編集

> 同じセルにリッチテキストバリューの値と、通常の値を入れたいのですが、 ご希望の動作がよくわかりませんが… 例えば、 AAAAAAAAxxxxxxxxx のようなリッチテキストではないのですね AAAAAAAA:書式ありの部分 xxxxxxxxx:書式なしの部分 このような例だと、元のテキスト aaaaaaaaxxxxxxxx に対して aaaaaaaaの部分を指定して書式を設定するのですが…
net0726

2024/12/28 00:29

説明不足で申し訳ございません。 大前提として 2つのスプレッドシート(AとB)があり、Aの特定セルを、Bの特定セルへ 自動転記するスクリプトを作成しております。 コードの一部は以下の通りになります。 // 転記元(A)の最後の行情報に「行目」を追加 var data4 = last_row1 + "行目"; Logger.log(data4); // //data4に対してリッチテキストバリューを構築してURLリンクをつけれるようにする let value = SpreadsheetApp.newRichTextValue() .setText(data4) .setLinkUrl('https://docs.google.com/spreadsheets/d/XXXXXXXXXXXXXXXXXXXXXXXXXX') .build(); // 転記元(A)からV列の最終行セルのデータを取得 var data6 = sh1.getRange("v"+last_row1).getValue(); Logger.log(data6); // 結果として、一つセルに valueの内容(URLリンク付き) data6の内容 をプロットできればと思っております。 // valueの内容だけを転記先(B)にプロットするのは下記で実現できております。 sh2.getRange("j"+last_row3).setRichTextValue(value);
guest

回答1

0

ベストアンサー

コメントの質問の続きですが、
お伺いしていることをコードでお示しします

コードを見やすくするために回答として記載しています
例えば次のような例がご希望の動作ではありませんか

aaaaaaaaの代わりにシート1の最終行番号 + '行目'
XXXXXXXXの代わりにシート1の最終行のA列のセルの値
これらを文字列のまま結合して
99行目XXXXXXXX
のような文字列にしてから
99行目の部分だけにリンクを付けたリッチテキストを作成して
シート2の最終行+1のB列のセルに記入

JavaScript

1function myFunction() { 2 // 動作確認なので同じスプレッドシートの異なるシートでお試し 3 const ss = SpreadsheetApp.getActiveSpreadsheet(); 4 const sheet1 = ss.getSheetByName('シート1'); 5 const sheet2 = ss.getSheetByName('シート2'); 6 const str = '行目'; 7 const url = 'https://docs.google.com/spreadsheets/d/'; 8 const ssId = ss.getId(); 9 const sheetId = sheet1.getSheetId(); 10 const lastRow1 = sheet1.getLastRow(); 11 const lastRow2 = sheet2.getLastRow() + 1; 12 13 // 文字列の状態のまま結合 14 const data1 = lastRow1 + str; 15 const data2 = sheet1.getRange('A' + lastRow1).getValue(); 16 const data3 = data1 + '\n' + data2; 17 18 // 前半部分にリンクをつける 19 const pos1 = 0; 20 const pos2 = pos1 + data1.length; 21 const linkUrl = url + ssId + '/edit#gid=' + sheetId; 22 const richText = SpreadsheetApp.newRichTextValue() 23 .setText(data3) 24 .setLinkUrl( 25 pos1, 26 pos2, 27 linkUrl 28 ) 29 .build(); 30 sheet2.getRange('B' + lastRow2).setRichTextValue(richText); 31}

投稿2024/12/28 18:57

編集2024/12/30 07:45
YellowGreen

総合スコア841

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

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

net0726

2024/12/30 00:43

ご回答ありがとうございます!本日、時間がなくまだ試せていないのですが、確認でき次第ご報告します。ちちなみに、 99行目 XXXXXXXXXXXXX と改行した状態でセルにプロットすることも可能なのでしょうか?
YellowGreen

2024/12/30 07:49

data1とdata2との間に\nが入るようにしました
net0726

2024/12/31 03:14

回答ありがとうございます。 試したところ問題が解決しました! GAS初心者なのでまだまだ分からないことだらけですが、頑張って勉強してきます! ベストアンサーに選ばせていただきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.34%

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

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

質問する

関連した質問