2022/05/18に更新

【GASで時短】ひらがなをカタカナに変換する

スプレッドシート小技

選択範囲の「ひらがな」を「カタカナ」に変換するGoogle Apps Scriptです。ルビやフリガナを平仮名で書いてしまったけどやっぱり片仮名にしたくなったときにどうぞ。

こんな悩みを解決します


  • 「フリガナ」と指定されていたのに「ひらがな」で書いてしまった・・・!直すの面倒・・・!

用意するもの


特にありません。今お使いのスプレッドシートに組み込めます。

このスクリプトで出来ること


  • 指定したセル範囲にある「ひらがな」を「カタカナ」に変換することができます。

使い方


1.データの準備

ダミー個人情報サービスを利用して、適当なリストを作りました。
「フリガナ」と書いてあるのにひらがなで書いてしまいました(という設定)。

このスクリプトは選択中のセルに対して処理しますので、変換したい範囲を選択します。
テストとして一部分だけにひらがなが含まれる「氏名」も選択しています。

2.スクリプトの実行

上のメニューにある「スクリプト実行」から「選択範囲のひらがなをカタカナに変換する」を実行します。

「選択範囲にある「ひらがな」を「カタカナ」に変換します。よろしいですか?」と聞かれますので、問題なければOKを押します。
キャンセルを押した場合はスクリプトが終了します。

3.結果の確認

ひらがながカタカナに変換されました。
ひらがな以外の部分はそのままです。

スクリプト


/**
 * このスクリプトの説明、使い方はこちら。
 * https://myfunc.jp/items/00086/index.html
 */

function onOpen() {
  // スプレッドシートを開いたときに実行される関数

  // UIの取得
  const ui = SpreadsheetApp.getUi();

  // メニューの表示名
  const menu = ui.createMenu('スクリプト実行');

  // メニューに追加するボタン
  menu.addItem('選択範囲のひらがなをカタカナに変換する', 'convert_hiragana_to_katakana');

  // メニューを画面に追加する
  menu.addToUi();

}


