【スプレッドシート】ASC関数だとカタカナまで半角になる…。英数字だけを狙って変換する方法

住所の数字だけを半角にしたいけど、どうやるの…

スプレッドシートで顧客リストや住所録を整理しているとき、こんな悩みにぶつかりませんか?

なんとかしようとして、真っ先に試すのが「ASC関数」だと思います。

しかし、ASC関数を使うと、こんな壁にぶつかります。

数字だけ半角になればいいのに、カタカナまで半角になってる…

ASC関数を使ったら、カタカナも半角に変換される

結局、半角になってしまったカタカナを目視で探して、手作業で全角に打ち直す…

MASA

気付けば二度手間になっていて、余計に時間がかかってしまいますよね

そんなジレンマを解決するには、GAS(Google Apps Script)を使うのが正解です。

GASを使えば、ボタン一つ押すだけで「カタカナは全角のまま、英数字だけを半角に変換」するツールを作ることができます。

↓↓サンプル動画はこちら↓↓

MASA

英数字だけが半角で、カタカナは全角になってるのが確認できますね!

この記事では、ボタン1つ押すだけで、カタカナは全角のまま、英数字だけを半角に変換する方法を解説します。

コピペだけでOKなので、ぜひ試してみてください!

目次

【コピペOK】英数字のみ半角に変換する方法

ここからは実際にGAS(Google Apps Script)を使って、カタカナは全角のまま、英数字だけを半角に変換する方法について解説していきます。

MASA

GASの立ち上げ方法は省略してます。
立ち上げ方法から知りたい方は、以下の記事をご参照ください。

コードをコピーして貼り付け

以下のコードをコピーして、Apps Scriptのエディタに貼り付けてください。

JavaScript
function onOpen() {
  SpreadsheetApp.getUi()
    .createMenu('変換ツール')
    .addItem('英数字だけ半角にする', 'convertCharacter') 
    .addToUi();
}

