九九の表を作る
こんな感じで九九の表を作る方法です。
四則演算だけでも作れます
それは…考えればそうなんです。
掛け算の集合なので…。
ひとまず、1~9の列と行を作ります。
列×行の掛け算をして、あとは参照で・・・
というわけには、いかないようです。
このままコピー貼り付けをすると、相対参照の結果によって、I9は「H9×I8」という状態になります。ここは「81」にならないといけないはずです。
ここは、「絶対参照」を使えば、解決できます。
$A列絶対参照固定 × $数字側の絶対参照固定
これで、上手くいくと思います。
完成
はい、これで九九の表が完成です!!笑
なんで?という方は、1行ずつ貼り付けして、試してみると良いかもしれません。
本題
ということで、GASでこれを出力してみます。
スクリプトエディタを開きます。
プロジェクト名称
「MultiplicationTable」といった感じで名称を付けておきます。
シートを取得
まずは、シートを取得します。
//アクティブシートを取得する
var sheet = SpreadsheetApp.getActiveSheet();
for文
表に九九を入力するためのfor文を設定します。
for( var i = 1; i < 10; i ++){
for (var j = 1; j < 10; j ++){
sheet.getRange(i,j).setValue(i*j);
}
}
承認が必要です
最初の実行時に「承認が必要です」と表示されるので「許可を確認」を押します。
許可を与えるアカウントを選択します。
このアプリは確認されていません
「このアプリは確認されていません」と表示されますので、「詳細を表示」>「XXXX(ファイル名)(安全ではないページ)に移動」を選択します。
Googleアカウントへのアクセスをリクエスト
Googleアカウントへのアクセスを許可します。
準備完了です。実行してみましょう。
九九表が完成
一瞬で九九表が出来ました!
デバッグで確認
for文が、次々にセルに値を書き込んでいます。
getRange
getRangeは、指定した行列番号orセルの値を取得する、というオブジェクトです。
変数=sheet.getRange(行番号,列番号);
変数=sheet.getRange(セル番号(A1など));
※sheetは先に指定した変数名(アクティブシートを取得)
で指定をします。
1行目1列目なら
sheet.getRange(1,1);
9行目5列目なら
sheet.getRange(9,5);
という感じです。
これをfor文でループさせることで九九表になります!
まとめ
行列数が多い場合は、セルに関数を作るよりスクリプトを組んで自動化させた方が早い場合もあるかと思います!ご参考下さい★
\(^o^)/