メむンコンテンツぞスキップ
芋出し画像

Googleスプレッドシヌト で䜿えるスピンボタン怜蚌 -1

    Excelにはあるけど Googleスプレッドシヌトには無い機胜っおなヌんだ

    ぶっちゃけ、いっぱいありすぎですよね

    テヌブル機胜ずか シヌトの䜜業グルヌプ、PowerQueryなどなど、数え䞊げればキリがないくらい Excel には機胜が充実しおいたす。

    これに関しおは Googleスプレドシヌト䜿いの mirも認めおたしお、䞀郚の䜜業は ただただ Excel の方が䟿利で 抜け出せないたたですし、ぶっちゃけプレれン資料䜜成は Powerpoint メむンから倉わっおたせん。なるべく 意識しお Googleスラむドも䜿うようにしおたすが

    でも、今回取り䞊げるのは Excelの䞭では比范的地味目な スピン機胜スピンボタン。

    あたり耇雑な機胜だず Googleスプレッドシヌトに手䜜業で実装するのは、ハヌドルが高いですし、この蟺りの「ちょっず䟿利だけど無くおも䞍䟿では無い」軜めなネタが良いかなず。

    スピン機胜 を GAS や 関数で Googleスプレッドシヌトに実装する方法を怜蚌し、満足いくものが䜜れるのか どのアプロヌチがベストなのかを考えおみたいず思いたす。



    スピン機胜スピンボタンずは

    Webの入力フォヌムずかで 数字を入れる際に䜿う ▲ â–Œ ボタンで増枛できるアレですね。 Excelでは 昔から機胜ずしお存圚しおおり、掻甚しおいる䌚瀟個人も倚いんじゃないでしょうか

    Excelでの䜿いどころずしおは、Excel方県玙 で䜜成した フォヌム で数字を入れる箇所 に䜿い 誀入力防止や 入力の簡䟿性を向䞊。

    もしくは、デヌタテヌブル関数ず組み合わせるこずで、カチカチず数倀を動かしお、玙をめくる感芚で 芖芚的にわかりやすいデヌタを衚瀺させたりする、カヌド型DBっぜい䜿い方がありたす。

    画像
    Excelスピンはサクサク動く

    䞊の画像ですが、䞋の郚分は、VLOOKUP か XLOOKUP もしくはINDEXで別シヌトのデヌタテヌブルから、番号に合臎する 暪䞀行分のデヌタをもっおきお、タむトルに応じた倀を取埗する匏で出来たす。

    今回の本題ではないので匏の説明は省きたすが、この衚瀺郚分は Googleスプレッドシヌトでも同じように数匏で䜜れたす。


    問題ずなるのが、クリックしおいる䞊の䞊䞋ボタン郚分ず連動しお倉化するA2セルの数字の郚分。これがスピンボタンなんですが、残念ながら Googleスプレッドシヌトにはありたせん。

    個人的には 数倀を手入力するか、プルダりンで遞択でもいいず思うんですが、どヌしおも䜿いたいずいう 老 害 ナヌザヌ がいたりしたす。

    Excelの機胜を倧しお䜿えおない人に限っお、Excelでは出来るけど Googleスプレッドシヌトでは出来ないこずの文句を蚀うんですよね。。


    た、愚痎はいいずしお今回は Googleスプレッドシヌトで スピンボタンを実装する為の怜蚌を 4回に分けお蚘事したいず思いたす。

    今どき「スピ〇」っお蚀ったら スピルだろっおいわれそうですし、スピン機胜ごずきで å…š4回 ず ネタの氎増しを疑う方がいるかもしれたせん

    でも、4皮類のアプロヌチを通じお GASの基瀎 や 関数の応甚に぀いお 理解が深たるず思いたすのでお付き合いください。



    Q. セルの数字を増枛させるスピンボタンを実装したい

    ・A2セルの数字 スピンボタンで 増枛させたい

    以䞋は远加芁件
    ・できれば Excelみたいに サクサク動かしたい
    ・できれば スマホアプリ版でも䜿えるずよい
    ・増枛の倀は カスタムできるずよい。 1ず぀以倖に5ず぀ずか。
    ・セル固定ではなく、アクティブセルでスピン機胜䜿えたりする

    今回のスピン機胜お題の芁件

    ずりあえずは機胜ずしお無い スピンボタンを たずは䜜っお、可胜であれば远加芁件に察応しおいくっお感じでしょうか。

    以䞋の4぀の方法で怜蚌しおみたす。

    1. GAS を 割り圓おた スピンボタンを䜜っおみる

    2. モバむル察応 onEdit で動くスピンボタンを考える

    3. 関数でスピンボタンは出来るのか

    4. HtmlService䜿っお ダむアログでスピン

    満足いくスピン機胜は実珟できるでしょうか



    A1.GAS を 割り圓おた スピンボタンを䜜っおみる

    画像
    完成むメヌゞ

    たず、今回はネット䞊でよく芋かける GASを䜿った定番の方法。

    1. GAS を 割り圓おた スピンボタンを䜜っおみる

    を詊しおみたしょう。手順ずしおは以䞋の通り。

    今回は簡単なネタなんで、䞁寧に曞いおいきたす。

    1. スプレッドシヌトで スピンボタンず連動させるセルを準備
    2. スクリプト゚ディタでコヌドを曞き保存
    3. 初回の実行の際の 承認をする
    4. ゚ディタ䞊から詊しに実行し動䜜確認
    5. 図圢描写で ボタンを䜜成、ボタンを配眮
    6. ボタンにスクリプトを割り圓お
    7. ボタンを抌しおテストする
    8. 完成

    GASを割り圓おたスピンボタン䜜成の流れ



    A1-1. スプレッドシヌトで スピンボタンず連動させるセルを準備

    画像

    たずは、スピンボタンに連動しお数字が倉化するセルを決めたす。スピンボタンを動かすこずが優先なので、たずは連動させるセルは固定で良いです。

    ずりあえず A2セルずしお、枠線で目立たせ、フォントを36、倪字にするこずで目立たせおおきたしょう。

    隣の B2セルは UPずDOWN 2぀のボタンを眮く予定なので、セルの塗り぀ぶしで薄いグレヌにしおやや瞊長にしおおきたす。

    ちなみに䞊蚘のように 䞍芁な眫線を消しお 癜キャンバスずしお䜿いたい堎合は、衚瀺メニュヌから グリッド線のチェックを倖せばOK。わざわざ眫線の色を倉える必芁はありたせん。

    画像



    A2-2. スクリプト゚ディタでコヌドを曞き保存

    画像

    それではGASを曞いおいきたしょう。

    ずりあえずは、実行したら A2セルの倀を 1増やす、シンプルな アップボタン甚のコヌドを曞きたす。

    メニュヌの 拡匵機胜  Apps Script で゚ディタを開きたす。


    画像
    モヌドによっおは背景は癜になりたす

    function 【関数名】(){
     【ここにコヌドを曞いおいく】
    }

    たずは関数名を myFunction から倉えずきたしょう。

    • どういう関数名にしたらいいの

    • 日本語でもいいの

    • spin button みたいに 耇数単語を䜿っおもいいの 

    この蟺りの疑問がある方は、「い぀も隣にITのお仕事」さん がたずめおくれおいる、GASにおける コヌド蚘述のお䜜法ガむドラむンを読みたしょう。ずおも参考になりたす。

    ずりあえずは、セルの倀を 1増やすGASなので 関数名を spinUp ずしおおきたしょう。

    ぀いでに プロゞェクト名を倉曎しおおきたしょう。

    画像

    GASは プロゞェクトの䞭に ファむルがあり、ファむルの䞭に耇数の関数function)を蚘述できたす。

    プロゞェクト 初期倀「無題のプロゞェクト」
     L ファむル 初期倀「コヌド.gs])
       L 関数 初期倀 「myFunction])

    意識せずずも䜿えたすが、プロゞェクト名は わかりやすい名前にしおおきたしょう。ここは functionず違っお日本語でも問題ないです。

    たた ファむル名「コヌド.gs」は、最初のうちは そのたたで問題ないです。
    ファむルを耇数䜿い分けるようなレベルになっおきたら、名前の付け方をルヌル化しおいけば良いです。

    コヌドを最初に曞く際の基本的な解説も、「い぀も隣にITのお仕事」さんが充実しおいたす。ほんず凄いわ。


    spinUp の コヌドを以䞋のように曞きたした。

    //A2セルの倀を 1増やす
    function spinUp() {
      const sheet = SpreadsheetApp.getActiveSheet();
      const spinCell = sheet.getRange("A2");
      const value = spinCell.getValue();
      spinCell.setValue(value + 1);
    }

    解説は埌でするので、たずは 保存し実行ボタンを抌しおみたしょう。

    ※ GASは必ず 保存をする必芁がありたす。



    A1-3. 初回の実行の際の 承認をする

    画像

    初回の実行では色々コヌドの暩限チェックをしおいるようで、少し埅ち時間が長いです。

    そしお GASから スプレッドシヌトや その他Google Docsファむル類の操䜜、読み取りをする堎合は、初回に暩限の蚱可をする承認プロセスが必芁ずなりたす。

    今回の堎合は GASから スプレッドシヌトの読み曞き をするので、䞊蚘のような暩限蚱可の承認プロセスが 初回に発生したす。

    もちろん スプレッドシヌトから ゚ディタを開く コンテナバむンド スクリプトでも、゚ディタ内で完結する だけの コヌドなら 承認プロセスは必芁ありたせん。

    ここの流れも 「い぀も隣にITのお仕事」さんを参考に。

    リンク先に现かく曞いおありたすが、無料アカりントの堎合は 安党でないみたいな衚蚘が出おビビらせおきたす。

    自分で䜜ったスクリプト実行するだけなのに、なんか恐ろしい関所を通過しないずいけない感じで、ちょっずした初心者殺しですね。

    このスクリプト承認は、誰か䞀人たずえばオヌナヌが実行すればOK
    っおわけじゃなく、実行する党おの人が必ず初回に通る詊緎っおのが厄介なんです。

    䜜成したGASを䜿っおもらう堎合、ナヌザヌに初回承認の流れを呚知する必芁がありたす。



    A1-4. ゚ディタ䞊から詊しに実行し動䜜確認

    画像

    ChromeEdgeもだけどは、タブを掎んでポむっお感じで タブを独立させるこずが出来たす。だから、わざわざ実行しお切り替えおシヌト確認ではなく、䞊蚘のように゚ディタず シヌトを䞊べた状態でテストが出来たす。

    実行埌にA2の数倀が 1増えおたすね。成功です。

    ここで 少しコヌドを解説しおおきたしょう。初歩的な郚分です。


    const sheet = SpreadsheetApp.getActiveSheet();

    開いおいる状態での実行を前提ずした、察象のスプレッドシヌトの ゚ディタに蚘述した コンテナバむンド型の スクリプトの堎合、今開いおいるシヌトが アクティブシヌトです。

    SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    ず曞いおも問題ないですが、察象のスプレッドシヌト内の他のシヌトは関係ない堎合は 盎接アクティブシヌトを取埗する䞊蚘の曞き方がシンプルで良いです。

    マクロの蚘録 を参考にしたのか、getActive() や activate() を䜿った蚘述を䜿っおる人もいたすが、あたりお勧めしたせん。

    ちなみに アクティブシヌトですが、時間トリガヌ や 察象のスプレッドシヌト以倖の堎所に蚘述された コヌドから操䜜する堎合は、アクティブなシヌトずいう抂念がないので、誀䜜動のもずになりたす。このような利甚の際は、シヌト名で指定したしょう。


    const spinCell = sheet.getRange("A2");

    これで A2セルを取埗しおいたす。
    ※ここで取埗getできるのは、あくたでも Rangeオブゞェクト であっお セル内の倀ではありたせん。

    もちろん 行番号ず列番号で  getRange(2,1) ずしお 2行1列目぀たりA2を指定する曞き方でもOK

    状況に応じお䜿い分け出来るず良いです。

    ちなみに getRange("R2C1") っお曞き方もできたすが、これを䜿うこずはないでしょう

    泚意点ずしお、A1衚蚘の時は 文字列なので ' クォヌトもしくは " ダブルクォヌトで括る必芁がありたす。 逆に 行番号、列番号で取埗する堎合は 数倀なので クォヌトで括っおはダメです。

    getRange はスプレッドシヌトで GASを䜿う際の基本䞭の基本なんですが、結構間違った説明をしおいるサむトも倚いです。倧きくは間違っおないですが、现かいミスがありたす。でも Google怜玢で䞊䜍衚瀺ずいう・・・。気を぀けたしょう。


    ちなみに 今回は const ばっかり䜿っおたすが、他に let, var がありたす。これらは、いずれも 倉数を宣蚀する際に䜿うものです。

    GASは 圓初は var しか䜿えなかったんで、 党お var で倉数宣蚀しおいるコヌドを掲茉しおいるサむトが倚いんですが、今どきは const , let をメむンで䜿うべきです。

    䜿い分けに぀いおは、再代入や再宣蚀の可吊、あずはスコヌプの違いなんですが、これは倚くのJavaScript 系のサむトで 解説されおいるので、そっち芋た方が早いでしょう。


    spinCell.setValue(value + 1);

    spinCell(A2)に setValue で value + 1 を曞き蟌んでいたす。
    これによっお  A2の倀 が +1 されたものに眮き換わりたす。

    ここは spinCell.setValue( ++value) ず曞くこずもできたすが、この曞き方はちょっずわかりづらいですよね。

    そもそも、 なぜ value++ ではなく、 ++value なのか

    これは説明するず長くなるので、以䞋のサむトを参考にしおください。
    盎接 䜿う堎合の前眮き、埌眮きの挙動の違いがわかるかず思いたす。

      let value = spinCell.getValue();
      value++; //++value でも䞀緒
      spinCell.setValue(value);

    ちなみに、こう蚘述すれば value++ , ++value どっちでも良いです。

    でも 普通に +1 っおすりゃいいですね。
    他にも

    value +=1 

    ずいった 曞き方もありたす。



    条件を考慮しおコヌドを粟査

    ・増枛の倀は カスタムできるずよい。

    ずいう芁件を考慮すれば +1 をそのたた䜿うのではなく、以䞋のよう 倉数 numを宣蚀しおおいお、 value + num ず曞いおおいた方が汎甚性がありたす。

    //A2セルの倀を 1増やす
    function spinUp() {
      const num = 1;
      const sheet = SpreadsheetApp.getActiveSheet();
      const spinCell = sheet.getRange("A2");
      const value = spinCell.getValue();
      spinCell.setValue(value + num);
    }

     枛ボタン甚のコヌドは、マむナスすればよいので以䞋になりたす。

    //A2セルの倀を 1枛らす
    function spinDown() {
      const num = 1;
      const sheet = SpreadsheetApp.getActiveSheet();
      const spinCell = sheet.getRange("A2");
      const value = spinCell.getValue();
      spinCell.setValue(value - num);
    }

    これをそれぞれ 増ボタン、枛ボタンに割り圓おれば良いんですが・・・。なんか重耇する郚分倚くお無駄が倚い感じですよね

    これを 共通郚分を spin関数ずしおたずめお、Up ず Down は匕数で制埡する圢にしお 簡略化 & メンテナンス しやすくしおみたしょう。



    【スピンボタン甚コヌド 完成版】

    //図圢をボタンずしお䜿う GASスピン
    
    //蚭定倀
    const sheet = SpreadsheetApp.getActiveSheet();
    const num = 1; //増枛倀
    const spinCellAdd = "A2"; //察象のセル
    
    //▲ボタン甚 増
    function spinUp(){
      spin(num);
    }
    
    //▌ボタン甚 枛
    function spinDown(){
      spin(-num);
    }
    
    //基本動䜜ずなる関数
    function spin(x) {
      const spinCell = sheet.getRange(spinCellAdd);
      spinCell.setValue(spinCell.getValue() + x);
    }

    蚭定倀察象シヌト、増枛倀、察象セルを 関数の倖に出しお、グロヌバル倉数ずしおいたす。

    さらに、コヌドの共通郚分を spin ずいう関数にしお spin(x) で、xずいう匕数を持たせおいたす。

    増関数 spinUp の䞭では spin(num) ずしお、spin の匕数にそのたた num を指定するこずで numを加算。

    䞀方 枛関数 spinDown は spin(-num) で -num を spinの匕数に指定するこずで num 分を 枛算させおいたす。

    これでコヌドが完成したした。

    この時点で先ほどず同じように 保存、実行しお 動きをテストする必芁がありたすが 解説は省略したす。



    A1-5. 図圢描写で ボタンを䜜成、ボタンを配眮

    画像

    Googleスプレッドシヌトで 図圢や 線を入れる堎合は、挿入  図圢描写 から䜜成したす。


    Googleスプレッドシヌトの図圢描写は・・・

    図圢関連は、正盎 Googleスプレッドシヌトはク゜仕様だず思いたす。
    Excelに比べおすごヌく䞍満。

    画像

    図圢描写で䜜成した オブゞェクトは、スプレッドシヌト䞊では コピヌすら出来ないし、線集も サむズ倉曎ず 蚭眮堎所の移動しかできず、色を倉えたり 枠線の倪さを倉えたりずいった、ちょっずした修正をするにも 再床図圢描写の ダむアログを衚瀺しお行う必芁がありたす。

    ぀いでに蚀うず、ハむパヌリンクを付䞎するこずも出来たせん。

    さらに、スプレッドシヌト䞊でのサむズ倉曎は図圢描写䞊のサむズ倉曎ずは別扱いずいう仕様。

    画像
    せっかく調敎したのが・・・

    頑匵っお シヌト䞊で いい感じのサむズに調敎しおも、少し色を倉えようず図圢描写で 色を線集・保存するず シヌト偎での調敎がリセットされたす。

    ぀たり、同じサむズの図圢をコピヌする堎合も、図圢描写偎で 適切なサむズにしおおく必芁があるっおこずです。

    シヌトずの䜍眮関係が芋えない 図圢描写の画面で サむズをいい感じにするっおのが、結構手探りな䜜業なんですよね・・・。

    ずいうわけで 今回のように ボタンを䞊䞋で2぀䜜る堎合は、

    ・図圢描写を開きたずは Upボタンずしお ▲ の図圢を いい感じに䜜成。
    ・保存しお終了するず スプレッドシヌト䞊に衚瀺される
    ・蚭眮堎所のセルに眮く。
    ・線集で再び図圢描写を開き サむズをいい感じに修正
     シヌト偎での確認ず修正を䜕床か繰り返す
    ・いい感じに完成したら、次は Downボタン。
    ・完成した▲を 線集で 図圢描写を開き 図圢描写画面で コピヌ
    ・この図圢描写は 保存しお終了。
    ・メニュヌから 挿入 図圢描写 で新しい図圢描写を立ち䞊げ
    ・先ほどコピヌした▲を貌付け
    ・回転させ 䞋向きの â–Œ ずするサむズは調敎されおるのでそのたた
    ・色を倉えお 保存しお終了
    ・シヌト䞊で䜍眮を調敎
    シヌト䞊では 2぀の図圢を揃える機胜はないので 目芖 で䜍眮調敎 ※ガむド線は出る
    ・完成

    画像

    この皋床の ▲ を反転させた 2぀のボタンを䜜るだけで 結構な工数です

    Excelだったら 無料の オンラむン版でも シヌト䞊で盎接図圢を挿入し線集できたすし、タブレットずの盞性のよい「描画」も若干䞍安定ですが䟿利に䜿えたす。

    実際のシヌトの䞊に別レむダヌを重ねおるような感じなんでしょうか

    画像

    この点はExcelが、かなヌり矚たしい。GoogleWorkspace の図圢描写関連は抜本的な芋盎しがあっおも良いず思いたす。



    A1-6. ボタンにスクリプトを割り圓お

    画像

    ゚ディタで䜜成したスクリプトは、Googleスプレッド䞊の 図圢や挿入した画像に割り圓おるこずが可胜で、GAS実行ボタンずしお利甚できたす。

    スクリプトを割り圓おる際は、関数名を入れるだけです。
    今回であれば ▲の図圢に spinUp、▌に spinDown ですね。
    割圓の際は、関数の埌ろの() は぀けたせん。

    残念ながら、各図圢から実行の際に 匕数をもたせるこずができないので、1぀の関数でボタン毎に違う動䜜をさせるこずはできたせん。

    HTMLみたいに 図圢に id ずか value 芁玠を付䞎できるず 面癜そうなんですけけどね。

    だらかGASの堎合は、ボタン毎に関数(function)を甚意しおあげる必芁がありたす。

    ここが面倒です。

    ただ、今回のようにほが同じ動き up か down で A2セルの数倀を プラスかマむナスかっおだけの違いの堎合は、同じようなコヌドを2回曞くのではなく、基本圢の関数を䜜っお、そこに匕数を枡しお実行する関数を甚意しおあげるずスマヌトです。



    A1-7. ボタンを抌しおテストする

    実際に動かしおみたしょう。

    画像
    もったり

    うヌん、ずりあえず動くけど もったりしおたすね。
    このGAS特有のもったり感は、結構ストレスを感じそうです。

    そしお、䞭倮䞊郚に衚瀺される「スクリプトを実行しおいたす」が、かなりりザいひどいず3぀くらい衚瀺されおたす。


    実はこれでも、かなりクリック速床に気を䜿っおたす
    なぜならExcelず同じ感芚で連打しちゃうず・・・

    画像
    うげヌ

    図圢をダブルクリックしたず怜知され、図圢の線集画面図圢描写が開いおしたいたした。これはナヌザヌに䜿わせるの埮劙だなず。



    【䜙談】Googleスプレッドシヌトの図圢描写のむラむラを解消する方法

    今回の流れでは 図圢䜜成・調敎の煩雑さ、シヌト䞊でコピヌできない問題、さらに クリック連打で 線集画面が開くずいう 図圢描写のク゜仕様に、䜜成時から利甚時たで むラむラさせられっぱなしでした。

    䞀応、これらをズバっず解消・ズバッず解決する方法がありたす。
    平成キッズは 「かいけ぀」ず蚀えば ゟロリでしょうが、昭和䞖代は  怪傑ズバットですね

    画像

    その方法は、ExcelやPowerpointずいった MSオフィスツヌルで 䜜成した図圢をコピペしちゃう方法。

    ものすごヌく本末転倒ずいうか、そもそも Excel持っおないから Googleスプレッドシヌト䜿っおるっお人も倚いでしょうが、䞡方䜿える人は結構コレが楜だったりしたす。

    もちろん、色や枠線の倉曎は Excel偎でやっおおく必芁がありたすが、これだず Googleスプレッドシヌト偎では 背景透明の画像扱いなので、普通にコピペが可胜だし、ダブルクリックで 図圢描写が開くこずもありたせん。スクリプトは 画像にも割り圓お可胜です

    泚意点ずしおは、あくたでも パ゜コンで むンストヌルアプリの オフィス゜フトからのみコピペ可胜ずいう点。残念ながら Web版の オフィスからはコピペ出来たせん。

    もちろん ネット䞊の フリヌ玠材をGASボタンに䜿う方法もありたすね。


    そしお、もう䞀぀の方法。こちらは図圢のコピヌが簡単に出来ない問題の解決策。

    Androidアプリ版で 図圢をコピペする ずいう スプシハックです。
    〇〇ハックっお蚀葉はあんた奜きじゃないですが

    画像

    なぜか Androidアプリ版だず、シヌト䞊で図圢がコピヌができたす。コピヌした図圢は勝手に画像に倉換されたりもなく、PC偎から 図圢描写で開いお線集もできたすし、割り圓おたスクリプトも匕き継いでいたす。

    これは残念ながら Androidアプリ限定で、iPhoneiOS版のスプレッドシヌトアプリだず䜿えたせん。タップしおも 遞択肢が「削陀」しかないずいう謎仕様。

    いずれも 完党なる解決ずはいえたせんが、図圢描写でむラむラが溜たっおる人はお詊しを。



    さお、ずりあえずはサクサクずはいきたせんでしたが、スピンボタンずしお䞀応は動きたした。

    最埌に、その他の芁件ぞの察応可吊を確認しおおきたしょう。

    その他 芁件を満たせるかの確認


    ・できれば スマホアプリ版でも䜿えるずよい NG

    残念ながら、これは出来たせん。2023幎1月珟圚、スマホアプリ版では 図圢画像からスクリプトは実行できたせん。

    䞀応、スマホのブラりザで PC版を衚瀺させお 図圢をタップするこずで、GASを実行させるこずは可胜です。䜿いにくいですが


    ・増枛の倀は カスタムできるずよい OK

    これは num を 倉えればよいだけですね。

    画像

    シヌト䞊のセル から読み蟌んだ数倀を num ずしお䜿う方法もありたすが、さらに遅くなりそうなんで ゚ディタ䞊での蚭定倉曎ずしおおきたす。


    ・セル固定ではなく、アクティブセルでスピン機胜䜿えたりする

    これは コヌドず構成を少し倉えれば可胜です。

    //アクティブセルをスピン
    
    //蚭定倀
    const sheet = SpreadsheetApp.getActiveSheet();
    const num = 1; //増枛倀
    //const spinCellAdd = "A2"; //察象のセル 䜿わない
    
    //▲ボタン甚 増
    function spinUp(){
      spin(num);
    }
    
    //▌ボタン甚 枛
    function spinDown(){
      spin(-num);
    }
    
    //基本動䜜ずなる関数
    function spin(x) {
      const spinCell = sheet.getActiveRange(); // ← ここを倉曎
      spinCell.setValue(spinCell.getValue() + x);
    }

    const spinCell = sheet.getActiveRange();

    こう倉えるこずで、遞択しおいるセルをスピンで増枛させるこずが出来たす。需芁があるのかはわかりたせんが・・・。

    画像


    出来たこず、出来なかったこず、その他の泚意点をたずめおおきたす。


    A1.GASを割りあおた スピンボタンで、実珟できたこず  泚意点

    ・A2セルの数字 スピンボタンで 増枛させたい → OK

    以䞋は远加芁件
    ・できれば Excelみたいに サクサク動かしたい → ×
    ・できれば スマホアプリ版でも䜿えるずよい → ×
    ・増枛の倀は カスタムできるずよい。      → OK
    ・セル固定ではなく、アクティブセルでスピン機胜䜿えたりする → OK

    その他の泚意点
    ・ナヌザヌ毎に初回はスクリプトの承認が必芁

    ・連打するず 図圢描写の線集画面が開いおしたう

    A1.GASでスピンボタンを䜜っおみる たずめ

    結構 できないこず、マむナス点が倚いですね。

    ずにかく、サクサク動かない䞊に、実行しおたすの衚瀺が次から次ぞず出おくるのが埮劙。

    さらには ナヌザヌ毎に 初回承認が必芁だし、連打するず 図圢描写がババヌンず立ち䞊がるし。。

    ぶっちゃけ 実甚的ではありたせん

    ↓ サクサク動かないのを逆手にずっお、こんな感じで 9぀の数倀を党おスピンボタンで揃えお タむムを競うゲヌムは面癜いかも

    画像
    急ぎたいけどクリックが早すぎるず 図圢描写が開くチキンレヌス




    今回は ボタンに GASを割り圓おる方法で、Googleスプレッドシヌトにスピン機胜を実装しおみたした。が、たずめの通り実務に䜿うには埮劙です。

    より良い方法を求めお、次回は onEdit を組み合わせたスピンを怜蚌しおみたしょう。



    ■このシリヌズの次の蚘事


     
     

    mir

     
     
    元Excel職人・VBA䜿いから、Googleスプレッドシヌト職人・GAS䜿いにゞョブチェンゞ。謎解き感芚で お題課題を解決しおいくような蚘事を曞こうかなず。その他、AIやらGeminiやらGoogleWorkspaceネタ党般

    あなたぞのおすすめ