function convertCharacter() {
const sheet = SpreadsheetApp.getActiveSheet();
  const lastRow = sheet.getLastRow();
  
  // ▼ 設定エリア:ここを変えるだけで対象列が変わります ▼
  const targetCol = 1; // A列なら1, B列なら2, C列なら3...
  const startRow  = 2; // 2行目から開始(1行目のヘッダーを無視するため)
  // ▲ 設定エリアここまで ▲

  if (lastRow < startRow) return;

  const range = sheet.getRange(startRow, targetCol, lastRow - startRow + 1, 1);
  const values = range.getValues();

  console.log(values)

  // ここで「英数字と記号だけ」を選んでいます
  const targetRegex = /[A-Za-z0-9!-/:-@[-`{-~]/g;

  const newValues = values.map(row => row.map(cell => {
    if (typeof cell !== 'string') return cell;
    return cell.replace(targetRegex, function(s) {
      return String.fromCharCode(s.charCodeAt(0) - 0xFEE0);
    });
  }));
  
  range.setValues(newValues);
}
JavaScript

自分のシートに合わせてカスタマイズ

どの列を変換したいですか?

コードの以下の部分を見てください。

JavaScript
  const targetCol = 1; // A列なら1, B列なら2, C列なら3...
JavaScript

ここでは「何列目を変換するか」を数字で指定します。

A列、B列などのアルファベットではなく、左から数えて何番目か(1, 2, 3…)を入力してください。

A列を直したい場合

1

B列を直したい場合

2

F列を直したい場合

6

MASA

「C列の商品名を直したい!」という場合は、ここを 3 に書き換えるだけでOKです!

何行目からスタートしますか?

次に、その下の行を見てください。

JavaScript
  const startRow  = 2; // 2行目から開始(1行目のヘッダーを無視するため)
JavaScript

ここでは「何行目から変換を始めるか」を指定します。

基本的に 2 のままでOK です。

なぜなら、多くのスプレッドシートの1行目は「氏名」「住所」といったヘッダーが入っていることが多いからです。

MASA

2は、ヘッダー行を無視した2行目から始めるって意味ですね!

保存して実行

自分の環境に合わせた変更が出来たら、以下のステップを踏むだけでOKです。

STEP
「Command + S」or「Ctrl+ S」で保存
STEP
「convertCharacter」を選択
STEP
「実行」ボタンをクリック
STEP
権限の承認を突破
  • 「権限を確認」をクリック
  • アカウントを選択
  • 左下の「詳細」をクリック
  • 一番下の「無題のプロジェクト(安全ではないページ)に移動」をクリック
  • 「許可」をクリック
MASA

この一連の流れが分からない方向けに、こちらの記事で画像付きで解説してます!

スクリプトの実行と権限の突破方法

GASを実行したスプレッドシートに戻ってみると、カタカナは全角のまま、英数字だけが半角になってるのが分かると思います。

最後に、ブラウザの「更新ボタン」を一度押してみてください。

画面が再読み込みされると、メニューバーに「変換ツール」という項目が追加されます。

「変換ツール」の場所
MASA

今後は、ここをクリックするだけで、いつでも実行できるようになります!

【もっと便利に】「もっとこうしたい」などありませんか?

今回紹介したコードは「特定の列をまとめて変換する」というシンプルなものです。

個人のメモや単純なリストならこれで十分ですが、会社の業務でガッツリ使おうとすると、こんな物足りなさが出てくるかもしれません。

ついでにハイフンも消したい!

例えば、電話番号の 090-1234 は、このツールで 090-1234 になります。

一見きれいですが、システム登録などの場面では「ハイフン無しじゃないとエラーになる」というケースも多いですよね?

「半角にするついでに、不要な文字も削除したい」といったデータ整形までは、このコードでは対応できません。

全部自動でやってほしい!

「CSVを貼り付けたら、その瞬間に勝手に直ってほしい」

「毎朝9時に、全シートを自動で半角変換してほしい」

誰かが「変換ツール」ボタンを押す作業が残っている限り、押し忘れなどの恐れもあります。

完全自動化するには、もうワンステップ上の設定が必要です。

他の列も同時に半角にしたい!

今回のコードは、指定した1つの列しか変換できません

でも実務では、

「住所(A列)を直したあとに、電話番号(D列)と商品コード(F列)も直したい」ということが頻繁にありますよね?

「複数の列を、ボタン一発でまとめて変換したい!」

と思う方もいると思います。

もっと高機能なツールが欲しいならお任せください!

どうせやるなら、ウチの会社のルールに完璧に合わせたい!

社員が使うから、絶対にミスが起きない安全なツールにしたい

そうお考えの方は、ぜひ私に一度ご相談ください。

MASA

あなたの業務フローにカチッ!とハマる「オーダーメイドの自動化ツール」を作成します!

細かい条件指定

「会社名は全角、電話番号は半角」など、複雑なルールに対応します。

完全自動化

ファイルを開いた瞬間や、データを貼り付けた瞬間など様々なケースに対応します。

安全装置

データバックアップや、操作ミス防止機能を組み込みます。

まずは「今の作業のどこが面倒か」をお問い合わせから教えてください。

MASA

あなたに最適な自動化プランをご提案します!

まとめ

今回は、Googleスプレッドシートで「カタカナは全角のまま、英数字だけを半角にする」GASツールの作り方を解説しました。

この記事のポイントをまとめます。

ASC関数はちょっと扱いづらい

一応全部半角になるが、カタカナまで半角になり修正の手間が増えます。

GASを使えば英数字だけを狙い撃ち

GASを使えば、カタカナだけ全角のままで変換出来ます。

また、ボタン1つクリックしたら自動で半角になるシステムも構築可能。

まずは今回紹介したコードをコピペして、一瞬でデータが整う快感を味わってみてください

もし使っていく中で、

「もっと自動化したい!」 「ウチの会社独自のルールも組み込みたい!」

という悩みが出てきたら、遠慮なくご相談ください。

MASA

あなたの業務を、さらに快適にするお手伝いができること楽しみにしています!

  • URLをコピーしました!

MASAのアバター MASA MASA|GAS開発者

GAS開発者のMASAです。
スプレッドシート業務の自動化や効率化の仕組みづくりを提供しています。
ブログではの自動化や効率化のTipsについて発信しています。

目次