function convert_hiragana_to_katakana() {

  // UIを取得
  const ui = SpreadsheetApp.getUi();

  // 実行を確認する
  const response = ui.alert('選択範囲にある「ひらがな」を「カタカナ」に変換します。\nよろしいですか?', ui.ButtonSet.OK_CANCEL);

  // キャンセルが押されたらスクリプトを終了する
  if (response == ui.Button.CANCEL) {
    return;
  }

  // 現在開いているスプレッドシートオブジェクトを取得
  const ss = SpreadsheetApp.getActiveSpreadsheet();

  // 開いているシートオブジェクトを取得
  const sheet = ss.getActiveSheet();

  // 変換用のひらがなリストを準備
  const hiragana = ['あ', 'い', 'う', 'え', 'お', 'か', 'き', 'く', 'け', 'こ', 'さ', 'し', 'す', 'せ', 'そ', 'た', 'ち', 'つ', 'て', 'と', 'な', 'に', 'ぬ', 'ね', 'の', 'は', 'ひ', 'ふ', 'へ', 'ほ', 'ま', 'み', 'む', 'め', 'も', 'や', 'ゆ', 'よ', 'ら', 'り', 'る', 'れ', 'ろ', 'わ', 'ゐ', 'ゑ', 'を', 'ん', 'が', 'ぎ', 'ぐ', 'げ', 'ご', 'ざ', 'じ', 'ず', 'ぜ', 'ぞ', 'だ', 'ぢ', 'づ', 'で', 'ど', 'ば', 'び', 'ぶ', 'べ', 'ぼ', 'ぱ', 'ぴ', 'ぷ', 'ぺ', 'ぽ', 'ぁ', 'ぃ', 'ぅ', 'ぇ', 'ぉ', 'っ', 'ゃ', 'ゅ', 'ょ', 'ゔ'];

  // 変換用のカタカナリストを準備。並び順はひらがなと同じ。
  const katakana = ['ア', 'イ', 'ウ', 'エ', 'オ', 'カ', 'キ', 'ク', 'ケ', 'コ', 'サ', 'シ', 'ス', 'セ', 'ソ', 'タ', 'チ', 'ツ', 'テ', 'ト', 'ナ', 'ニ', 'ヌ', 'ネ', 'ノ', 'ハ', 'ヒ', 'フ', 'ヘ', 'ホ', 'マ', 'ミ', 'ム', 'メ', 'モ', 'ヤ', 'ユ', 'ヨ', 'ラ', 'リ', 'ル', 'レ', 'ロ', 'ワ', 'ヰ', 'ヱ', 'ヲ', 'ン', 'ガ', 'ギ', 'グ', 'ゲ', 'ゴ', 'ザ', 'ジ', 'ズ', 'ゼ', 'ゾ', 'ダ', 'ヂ', 'ヅ', 'デ', 'ド', 'バ', 'ビ', 'ブ', 'ベ', 'ボ', 'パ', 'ピ', 'プ', 'ペ', 'ポ', 'ァ', 'ィ', 'ゥ', 'ェ', 'ォ', 'ッ', 'ャ', 'ュ', 'ョ', 'ヴ'];

  // 選択中のrangeオブジェクトを取得
  const range = sheet.getActiveRange();

  // 選択中セルの値を取得
  const values = range.getValues();

  // 取得したセルを1つずつループして変換していく
  for (let i = 0; i < values.length; i++) { // 行のループ

    for (let j = 0; j < values[i].length; j++) {// 列のループ

      // セルの文字1文字ずつ分割して配列にする
      let text_split = values[i][j].split('');

      // 置換後の文字を入れておく変数を用意
      let text_converted = [];

      // セル内の文字を1文字ずつ変換していく
      for (let i = 0; i < text_split.length; i++) {

        // 文字がひらがなリストの何番目にマッチするか探し、その同じkeyのカタカナを取得
        let char_converted = katakana[hiragana.indexOf(text_split[i], 0)];

        if (char_converted == null) {
          // ヒットしなかった場合は変換せずにそのまま追加する
          text_converted.push(text_split[i])
        } else {
          // ヒットした場合は変換後のカタカナを追加する
          text_converted.push(char_converted);
        }
      }

      // 変換後文字列が入った配列を連結する
      values[i][j] = text_converted.join('');
    }
  }

  // セルへ書き込む
  range.setValues(values);

}

関連するアプリ


【GASで便利に】指定した文字数でセルに分割する(行方向)

1つのセルに入力されている文字列を、指定した文字数で分割するGoogle Apps Scriptです。区切りに使用する文字が無くても大丈夫です。行方向に分割します。

【GASで便利に】指定した文字数でセルに分割する(列方向)

1つのセルに入力されている文字列を、指定した文字数で分割するGoogle Apps Scriptです。区切りに使用する文字が無くても大丈夫です。列方向に分割します。

【GASで時短】カタカナをひらがなに変換する

選択範囲の「カタカナ」を「ひらがな」に変換するGoogle Apps Scriptです。ひらがな→カタカナを作ったので逆バージョンも作ってみました。

【GASで時短】全角数字を半角数字に変換する

全角で入力された数字を半角の数字に変換するGoogle Apps Scriptです。全角半角が入り混じったデータを半角に揃えたいときにどうぞ。

【GASで時短】半角数字を全角数字に変換する

半角で入力された数字を全角の数字に変換するGoogle Apps Scriptです。全角→半角版を作ったので逆バージョンも作りました。全角にしたい人は・・・少なそうな気もしますが・・・

【GASで時短】半角カタカナを全角カタカナに変換する

選択範囲の「半角カタカナ」を「全角カタカナ」に変換するGoogle Apps Scriptです。

タグ一覧

最新のアプリ

人気のアプリ

ページトップに戻る
myfunc.jp