サクラエディタJavaScriptマクロ|ひらがなからカタカナへの変換

// サクラエディタのJavaScriptマクロ

// 1. 文書全体を選択する
Editor.SelectAll();

// 2. 選択範囲のテキストを取得する
var text = Editor.GetSelectedString(0);

// 選択範囲がない場合は何もしない
if (text !== "") {
    // 3. テキストの変換処理

    // 改行コードをUNIX系のLFに統一
    text = text.replace(/\r\n/g, "\n").replace(/\r/g, "\n");

    // ひらがなからカタカナへの変換マッピング
    var hira2kata = {
        "あ":"ア", "い":"イ", "う":"ウ", "え":"エ", "お":"オ",
        "か":"カ", "き":"キ", "く":"ク", "け":"ケ", "こ":"コ",
        "さ":"サ", "し":"シ", "す":"ス", "せ":"セ", "そ":"ソ",
        "た":"タ", "ち":"チ", "つ":"ツ", "て":"テ", "と":"ト",
        "な":"ナ", "に":"ニ", "ぬ":"ヌ", "ね":"ネ", "の":"ノ",
        "は":"ハ", "ひ":"ヒ", "ふ":"フ", "へ":"ヘ", "ほ":"ホ",
        "ま":"マ", "み":"ミ", "む":"ム", "め":"メ", "も":"モ",
        "や":"ヤ", "ゆ":"ユ", "よ":"ヨ",
        "ら":"ラ", "り":"リ", "る":"ル", "れ":"レ", "ろ":"ロ",
        "わ":"ワ", "を":"ヲ", "ん":"ン",
        "が":"ガ", "ぎ":"ギ", "ぐ":"グ", "げ":"ゲ", "ご":"ゴ",
        "ざ":"ザ", "じ":"ジ", "ず":"ズ", "ぜ":"ゼ", "ぞ":"ゾ",
        "だ":"ダ", "ぢ":"ヂ", "づ":"ヅ", "で":"デ", "ど":"ド",
        "ば":"バ", "び":"ビ", "ぶ":"ブ", "べ":"ベ", "ぼ":"ボ",
        "ぱ":"パ", "ぴ":"ピ", "ぷ":"プ", "ぺ":"ペ", "ぽ":"ポ",
        "ぁ":"ァ", "ぃ":"ィ", "ぅ":"ゥ", "ぇ":"ェ", "ぉ":"ォ",
        "っ":"ッ", "ゃ":"ャ", "ゅ":"ュ", "ょ":"ョ", "ゎ":"ヮ",
        "ゐ":"ヰ", "ゑ":"ヱ",
        "う゛":"ヴ",
        "ー":"ー"
    };

    // 一文字ずつ変換
    var result = "";
    for (var i = 0; i < text.length; i++) {
        var char = text.charAt(i);
        result += hira2kata[char] || char;
    }

    // 改行コードをCRLFに戻す
    result = result.replace(/\n/g, "\r\n");

    //--- 4. エディタへの反映処理 ---//

    var draw_old = Editor.SetDrawSwitch(0); // 描画停止

    Editor.InsText(result); // 選択範囲を置換

    Editor.SetDrawSwitch(draw_old); // 描画再開
    if (draw_old) Editor.Redraw(0);

    //--- 5. クリップボードへのコピー処理 ---//

    // 変換後のテキストを再度全選択
    Editor.SelectAll();
    
    // 選択範囲をクリップボードにコピー
    Editor.Copy(0);
}

サクラエディタJavaScriptマクロ|カタカナからひらがなへの変換

// サクラエディタのJavaScriptマクロ

// 1. 文書全体を選択する
Editor.SelectAll();

// 2. 選択範囲のテキストを取得する
var text = Editor.GetSelectedString(0);

// 選択範囲がない場合は何もしない
if (text !== "") {
    // 3. テキストの変換処理

    // 改行コードをUNIX系のLFに統一
    text = text.replace(/\r\n/g, "\n").replace(/\r/g, "\n");

    // カタカナからひらがなへの変換マッピング
    var kata2hira = {
        "ア":"あ", "イ":"い", "ウ":"う", "エ":"え", "オ":"お",
        "カ":"か", "キ":"き", "ク":"く", "ケ":"け", "コ":"こ",
        "サ":"さ", "シ":"し", "ス":"す", "セ":"せ", "ソ":"そ",
        "タ":"た", "チ":"ち", "ツ":"つ", "テ":"て", "ト":"と",
        "ナ":"な", "ニ":"に", "ヌ":"ぬ", "ネ":"ね", "ノ":"の",
        "ハ":"は", "ヒ":"ひ", "フ":"ふ", "ヘ":"へ", "ホ":"ほ",
        "マ":"ま", "ミ":"み", "ム":"む", "メ":"め", "モ":"も",
        "ヤ":"や", "ユ":"ゆ", "ヨ":"よ",
        "ラ":"ら", "リ":"り", "ル":"る", "レ":"れ", "ロ":"ろ",
        "ワ":"わ", "ヲ":"を", "ン":"ん",
        "ガ":"が", "ギ":"ぎ", "グ":"ぐ", "ゲ":"げ", "ゴ":"ご",
        "ザ":"ざ", "ジ":"ぢ", "ズ":"ず", "ゼ":"ぜ", "ゾ":"ぞ",
        "ダ":"だ", "ヂ":"ぢ", "ヅ":"づ", "デ":"で", "ド":"ど",
        "バ":"ば", "ビ":"び", "ブ":"ぶ", "ベ":"べ", "ボ":"ぼ",
        "パ":"ぱ", "ピ":"ぴ", "プ":"ぷ", "ペ":"ぺ", "ポ":"ぽ",
        "ァ":"ぁ", "ィ":"ぃ", "ゥ":"ぅ", "ェ":"ぇ", "ォ":"ぉ",
        "ッ":"っ", "ャ":"ゃ", "ュ":"ゅ", "ョ":"ょ", "ヮ":"ゎ",
        "ヰ":"ゐ", "ヱ":"ゑ",
        "ヴ":"う゛",
        "ー":"ー"
    };

    // 一文字ずつ変換
    var result = "";
    for (var i = 0; i < text.length; i++) {
        var char = text.charAt(i);
        result += kata2hira[char] || char;
    }

    // 改行コードをCRLFに戻す
    result = result.replace(/\n/g, "\r\n");

    //--- 4. エディタへの反映処理 ---//

    var draw_old = Editor.SetDrawSwitch(0); // 描画停止

    Editor.InsText(result); // 選択範囲を置換

    Editor.SetDrawSwitch(draw_old); // 描画再開
    if (draw_old) Editor.Redraw(0);

    //--- 5. クリップボードへのコピー処理 ---//

    // 変換後のテキストを再度全選択
    Editor.SelectAll();
    
    // 選択範囲をクリップボードにコピー
    Editor.Copy(0);
}