【GASで簡単自動化】ECサイトのCSVをスプレッドシートに自動転記するGASツール
「ECサイトから出力されたCSVデータをGoogleスプレッドシートの購入リストに自動転記するツール」です。
日々の業務で繰り返し行われるデータ転記作業を効率化するために作成しました。
このブログは、Google Apps Script(GAS)を使った自作ツールの記録や、開発の過程での気づきをまとめたものです。
丁寧な解説というより、「こんなこともGASでできるんだ」というアイディアのきっかけになれば幸いです。
やりたかったこと
ECサイトから出力した注文データを、毎回スプレッドシートに手作業で転記するのが面倒でした。
コピペ作業が多いとミスが出やすいし、人に作業を引き継ぐのも大変です。
そこで、誰でも簡単に、正確にデータを転記できるツールを作りたいと思い、GASで自動化することにしました。
使ったロジック・ポイント
このツールを作るにあたって、以下のようなロジックや工夫を取り入れました。
「どうやって作ったのか」の流れがイメージできるようにまとめています。
① スプレッドシート操作
SpreadsheetApp.getActiveSpreadsheet()… 今開いているスプレッドシートを取得するgetRange()・getValues()… コピーしたい範囲のデータをまとめて取得するsetValues()… データを一括で貼り付けるgetLastRow()… データが入っている最終行を調べ、追記位置を判断する
② データの重複チェック
- 申込IDをキーに、貼り付け先に同じデータがすでにないかを判定して二重登録を防止
③ 表示や操作の工夫
- 処理前にbrowser.msgBoxを使って、確認ダイアログを表示させて誤操作を防ぐ
- 列の並べ替えは GAS ではなく、ARRAYFORMULA などスプレッドシート関数を活用して対応
詳細なサンプルコードは以下で紹介しています。ぜひ自分の作業に合わせてカスタマイズしてみてください!
▶ コード例を見る
コード例
GASの操作が初めての方は、コードを開く・実行する手順をご確認ください。初回実行時の認証については、認証ガイドで紹介しています。
基本的なデータ転記のコピペのコードです。これを少しずつ書き換えて自分のツールに合うようにカスタマイズしてきました
確認ダイアログは誤操作をした時に処理を実行させないようにしています。
自分がGASを作る時は大体この確認ダイアログを使っています。
function copyRangeToAnotherSheet() {
// 確認ダイアログを表示
const response = Browser.msgBox(
'確認',
'貼り付けを開始してもよろしいですか?',
Browser.Buttons.OK_CANCEL
);
// OKを押した場合のみ実行
if (response == 'ok') {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sourceSheet = ss.getActiveSheet(); // 現在のシート
const targetSheet = ss.getSheetByName('貼り付け先シート名'); // ←貼り付け先シート名に変更
const range = sourceSheet.getRange('A1:B5'); // コピーする範囲
const values = range.getValues(); // 値を取得
targetSheet.getRange('A1:B5').setValues(values); // 同じ範囲に貼り付け
Browser.msgBox('貼り付けが完了しました');
} else {
Browser.msgBox('処理はキャンセルされました');
}
}
メモ・反省・次回やりたいこと
列の入れ替えは GAS でも書けるが、スプレッドシート関数で十分対応できたのでそちらで済ませました。
今回の処理はシンプルだったので、大きく詰まったところは特にありませんでした。
最初は貼り付け機能だけ作り、GASに慣れるうちに少しずつ機能を追加できたのが良かったです。
次は、PDF の自動生成やメール送信まで一連の流れを自動化するツールを作ってみたいです。
関連リンク
次に学べる内容や、関連する実例はこちらをご覧ください。
自分の業務に自動化機能を追加したい方へ
注文データの転記・集計など、データ処理を自動化する機能を追加したい方はご相談ください。今の作業と希望する自動化を伺い、対応できる範囲をご案内します。