見出し画像

【GAS】GoogleAppsScript 100本ノック 1~10本目

(2024.7.22-更新)

GAS初学者に向けて、100本ノックを作成しました。

Youtubeやブログなどで、GASのエディターの基本的な使いたかたや、変数、四則演算、Hello World!!の出力までを解説した記事は複数ありますが、それ以降のステップを解説したメディアが見当たらず、自分自身が学習していた時、GASを使ってどんな事が出来るのかを全体像を知りたいと思っていました。

GoogleAppsScriptは、Googleの各種ツールとの連携が魅力ですので、各種ツールとの連携を一通り学べるような内容にしています。

GoogleAppsScriptに関する記事の作成のモチベーションになりますので、是非ご支援をお願いいたします。
※この記事の有料部分は「空白」になっています。

▼続きはコチラです。

1. Google SheetsへのHello World表示

問題文:
Google Sheetsに「Hello World」と表示するスクリプトを作成しなさい。

回答:

function helloWorld() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.getRange('A1').setValue('Hello World'); 
} 

解説:
このスクリプトは、Google SheetsのアクティブなシートのセルA1に「Hello World」と表示します。SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()でアクティブなスプレッドシートのアクティブなシートを取得し、getRange('A1').setValue('Hello World')でセルA1に値を設定します。


2. セルの値を取得して表示

問題文:
Google SheetsのセルA1の値を取得し、ログに表示するスクリプトを作成しなさい。

回答:

function getCellValue() {
var sheet =SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var cellValue = sheet.getRange('A1').getValue();
Logger.log(cellValue);
}


解説:
このスクリプトは、セルA1の値を取得し、Logger.logを使用してその値をログに表示します。
getRange('A1').getValue()でセルA1の値を取得します。


3. セルの値を変更する

問題文:
Google SheetsのセルA1の値を「Goodbye World」に変更するスクリプトを作成しなさい。

回答:

function changeCellValue() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.getRange('A1').setValue('Goodbye World');
}

解説:
このスクリプトは、セルA1の値を「Goodbye World」に変更します。getRange('A1').setValue('Goodbye World')でセルA1に新しい値を設定します。


4. 複数セルの値を一括変更

問題文:
Google Sheetsの範囲A1の値を一括で「Test」に変更するスクリプトを作成しなさい。

回答:

function changeMultipleCells() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.getRange('A1:C3').setValue('Test');
}

解説:
このスクリプトは、範囲A1のすべてのセルの値を「Test」に変更します。
getRange('A1:C3').setValue('Test')で指定された範囲のセルに一括で値を設定します。



5. シートの追加と名前変更

問題文:
新しいシートを追加し、そのシートの名前を「New Sheet」に変更するスクリプトを作成しなさい。

回答:

function addAndRenameSheet() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var newSheet = spreadsheet.insertSheet();
newSheet.setName('New Sheet');
}

解説:
このスクリプトは、新しいシートを追加し、そのシートの名前を「New Sheet」に変更します。
spreadsheet.insertSheet()で新しいシートを追加し、newSheet.setName('New Sheet')でそのシートの名前を変更します。


6. シートの削除

問題文:
「Old Sheet」という名前のシートを削除するスクリプトを作成しなさい。

回答:

function deleteSheet() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheetToDelete = spreadsheet.getSheetByName('Old Sheet');
 if (sheetToDelete) {
 spreadsheet.deleteSheet(sheetToDelete);
 }
}

解説:
このスクリプトは、「Old Sheet」という名前のシートを削除します。
spreadsheet.getSheetByName('Old Sheet')でシートを取得し、spreadsheet.deleteSheet(sheetToDelete)でそのシートを削除します。
シートが存在する場合にのみ削除を実行するために、if文を使用しています。


7. シートのコピー

問題文:
現在のシートをコピーして、新しいシートの名前を「Copied Sheet」に変更するスクリプトを作成しなさい。

回答:

function copySheet() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var copiedSheet = sheet.copyTo(SpreadsheetApp.getActiveSpreadsheet());
copiedSheet.setName('Copied Sheet');
}

解説:
このスクリプトは、現在のシートをコピーし、新しいシートの名前を「Copied Sheet」に変更します。
sheet.copyTo(SpreadsheetApp.getActiveSpreadsheet())でシートをコピーし、copiedSheet.setName('Copied Sheet')で新しいシートの名前を変更します。


8. 行の挿入と削除

問題文:
3行目に新しい行を挿入し、次に5行目を削除するスクリプトを作成しなさい。

回答:

function insertAndDeleteRow() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.insertRowBefore(3);
sheet.deleteRow(5);
}

解説:
このスクリプトは、3行目に新しい行を挿入し、5行目を削除します。
sheet.insertRowBefore(3)で3行目の前に新しい行を挿入し、sheet.deleteRow(5)で5行目を削除します。


9. 列の挿入と削除

問題文:
2列目に新しい列を挿入し、次に4列目を削除するスクリプトを作成しなさい。

回答:

function insertAndDeleteColumn() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.insertColumnBefore(2);
sheet.deleteColumn(4);
}

解説:
このスクリプトは、2列目に新しい列を挿入し、4列目を削除します。sheet.insertColumnBefore(2)で2列目の前に新しい列を挿入し、sheet.deleteColumn(4)で4列目を削除します。


10. 行・列の並べ替え

問題文:
範囲A1のデータを1列目(A列)を基準に昇順に並べ替えるスクリプトを作成しなさい。

回答:

function sortRange() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getRange('A1:B10');
range.sort({column: 1, ascending: true});
}

解説:
このスクリプトは、範囲A1のデータをA列を基準に昇順に並べ替えます。
range.sort({column: 1, ascending: true})で指定された範囲を1列目を基準に昇順に並べ替えます。

ここから先は

15字

¥ 100

この記事が気に入ったらチップで応援してみませんか?