作成した関数の呼び出し3.スクリプトの割り当て4.文字列結合5.演算を追加6.if文追加7.最後にはじめにどうも、bzbot(ビジボット)です。今回作成するのは、絶対に使う事はないんだけどそこにボタンがあるから人は押したくなる電卓?!を作ってみようと思います。最初から宣言しておきますが、コード自体は相当イケてない無理やり書いたコードになってます。この綺麗に書くことよりまずは泥臭く処理を一つ一つ書いていくってことにも初心者として通るべき道だと思ってますので、ぜひ泥臭くコードを書いてもらえればと思います!(笑)書いててほんとに気持ち悪いコードすぎて泣きそうでした。(笑)それでは早速始めていきます!1.絶対に使わない電卓を作成まず電卓のベースを作成します。セルB2は計算結果が表示されるよう大きめにします。『図形描画』にて好きな図形を組み込みます。bzbot(ビジボット)それぞれ作ったらシート名は「電卓」とします。次に何もデータが入ってないシート「電卓DB」を用意します。2.数字を押したら動く関数を追加それではまず簡単なコードから追加していきます。今回記述している変数で、グローバル変数とローカル変数の違いを簡単に説明します!ローカル変数は関数の中で宣言した変数であり、その関数内でしか参照できません。グローバル変数は関数の外で宣言した変数であり、どの関数でも参照することができるメリットがあります。その為、シート名はまずグローバル変数に入れて各関数から呼び出す形で記述します。sheet.setActiveSheet(sheet.getSheetByName("電卓"));さらに今回ボタンの数だけ最低数の関数を作る必要がある為、関数の呼び出しについても記述しておきます。作成した関数の呼び出しこのタイミングでは2つの関数を用意します。今回はボタン1が押されたときに1がしっかりと電卓上に表示されることが目標なので、関数b1→myFunctionに値を渡す必要があります。関数の呼び出し方法は呼び出したい関数名『myFunction();』を記載すれば呼び出せます。"』です!");}以下のように、関数b1で生成されたデータを別関数に引数と一緒に渡した場合、与えたデータがしっかりと渡されていることが確認できます。joinDateに入っている値は『1』です!3.スクリプトの割り当て作成したスクリプトをボタン1を押した時の挙動にしたいので、ボタンにスクリプトをセットします。スクリプト名は関数名と同じ意味なので、作成した『b1』を入力して完了です。bzbot(ビジボット)これでボタン1を押すと2...3...と、数字を表示する第一段階を作成できました。次は10の桁を表示することができません。1を押したら1のままです。その為11と表示したり、12と表示したりする仕掛けが必要です。数値でデータを取り扱う場合には、意図しない計算が先に行われてしまう場合がある為、必要な部分は文字列として扱う必要があります。事前に入力した値を保持した形で表示をしないと行けない為、直前で入力した値を別で保持する必要がある。そこで別途用意した『電卓DB』という大層なシートを使っていく。"1";//繋げた値を数値型としてcalDBシートに保存するcalDB.getRange('A1').setValue(Number(joinDate));//引数に文字列データをセットするmyFunction(joinDate);Logger.log(joinDate);}上記を2回実行してみた結果が以下しっかりと11という値になっていることがわかる。今回はシンプルに『+』を押したときの動作とその処理について追加していく。文字列の+マークがセットされ、myFunction()の引数に指定されて『電卓に表示させる関数』が表示されます。"+";myFunction(joinDate);Logger.log(joinDate);}上記実行した場合、電卓DBシートはプラスを処理する前の数値的データが入っており、電卓の画面上は『+』マークが表示される。※DBシートをプラスで上書きしてしまうと、そのあと計算する値がなくなってしまうので注意6.if文追加ボタン1を押した時の挙動を改めてカスタムする必要が出てきました。先ほどまでは前提として値が入っている、もしくは値が入っていないことが想定されてましたが、今回は『+』マークが入っている前提も考慮する必要があるのでif文を使って処理を分岐させていきます。if文は『if(ここの式がTRUEだったら処理を実行)』の部分に条件式を記載します。elseはTRUE以外の全てFALSEに該当する処理が以下です。"+";myFunction(joinDate);Logger.log(joinDate);}上記追加したコードで『1』を押した時の挙動は以下です。1上記追加したコードで『+』を押した時の挙動は以下です。2.0それぞれ合計した結果が電卓DBシートにセットされたりと、デバックしながらみていくとすごく楽です。cal.getRange('B2').setValue("");}以上で終了です!やって気づきましたが、『+』を押して2回目の桁を入力するとき2桁以上の数字を入力することができないので『=』とか追加しないとな。私だったら絶対電卓として使わないですが、。コメントをキャンセルメールアドレスが公開されることはありません。ボタンを押すだけでメールを送信する!2019年2月5日Excelではなく、Googleスプレッドシートを使う理由プロフィール仕事で役立つ情報をアウトプットする為に気まぐれで書いてます。関係ない仕事をしながら、プログラミングに興味を持っている、20代後半のサラリーマン。