日本語をポケベルのコードに変換してメールを送るGAS
ほぼお遊びです。
ポケベルのコードに変換
携帯電話が普及する前はポケベルが主流でした。公衆電話で数字を入力すると、相手先のデバイスにカタカナが表示される機能がありました。
カタカナに変換させるために、電話機で、「ア」なら11、「イ」なら12と入力する必要がありました。
今回のGASは逆です。
送信者側が日本語を入力すると相手先に数字が届く仕様です。
このGSの使い方
いたって簡単です。
A2に日本語(ひらがな)かアルファベットを入れる。
B2に送信先のアドレスを入れる。
そして、メニューバーにある「ポケベル変換」から「変換と送信」を選択すると、日本語は変換されて、相手先にメールが送られるようになっています。
2行目以降は最終行のA列とB列に入力されていれば実行します。
GASとは
GASは簡単に言えばグーグルが提供しているプログラミング言語です。無料で利用できます。
シフト表のサンプルコード
GASをある程度知っている方…下のコードをコピペすれば完了です。
GASをあまりよく分からない方…コードの下に説明を詳しく入れています。ご参照ください。
function onOpen() {
const ui = SpreadsheetApp.getUi();
ui.createMenu("ポケベル変換")
.addItem("変換と送信", "convertAndSend")
.addToUi();
}
function convertAndSend() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// ヘッダーを設定
if (!sheet.getRange("A1").getValue()) {
sheet.getRange("A1").setValue("ひらがな・数字・ABC");
sheet.getRange("B1").setValue("送信先");
sheet.getRange("C1").setValue("ポケベル変換");
sheet.getRange("D1").setValue("タイムスタンプ");
}
// A列~D列の幅を180ピクセル
sheet.setColumnWidths(1, 4, 180);
// A列の最終行を取得
const lastRow = sheet.getLastRow();
const range = sheet.getRange(lastRow, 1, 1, 4);
const [text, email, converted, timestamp] = range.getValues()[0];
// 変換対象があるか確認
if (!text || converted) {
Logger.log("変換対象がないか、既に変換済みです。");
SpreadsheetApp.getUi().alert("変換対象がないか、既に変換済みです。");
return;
}
// 文字列をポケベルに変換
const convertedText = convertToPagerCode(text);
Logger.log(`変換結果: ${convertedText}`);
// C列に変換結果を設定
sheet.getRange(lastRow, 3).setValue(convertedText);
// メールアドレスがあれば送信
if (email) {
MailApp.sendEmail(email, convertedText, convertedText);
Logger.log("メールを送信しました");
// D列にタイムスタンプを設定(yyyy/MM/dd HH:mm 形式)
const timestamp = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "yyyy/MM/dd HH:mm");
sheet.getRange(lastRow, 4).setValue(timestamp);
} else {
SpreadsheetApp.getUi().alert("送信先のメールアドレスがありません。");
}
}
function convertToPagerCode(text) {
const kanaToPager = {
"あ": "11", "い": "12", "う": "13", "え": "14", "お": "15",
"か": "21", "き": "22", "く": "23", "け": "24", "こ": "25",
"さ": "31", "し": "32", "す": "33", "せ": "34", "そ": "35",
"た": "41", "ち": "42", "つ": "43", "て": "44", "と": "45",
"な": "51", "に": "52", "ぬ": "53", "ね": "54", "の": "55",
"は": "61", "ひ": "62", "ふ": "63", "へ": "64", "ほ": "65",
"ま": "71", "み": "72", "む": "73", "め": "74", "も": "75",
"や": "81", "ゆ": "83", "よ": "85",
"ら": "91", "り": "92", "る": "93", "れ": "94", "ろ": "95",
"わ": "01", "を": "02", "ん": "03", "”": "04", "゜": "05"
};
const alphaToPager = {
"A": "16", "B": "17", "C": "18", "D": "19", "E": "10",
"F": "26", "G": "27", "H": "28", "I": "29", "J": "20",
"K": "36", "L": "37", "M": "38", "N": "39", "O": "30",
"P": "46", "Q": "47", "R": "48", "S": "49", "T": "40",
"U": "56", "V": "57", "W": "58", "X": "59", "Y": "50", "Z": "66"
};
const symbolToPager = {
"!": "68", "?": "67", "#": "87", "¥": "76", "%": "89",
"&": "77", "*": "86", "(": "82", ")": "84"
};
let result = "";
for (let char of text) {
if (kanaToPager[char]) {
result += kanaToPager[char];
} else if (alphaToPager[char.toUpperCase()]) {
result += alphaToPager[char.toUpperCase()];
} else if (symbolToPager[char]) {
result += symbolToPager[char];
} else if (!isNaN(char)) {
result += " " + char;
} else {
result += char; // 対応する変換がない場合はそのまま
}
}
Logger.log(`文字: ${text} => ポケベル: ${result}`);
return result;
}
GASの基本から
Dドライブにアクセスして、スプレッドシートを開きます。
拡張機能からAppScriptを選択します。
下のような画面が出てきたら、function myfunctionと書かれている部分をすべて消します。
次に上記のコードをすべて選択して貼り付けます。
保存を押し、実行を押します。
以下、赤印で囲んだところを選択
実行ログに実行完了と表示されたら、スプレッドシートを見て下さい。
カスタムメニューという項目が増えています。このファイルを開けば、次回以降も表示されます。他のファイルには影響はありません。