LANG SELRCT

Google Apps Scriptのコードを書く場所  (新規作成: スプレッドシート | スクリプトエディタ

2020年10月21日水曜日

showModalDialogでスプレッドシート上にUIを表示する


MISSION 
showModalDialogでスプレッドシート上にUIを表示する



以下のコード.gsのmyFunction()をスクリプトエディタで実行すると
このようなUIを表示できます。


UIを表示すると背後のシートは操作できません。



コード.gs 
function myFunction() {
  const htmlOutput = HtmlService
      .createHtmlOutput('<p>ここに表示したい内容をhtmlで書ける。</p><br><a href="https://www.google.com/">リンクもはれる</a>')
      .setWidth(360)
      .setHeight(120);
  SpreadsheetApp.getUi().showModalDialog(htmlOutput, "MyGUI");
}
意訳
この機能がやること
指定したHTMLファイルを表示する



showModelessDialogでスプレッドシート上にUIを表示する


MISSION
showModelessDialogでスプレッドシート上にUIを表示する



以下のコード.gsのmyFunction()をスクリプトエディタで実行すると
このようなUIを表示できます。

モーダルとは異なり、UIを表示したときにも背後のシートを操作できます。



コード.gs
function myFunction() {
  const htmlOutput = HtmlService
      .createHtmlOutput('<p>ここに表示したい内容をhtmlで書ける。</p><br><a href="https://www.google.com/">リンクもはれる</a>')
      .setWidth(360)
      .setHeight(120);
  SpreadsheetApp.getUi().showModelessDialog(htmlOutput, "MyGUI");
}
意訳
この機能がやること
指定したHTMLファイルを表示する


2020年10月17日土曜日

二次元配列をfilterして新しい配列を作りたい


MISSION
二次元配列をfilterして新しい配列を作る


BEFORE 
こういう二次元配列から
[[1, 0], [0, 1], [1, 1], [0, 0]];


AFTER 
先頭が1だけの新しい配列を作る
[[1, 0], [1, 1]];




コード.gs
function myFunction() {
  const arrays = [
                   [1, 0],
                   [0, 1],
                   [1, 1],
                   [0, 0]
                 ];
  const filtered = arrays.filter(judge);
  Logger.log(filtered);
}


function judge(array) {
  return array[0] === 1;
}



別の書き方も試してみる

コード2.gs 
function myFunction() {
  const arrays = [
                   [1, 0],
                   [0, 1],
                   [1, 1],
                   [0, 0]
                 ];
  const filtered = arrays.filter(array => array[0] === 1);
  Logger.log(filtered);
}



もう一つ別の書き方で書いてみる

コード3.gs 
function myFunction() {
  var arrays = [
                   [1, 0],
                   [0, 1],
                   [1, 1],
                   [0, 0]
                 ];
  var filtered = arrays.filter(function(array) { return array[0] === 1});
  Logger.log(filtered);
}




REFERENCE

Array.prototype.filter()

2020年10月11日日曜日

Google Pixel Budsを交換したくてサポートページを調べたときの備忘録


左のイヤホンを水没させてしまい、交換方法を調べたときの備忘録です。



MISSION
Pixel Budsを交換する方法を知る



SOLUTION
ここでチャット対応してもらえそうです。


SOLUTIONのページに辿り着くまでの道のり

STEP1
pixel buds交換で検索します。

STEP2
Google Pixel Buds の交換 をクリックして開きます。


STEP3
Pixel Buds に関するサポートを受ける をクリックして開きます。


STEP4
電話かチャットでサポートを受けられそう。


チャットは日本語も対応してそうです。



APPENDIX

問い合わせる前にヘルプやトラブルシューティングに解決策があるかもしれません。

Google Pixel Buds ヘルプ

ペア設定に関する問題のトラブルシューティング



REFERENCE

Pixel Buds に関するサポートを受ける

2020年10月10日土曜日

GitHubのGraphQL API を試してみる(Explorerと同じqueryをコードでやる)


MISSION 
GitHubのGraphQL APIでExplorerのデフォルトqueryをApps Scriptでやる


Explorer
https://docs.github.com/en/free-pro-team@latest/graphql/overview/explorer

この

query { 
  viewer { 
    login
  }
}

をGoogle Apps Scriptでやってみたくて書きました。



PROCESS 
personal access tokenを発行する
スクリプトのプロパティに保存する
コードを書いて保存する
コードを実行する
ログを確認する


STEPS 

STEP1:personal access tokenを発行する

の手順でアクセストークンを取得します。



STEP2:スクリプトのプロパティに保存する

スクリプトエディタ > ファイル > プロジェクトのプロパティ を開いて


「行を追加」をクリックして
プロパティをaccess_tokenとして
値にはSTEP1で取得したパーソナルアクセストークンを入れて保存します。




STEP3:コードを書いて保存する

以下のコード.gsをそのままコピペすれば実行できるはず。


コード.gs 
const endpoint = "https://api.github.com/graphql";

/************************************
APIをたたいてログに出す
************************************/
function runGraphql() {
  const response = getResponse();
  Logger.log(response);
}

/************************************
APIを実行して結果を返す
************************************/
function getResponse() {
  return UrlFetchApp.fetch(endpoint, getOptions());
}

/************************************
getOptions
************************************/
function getOptions() {
  return {
    "method": "post",
    "contentType": "application/json",
    "headers": {
      "Authorization": "bearer " + getProp("access_token"),
    },
    "payload": JSON.stringify({ "query": getQuery() })
  };
}

/************************************
クエリ
************************************/
function getQuery() {
  return `{ 
    viewer { 
      login
    }
  }`
}

/************************************
スクリプトのプロパティにアクセスする
************************************/
function getProp(key) {
  return PropertiesService.getScriptProperties().getProperty(key);
}


コメント入れると48行ありますが、実質30行くらいです。
getQueryの中身を変えると指定したデータにアクセスできます。
ここではデフォルトの
  viewer { 
    login
  }
にしています。



STEP4:コードを実行する

実行 > runGraphql で実行します。


初回実行時は以下のような許可を求められます。

許可を確認


アカウントを選択


詳細


〜(安全ではないページ)に移動


許可



STEP5:ログを確認する

表示 > ログ


ログに結果が表示されます。


これでExplorer実行時、右に表示される結果と同じ結果をコードで取得できました。



JIRAでプロジェクトのゴミ箱がどこにあるのか知りたい


ちょっと見つけにくかったので備忘録として。

サポートページに書かれている歯車アイコンがどこにあるのかわからなかった。



右上にあった。



MISSION
JIRAでプロジェクトのゴミ箱を見つける


PROCESS
右上の歯車アイコン > プロジェクト > ゴミ箱



ここにゴミ箱がある。



参考

プロジェクトの削除

GitHubのパーソナルアクセストークンを取得したい


MISSION
GitHubのパーソナルアクセストークンを取得する



PROCESS

の手順でアクセストークンを取得します。

  1. Profile > Settings
  2. Developer settings
  3. Personal access tokens > Generate new token
  4. Note > Select scopes > Generate token



STEPS

STEP1
Profile > Settings


STEP2
Developer settings


STEP3
Personal access tokens > Generate new token


STEP4
Note > Select scopes > Generate token


アクセストークンが表示されます。



REFERENCE

個人アクセストークンを使用する

Google Meetで同じ動画をみんなで観たい(音声がある動画)


一度やると簡単だけど、初回にちょっと手こずったので備忘録。



MISSION 
Google Meetで、音声付きの動画をみんなで観る


SOLUTION
Chromeのタブで共有したい動画を開いておく

画面を共有 > Chromeタブ > 共有したいタブを選択 > 共有




※「音声を共有する」にチェックが入っていることを確認します。


APPENDIX


共有をやめる場合は「中止」をクリックします。




別のタブを共有したい場合は
共有したいタブをアクティブにして
「代わりにこのタブを共有」をクリックします。



参考

会議中に画面を共有する

Macでキーボードショートカットの組合わせを変更したい


MISSION
Macでキーボードショートカットの組み合わせを変更する


BEFORE
スクリーンショットの
選択部分のピクチャをクリップボードにコピーのショートカットキーは

ctrl+shift+command+4 になっている。



AFTER 
shift+command+c へ変更する。


PROCESS
システム環境設定 > キーボード > ショートカット



STEPS 

STEP1


STEP2
① ショートカット
② 対象を選択
③ キーを割り当てる


変えたいショートカットをダブルクリックすると編集可能になります。
その状態でキーボードのキーを押すと上書きされます。



参考

Macで競合するキーボードショートカットを変更する

最新の投稿

showModalDialogでスプレッドシート上にUIを表示する

MISSION  showModalDialogでスプレッドシート上にUIを表示する 以下のコード.gsのmyFunction()をスクリプトエディタで実行すると このようなUIを表示できます。 UIを表示すると背後のシートは操作できません。 コード.gs  function m...