teratail header banner
teratail header banner
質問するログイン新規登録

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

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

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

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

Google Apps Script

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

Q&A

1回答

365閲覧

「▶」再生ボタンをスプレッドシートに書き出す

studiosimply

総合スコア4

Google スプレッドシート

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

Google Apps Script

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

0グッド

1クリップ

投稿2023/10/24 00:31

編集2023/10/24 00:55

0

1

実現したいこと

Full Emoji List, v15.1
https://unicode.org/emoji/charts/full-emoji-list.html

上記URL内の以下のボタンを、Google Apps Scriptでスプレッドシートに書き出したいのですが、

  • ▶再生
  • ⏩早送り
  • ⏺録音
  • ⏹停止
    再生ボタンだけ環境依存の▶マークになってしまいます。
    ボタンマークで表示させるにはどうすれば良いでしょう?

GoogleAppsScript

1function playButton() { 2 // ユニコード絵文字のplay buttonを設定します。 3 const playButton = '▶'; 4 5 // プレイボタンを表示します。 6 Logger.log(playButton); // ▶が表示される 7}

試したこと

文字コードで指定しましたが「」が表示されてしまう。

GoogleAppsScript

1function playButton() { 2 // ユニコード絵文字のplay buttonを取得します。 3 const playButton = String.fromCharCode(0x1F500); 4 5 // プレイボタンを表示します。 6 Logger.log(playButton); // が表示される 7}

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

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

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

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

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

studiosimply

2023/10/24 00:46

見落としですね。試したことは投稿時に記載済みです。
guest

回答1

0

Unicode絵文字にはpresentation styleという仕組みがあり、1つの文字にtextスタイルとemojiスタイルが存在するものがあります。「▶」もその1つです。このような文字は両スタイルのフォントが存在する環境ではどちらのスタイルで表示されるか分からないので、明示的にスタイルを強制することが必要です。
スタイルの強制は、文字の後ろにU+FE0Eでtextスタイル、U+FE0Fでemojiスタイルになります。
何も付けていないものが「▶」。
U+FE0Eを付けたものが「▶︎」。
U+FE0Fを付けたものが「▶️」。
emojiスタイルのフォントが存在する環境なら、一番下は必ず絵文字として表示されているはずです。

参考: https://qiita.com/_sobataro/items/47989ee4b573e0c2adfc

なおU+1F500はTwisted Rightwards Arrows(🔀、シャッフルボタン)のコードなので何かの間違いでしょう。
「▶」はU+25B6です。
また、JavaScriptのfromCharCodeはUnicodeのコードポイントそのものではなくUTF-16表現された文字列のコードを受け取るものなので、Unicode番号0x10000以上の文字についてはサロゲートペアを使う必要があります。
U+1F500(🔀)ならfromCharCode(0xD83D, 0xDD00)です。

投稿2023/10/28 10:13

ikadzuchi

総合スコア3047

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

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

studiosimply

2023/10/28 10:56

回答ありがとうございます。 ちょっと私の方が理解が薄いのか以下のコードを書きましたが、正しく表示されません。 ```GoogleAppsScript function testFunc() { // スプレッドシートを取得する var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();// Container Bound Script var sheet = spreadsheet.getSheets()[0];// シート数を指定して取得 // ユニコード絵文字のplay buttonを取得します。 const playButton1 = String.fromCharCode(0x25B6, 0xDD00); const playButton2 = "▶" + "U+FE0F" sheet.getRange(1984, 1).setValue(playButton1); // ▶� が表示される sheet.getRange(1985, 1).setValue(playButton2); // ▶U+FE0F が表示される } ```
ikadzuchi

2023/10/31 15:16

ああ、説明が足りませんでした。「U+****」はユニコード文字を示す記法で、「U+FE0F」でユニコード番号がFE0Fである文字「️」を指します。不可視文字なので「️」と文字そのものを書いても扱いづらいので番号で書きました。 ですので、「▶」のあとにU+FE0Fである「️」を続けたものを"~"内に書いてください。それはこれ「▶️」です。これ「▶️」をコピーして使うとよいです。 また、「0xD83D, 0xDD00」はこの2つの数字の組で1文字の「🔀」になるモノです。このモノのことをサロゲートペアと呼びます。 この2つで1文字なので、前半だけ変えても変なものが出ます。 🔀はemojiスタイルしか無いようなのでFE0Fを付ける必要がありませんでしたが、あえて付けるなら「fromCharCode(0xD83D, 0xDD00, 0xFE0F)」です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問