2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

NeosVR内でのGAS(Google Apps Script)の使い方 (初心者用)

Last updated at Posted at 2021-01-23

#【はじめに】
GAS(Google Apps Script)を使って、NeosVR内から
Googleのスプレッドシート(Google版エクセルみたいなもの)の
値の読み込みと書き込みを実施する方法を説明します。

これができるようになると、例えば
NeosVR内で作ったゲームのランキング表作成や挑戦数、クリア数の管理などに
応用することができます。

#【手順】
①GoogleのスプレッドシートとGASの使い方を理解する
以下リンク先ページの説明がとても分かりやすいので、
スプレッドシートへの書き込みまでやってみてください。

「GASをWebAppとして公開して初回実行(doPostとdoGet)」
https://uncle-atsushi.com/gas_first-execute_dopost-doget/

※説明は旧ページのものになるので、
Apps Scriptのページで「以前のエディタを使用」を選んでください

②コードの作成
まずは以下の「指定したセルの読み込み応答コード」を全てGASに貼り付けます。

//指定したセルの読み込み応答

function doGet(e) {
  // doPostから送られてきたパラメータを受け取る。
  var param1 = e.parameter.pParam1;
  var param2 = e.parameter.pParam2;
  var param3 = e.parameter.pParam3;
  // pParam2と3は予備変数
  
  // 読み込み動作readsheetvalueを実行する
  var rValue = readsheetvalue(param1, param2, param3);
  
  // 読み込んだ値を返す
  return rValue;
}
 
function readsheetvalue(param1, param2, param3) {
  //1. 現在のスプレッドシートを取得
  var spreadsheet = SpreadsheetApp.openById("スプレッドシートIDをここに入力");
  //2. 現在のシートを取得
  var sheet = spreadsheet.getSheetByName("シート1");
  //3. 指定するセルの範囲(param1)を取得
  var range = sheet.getRange(param1);
  //4. 値を取得する
  var value = range.getValue();
  //5. テキスト化して値を設定
  return ContentService.createTextOutput(value);
}

次に、プログラム内の
//1. 現在のスプレッドシートを取得
var spreadsheet = SpreadsheetApp.openById("スプレッドシートIDをここに入力");
へスプレッドシートIDを入力します。
(IDはスプレッドシートURLの右の場所です→~d/ここがID!/edit~)

③NeosVRで使う準備
ネオスで使うためには、外部アクセスを許可する必要があります。
以下の設定変更を行ってから、No.を更新してください。

「公開」→「ウェブアプリケーションとして導入」に記載されている
「Execute the app as」をme,「Who has access to the app」を「anyone~」にする。

次に、更新されたURLの一番後ろに「?pParam1=A1」を追加し、
そのURLにアクセスすることでスプレッドシートA1の値が出力されることを確認してください。

④NeosVRで出力
ノードを以下の図のようにつなぎます
2021-01-23 11.30.30.jpg

ノード「Get string」の入力側に③のURLを入力します。
あとはパルスを押して、スプレッドシートA1の値が出力されればOKです!

#【補足】
「指定したセルの書き込みコード」も同様の手順で使うことができます。
URLの一番後ろにつける文字を「?pParam1=B1&pParam2=5」とすることで
「B1」セルに「5」が入力されます。
スプレッドシートへの書き込みだけなのでNeos側への応答はないです

//指定したセルへの書き込み

function doGet(e) {
  // doPostから送られてきたパラメータを受け取る。
  var param1 = e.parameter.pParam1;
  var param2 = e.parameter.pParam2;
  var param3 = e.parameter.pParam3;
  // pParam3は予備変数

  // 書き込み動作Write~Spreadsheetを実行する
  WriteParamSpreadsheet(param1, param2, param3);

}
 
function WriteParamSpreadsheet(param1, param2, param3) {
  // スプレッドシートのIDを指定して変数に格納。
  var InfoSpreadsheet = SpreadsheetApp.openById("スプレッドシートIDをここに入力");
  
  // スプレッドシートの中のシート名を指定して変数に格納。
  var InfoSheet = InfoSpreadsheet.getSheetByName("シート1");
  
  // スプレッドシートへ書き込み。
  InfoSheet.getRange(param1).setValue(param2);

}
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?