// AddSpacesBetweenFullHalf.jsee // 漢字と英数字の間に半角スペースをいれるマクロ // v1.00 May 15, 2010 // by Yutaka Emura (Emurasoft, Inc.) // // このマクロは、基本的に、漢字と英数字の間に半角スペースを入れます。 // // ただし、次のような例外があります。 // - 「、」の後、そして「。」の前は英数字があっても変換しない。 // - "2009年12月22日"の日付形式のものは変換しない。 // - "2009年12月22日(火曜日)"のような場合は、"2009年12月22日 (火曜日)" に変換する。"2009年12月22日(火)"、"2009/12/22(火曜日)"、"2009/12/22(火)"の場合も同様に (火曜日) の左側のみにスペースを挿入する。 // - "~して2003年~" や "~7年~" など、年が数字の後に着いた場合、数字の前と後には変換しない。 // - "「RisuMail」"と日本語の括弧で含まれる英数字は変換しない。『』、【】、<>などの全角括弧の場合も変換しない。 // - "これまで10万以上"のように数字の後に単位を数える漢字 (万、円、個、台、人など) が付いた場合は、年と同様に変換しない。 // -------------------------------------- // a = 以下の文字を除く全角文字 // 、。「」『』【】〔〕・!(),.:;?[]{}万人個円台年日月 a = "([\\x{2e80}-\\x{2fff}\\x{3003}-\\x{3007}\\x{3012}-\\x{3013}\\x{301c}-\\x{30fa}\\x{30fc}-\\x{4e06}\\x{4e08}-\\x{4eb9}\\x{4ebb}-\\x{500a}\\x{500c}-\\x{5185}\\x{5187}-\\x{53ef}\\x{53f1}-\\x{5e73}\\x{5e75}-\\x{65e4}\\x{65e6}-\\x{6707}\\x{6709}-\\x{a000}\\x{ac00}-\\x{d800}\\x{f900}-\\x{fb00}\\x{ff02}-\\x{ff0b}\\x{ff0d}\\x{ff0f}-\\x{ff19}\\x{ff1c}-\\x{ff1e}\\x{ff20}-\\x{ff3a}\\x{ff3c}\\x{ff3e}-\\x{ff5a}\\x{ffe0}-\\x{ffe6}])"; b = "([0-9a-zA-Z\\(\\[\\{])(?![0-9]*?[万人個円台年日月])"; document.selection.Replace( a + b,"\\1 \\2",eeFindNext | eeReplaceAll | eeFindReplaceRegExp | eeFindReplaceQuiet); b = "([0-9a-zA-Z\\)\\]\\}])"; document.selection.Replace( b + a,"\\1 \\2",eeFindNext | eeReplaceAll | eeFindReplaceRegExp | eeFindReplaceQuiet); // )x -> ) x a = "([\\)\\]\\}])" b = "([0-9a-zA-Z])"; document.selection.Replace( a + b,"\\1 \\2",eeFindNext | eeReplaceAll | eeFindReplaceRegExp | eeFindReplaceQuiet); // x( -> x ( // 日( -> 日 ( a = "([\\(\\[\\{])" b = "([0-9a-zA-Z日])"; document.selection.Replace( b + a,"\\1 \\2",eeFindNext | eeReplaceAll | eeFindReplaceRegExp | eeFindReplaceQuiet); // 日x -> 日 x a = "([0-9a-zA-Z\\(\\[\\{])" b = "([日])"; document.selection.Replace( b + a,"\\1 \\2",eeFindNext | eeReplaceAll | eeFindReplaceRegExp | eeFindReplaceQuiet); document.selection.Find(" ",eeFindNext | eeFindReplaceQuiet);