yumetodoの旅とプログラミングとかの記録

旅や登山の記録やプログラミング関連の話とかフリーソフト紹介とか

そこはかとなくGooglespreadSheetの関数を作る:asc()

表題の通り。Microsoft Office ExcelやLibre Office Calcにはasc()関数があって、全角カタカナを半角カタカナに変換出来るんだけど、GoogleSpreadsheetにはそんな関数はない。

ならば作るしかないよね?

というわけで作ってみた。残念ながら記号とかを変換する機能は実装していない。

え?速度が遅い?私に一体何を期待してるんだい?

ちなみに似たような関数であるPHONETIC関数(ひらがな→全角カタカナ, 全角英数→半角英数)については

SpreadsheetsでExcelのPHONETIC的なことがしたい!

http://ryoichi0102.hatenablog.com/entry/2013/09/17/155804

を参考に。私がプログラミングするときも参考にしたしね。

使い方

  1. 適当にGoogle DriveからSpreadsheetsを作る
  2. 「ツール」→「スクリプトエディタ」で適当にプロジェクトを作製
  3. コピペ
  4. 使うセルで「=asc(D2)」みたいにすればいいんじゃない?

code

適当なhighlighterがなかったのでideaone.comを利用した。そういやこれ、Google Apps Script(GAS)って言うらしいね。

引数
置換対象文字列(string)
戻り値
置換された文字列
機能
引数中の全角カタカナを半角カタカナに置換します、記号の半角化は実装されていません

Licence

The MIT License (MIT)

Copyright (c) 2015 yumetodo

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

編集後記

私はJavaScriptを殆ど書いたことがないから、どうやって高速化したらいいのか検討もつかない。なんとなくfor文は避けたほうがいいんじゃないか?くらいしか思い浮かばなかった。同じ文字列に対してreplaceを複数回呼ぶのと、replaseのinline関数でif文で処理分けるのとどっちが早いんだろ。・・・まあいいや、動いたし。C99/C++14erにはわからない話。