今回のエントリーでは全角英数字を半角英数字に一括で変更するスプレッドシートのスクリプトを紹介していきます。
こんな人が書いています
Macユーザー歴20年超のめんどくさがりインハウスデザイナー。
Macでも無料で使えるスプレッドシートの使い方
無料で使えるアプリなどを紹介
今回は備忘録も兼ねて、グーグルスプレッドシートで全角英数字を半角英数字に一括で変更するスクリプトを紹介します。
Macで表計算ソフトを使おうとすると定番のエクセルは、有料になってしまうんですね。
そのため、無料で使えてエクセルデータとも親和性が高いGoogleスプレッドシートが使いやすいので、私は仕事で使う表計算ソフトは主にGoogle スプレッドシートを使っています。
今回はそんなGoogle スプレッドシートを使う時に知っていると便利な「英数字の全角のデータを簡単に半角に一括で変更できるスクリプト」を作成し使う方法をご紹介します。
英数字の全角を半角に変更できるスクリプトの使いどころ
今回紹介するスクリプトの使いどころとしては、
「クライアントや社内営業から送付されたデータに全角半角が混在している」
というときにデータを整形するのに便利です。1〜10個程度のリストであれば、このようなスクリプトに頼らなくてもサクッと修正できますが、規模の大きい商品カタログのような、300や500以上のものリストとなると全角 → 半角に変換するのも時間がかかってしまいます。ましてやイラストレーター上に配置してからの修正となるともっと時間がかかっていまいますね。
そんなときにスプレッドシート上で一括でサクッと変換できるこのスクリプトが大活躍します。
英数字の全角を半角に変更できるスクリプト
今回紹介するスクリプトは全角の英数字を半角の英数字に一括で変更できるスクリプトです。このGoogleのスクリプトは通称GAS(Google Apps Script)と呼ばれ、Googleのアカウントを持っていれば誰でも無料で使用することができます。
今回のスクリプトは、プログラムが一切わからない方でもコピペで使用できるので、ノンプログラマーの方も安心して使用することができます。
後ほど紹介する手順をそのままなぞればOKなのでぜひチャレンジしてみてください。
全角を半角に変更するにはASC関数もあるが・・・
今回処理を希望するような全角を半角に変更する方法として、GoogleスプレッドシートのASC関数という関数もあります。が、この関数を使用すると英数字以外の文字、つまり全角のカタカナなども半角に変更してしまうのです。
たとえばASC関数を使うと
MAC 0524 グラフィックデザインの新しい教科書
という文字列が
MAC 0524 グラフィックデザインの新しい教科書
へと変更されてしまいます。英数字については半角に変更したいのだけど、カタカナは半角にしたくないというケースは多いかと思いますが、そうなるとASC関数は希望のデータ処理にはなりません。
そこで使えるのが今回紹介するスクリプト。このスクリプトは英数字のみを全角から半角に変換することができます。
スクリプトの使用手順
このスクリプトの作成と使用手順を下記にまとめました。
1.まずはGoogleスプレッドシートの全角を半角に変更したいファイルを開きます。(今回はサンプルでこちらのファイルを使用します)。下記のとおり英数字は全角になっています。
2.ツールからスクリプトエディタを選択します。
3.Apps Scriptの画面が開かれます。
4. まずプロジェクト名を変更します。「無題のプロジェクト」となっているところをクリックすればプロジェクト名を変更できます。
5.下記のスクリプトをペーストして保存します。
↓ペーストするスクリプト
var App = SpreadsheetApp; var sheet = App.getActiveSheet(); var regex = /[A-Za-z0-9]/g; var convertFullToHalf = function () { var lastRow = sheet.getLastRow(); var lastColumn = sheet.getLastColumn(); var targetCells = []; var allCells = sheet.getRange(1, 1, lastRow, lastColumn).getValues(); for (var i = 0; i < lastRow; i++) { for (var j = 0; j < lastColumn; j++) { var cell = String(allCells[i][j]); var target = convertCharacters(cell); if (target !== null && target !== undefined && target !== ”) { targetCells.push({ value: target, row: i + 1, column: j + 1, }); } } } for (var k in targetCells) { var row = targetCells[k].row; var column = targetCells[k].column; var value = targetCells[k].value; sheet.getRange(row, column).setValue(value); } }; var convertCharacters = function (string) { if (string.match(regex) === null || string.slice(0, 1) === ‘=’) { return; } return string.replace(regex, function (s) { return String.fromCharCode(s.charCodeAt(0) – 0xfee0); }); };
6. 承認を求められるので、承認プロセスを進めます。
Googleアカウントの選択を求められます。
このアプリはGoogleで確認されていません。と表示が出るので詳細をクリック。
詳細をクリックした下に出てくるスクリプト名(安全ではないページ)に移動をクリックします。
Googleアカウントへのアクセスをリクエストしています、と表示されるので許可をクリック。
実行ログに実行完了と表示されればスクリプトが使用完了です。このスプレッドシート に対しては以降このスクリプトを使用する時には承認のフローは必要ありません。
7. スクリプトの実行が完了です。データをみると全角英数が半角に変更されています。
以上が全角を半角に変換するスクリプトの作り方とその手順でした。
ここで作成したスクリプトは「コンテナバインドスクリプト」と呼ばれるものでスプレッドシートやドキュメント、フォームといった親ファイルに紐づく形で保存される形式のスクリプトプロジェクトです。そのため呼び出す時は親元のファイル(今回でいうと全角、半角変換というスプレッドシート のデータ)を立ち上げてツールからスクリプトを選ぶか「Apps Script dashboard」にアクセスします。「Apps Script dashboard」には下記のURLからアクセスすることができます。
まとめ
今回は全角英数字を半角に変更するスクリプトの紹介でした。
全角英数を半角に変換する方法は他にもいろいろあるかと思いますが、一括でサクッと変更できるこの方法はかなり便利で助かっています。
仕事で、全角半角が入り混じったファイルを扱うことが多く、イラレでいじる前にできるだけデータを整えておきたいときなんかにホント助かっていますね。
ちなみに今回のスクリプトはこちらのサイトから情報をいただき使わせていただきました。
スプレッドシートでスクリプトを使った処理は結構便利なものが多いので、また別の機会に時短につながるスクリプトを紹介していきます。
それでは、今回はこのへんで。