86
65

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Google Apps ScriptAdvent Calendar 2015

Day 22

Google Spreadsheets 漢字に読み仮名(ひらがな・カタカナ)を付けるカスタム関数を作った

Last updated at Posted at 2015-12-22

convert_hiragana_katakana_custom_function_google_spreadsheets.gif

これはなに?

いわゆるMicrosoft Excelで言うところのPHONETIC関数です。
漢字を含むテキスト・セルを指定することで、読み仮名を出力することができます。読み仮名はひらがなのふりがなでもカタカナのフリガナでも大丈夫です。

典型的な利用シーンとしては、住所録で氏名の読み仮名を自動で(それなりに)ふりたい、というシーンがあります。ちょうど年賀状シーズンの住所録でふりがなが必要になったりしていると思いますが、ローカルのExcelではなくGoogleスプレッドシートで管理している方も多いでしょう。ExcelにはPHONETIC関数があるのにGoogleスプレッドシートには同様の機能が無いのです。

機能

  • 漢字を含むテキスト(セル)をひらがなへ変換 =HIRAGANA(input)
  • 漢字を含むテキスト(セル)をカタカナへ変換 =KATAKANA(input)
  • フラグで変換先(ひらがな/カタカナ)を指定して変換 =KANA(input, flag)

使い方

このカスタム関数はgooラボのひらがな化APIを利用しています。そのため、gooラボでのアプリケーションIDの発行とGoogle Spreadsheetsへのカスタム関数登録の2ステップで使えるようになります。

  1. gooラボ アプリケーションID発行
  2. Google Spreadsheetsへカスタム関数登録

gooラボ アプリケーションID発行

gooラボAPI利用登録ページへアクセスし、利用規約をよく読んだ上で登録を行います(登録にはGitHubアカウントが必要です)。
goolab_apiregister.jpg

GitHubの認証画面が表示されるのでAuthorizeボタンを押します。
github_authorize.jpg

登録が完了すると、アプリケーションIDが発行されて画面に表示されるのでコピーしておきます。
goolab_applicationid.jpg

この手順は、一度だけ実行すれば二度目以降は不要になります。

Google Spreadsheetsへカスタム関数登録

続いて、実際にGoogleスプレッドシート上で各カスタム関数を使えるようにします。

まず、適当なGoogle スプレッドシートを開きます。新規作成でも構いません。今回のカスタム関数は利用するスプレッドシート(Excelで言うところのBook)毎に利用設定が必要ですのでご注意下さい。
google_spreadsheets.png

次に、メニューバーの「ツール」から「スクリプト エディタ」を選択します。
google_spreadsheets_script_editor.jpg

すると、下図のような画面が開きます。別サービスに移動したように見えますが心配いりません。
google_app_script_console.png

以下のように記載されている部分を選択して削除してから、後述のスクリプトをコピー&ペーストしてください。

function myFunction() {

}

上記を削除して、下記をコピー&ペーストします。

var perform = function(output_type, sentence) {
  var endpoint = "https://labs.goo.ne.jp/api/hiragana";
  var payload = {
    "app_id": "ここにgooラボアプリケーションIDをペースト",
    "sentence": sentence,
    "output_type": output_type
  };
  var options = {
    "method": "post",
    "payload": payload
  };
  
  var response = UrlFetchApp.fetch(endpoint, options);
  var response_json = JSON.parse(response.getContentText());
  return response_json.converted;
};

/**
 * Convert Japanese KANJI to HIRAGANA by goo LAB API.
 *
 * @param {string} input The value of cell to convert.
 * @return The converted value that HIRAGANA.
 * @customfunction
 * @author Noriaki UCHIYAMA (twitter: @noriaki)
 */
function HIRAGANA(input) {
  return perform("hiragana", input);
}

/**
 * Convert Japanese KANJI to KATAKANA by goo LAB API.
 *
 * @param {string} input The value of cell to convert.
 * @return The converted value that KATAKANA.
 * @customfunction
 * @author Noriaki UCHIYAMA (twitter: @noriaki)
 */
function KATAKANA(input) {
  return perform("katakana", input);
}

/**
 * Convert Japanese KANJI to HIRAGANA/KATAKANA by goo LAB API.
 *
 * @param {string} input The value of cell to convert.
 * @param {boolean} output_type The flag of convert type. TRUE: HIRAGANA, FALSE: KATAKANA.
 * @return The converted value that specified in output_type param.
 * @customfunction
 * @author Noriaki UCHIYAMA (twitter: @noriaki)
 */
function KANA(input, output_type) {
  output_type = output_type ? "hiragana" : "katakana";
  return perform(output_type, input);
}

さらに1箇所だけ修正します。下図の反転選択されている部分を、先ほど発行したgooラボアプリケーションIDで置き換えます。
google_app_script_console_pasted.jpg

英数字の羅列のアプリケーションIDをペーストするとこんな感じです(自身のアプリケーションIDは非公開情報なので一部マスクしています)。
google_app_script_console_pasted_applicationid.jpg

「ファイル」→「保存」(またはCtrl+S/Command+S)すると、下図のようにプロジェクト名を聞いてくるので、適当な名前を付けて「OK」をクリックします(デフォルト名称のままでもOKです)。
google_app_script_project_name.png

おめでとうございます。これで完了です。

利用方法は冒頭のGIFをご覧いただくと分かるかと思いますので再掲しておきますね。
convert_hiragana_katakana_custom_function_google_spreadsheets.gif

別のスプレッドシートで利用する時は、gooラボアプリケーションID入りのコードを直接コピー&ペーストすれば、ほとんどの手順が省略でき、「スクリプトエディタを開く」→「アプリケーションID入りのコードをペーストして保存」だけでOKですね。

簡単ですがGoogle Apps Scriptの利用例として、皆さま良いGoogleスプレッドシート生活を!!

参考情報

86
65
7

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
86
65

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?