//選択範囲の文字数をカウントするマクロ。 //選択範囲を指定していなければ全文を選択する if (document.selection.Text == "") document.selection.SelectAll(); var tx = document.selection.text; //変数を宣言し初期値ゼロにセット var mSbSpace = 0; var mDbSpace = 0; var mTab = 0; var mCR = 0; var mLF = 0; var mCRLF =0; var mOther = 0; //CRLFを検出した場合のフラグ var Skip = false; //一文字ずつチェックし、該当する変数を増やす for (var i = 0; i < tx.length; i ++) { if (Skip) { Skip = false; } else { switch (tx.charCodeAt(i)) { /* case 0x20: mSbSpace ++; break; case 0x3000: mDbSpace ++; break; */ case 9: mTab ++; break; case 0xD: if (i < tx.length - 1) { if (tx.charCodeAt(i + 1) == 10) { mCRLF ++; Skip = true; } else mCR ++; } else mCR ++; break; case 0xA: mLF ++; break; default: mOther ++; } } } mCRLF += mCR + mLF; //結果をダイアログボックスで表示するため文字列として並べる var m = // "半角スペース" + "\t" + mSbSpace + "\n" + // "全角スペース" + "\t" + mDbSpace + "\n" + "タブ" + "\t\t" + mTab + "\n" + "改行" + "\t\t" + mCRLF + "\n" + "その他の文字" + "\t" + mOther + "\n"; Alert(m);