「連番の挿入」の版間の差分
ナビゲーションに移動
検索に移動
ページの作成:「連番挿入マクロ<br> ナンバリング.js<br> <br> ・連番を行頭に挿入します。次の文字から始まる連番を挿入できます。<br> a,a,...」 |
SyntaxHighlightにcopyの追加 |
||
| (同じ利用者による、間の5版が非表示) | |||
| 1行目: | 1行目: | ||
== 概要 == | |||
ナンバリング.js | ナンバリング.js | ||
* 連番を行頭に挿入します。次の文字から始まる連番を挿入できます。 | |||
** a,a,A,A,イ,い,ア,あ,i,ⅰ,I,Ⅰ,一,壱,甲,α,Α | |||
* 数字の桁幅は、5桁まで対応しています。 | |||
* 数字以外はリストの終わりに達したら先頭に戻ります。 | |||
* ポップアップメニュー非選択の場合、それ以降の“menu.Track(0)”は非選択で素通りします。この場合、初期値が設定されます。 | |||
* 各ポップアップメニューの初期値は、半角数字・2桁・ゼロ埋め・半角括弧、です。 | |||
< | == ソースコード == | ||
<syntaxhighlight lang="javascript" copy> | |||
// numbering.js | |||
// 2012/12/03 | |||
if (document.selection.Text == ""){Quit()}; | |||
// 接頭語と接尾語。 | |||
[[ | var prefix = "\t"; // promptでタブの入力方法が不明のため。 | ||
var suffix = "\t"; | |||
// 表示桁数。とりあえず5桁まで対応。 | |||
var dig = 1; | |||
var pad_zero = "0000" | |||
var pad_spc = " " | |||
// 数字のとき、桁の空きをゼロで埋めるか。 | |||
var ZeroPadding = true; | |||
// 開始番号(開始位置)のずらし量。使っていません。 | |||
var start_at = 0; | |||
// 連番の種別。 | |||
var pattern = "0"; | |||
var alph_hans = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]; | |||
var alph_zens = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]; | |||
var alph_hanl = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]; | |||
var alph_zenl = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]; | |||
var iro_kata = ["イ","ロ","ハ","ニ","ホ","ヘ","ト","チ","リ","ヌ","ル","ヲ","ワ","カ","ヨ","タ","レ","ソ","ツ","ネ","ナ","ラ","ム","ウ","ヰ","ノ","オ","ク","ヤ","マ","ケ","フ","コ","エ","テ","ア","サ","キ","ユ","メ","ミ","シ","ヱ","ヒ","モ","セ","ス","ン"]; | |||
var iro_hira = ["い","ろ","は","に","ほ","へ","と","ち","り","ぬ","る","を","わ","か","よ","た","れ","そ","つ","ね","な","ら","む","う","ゐ","の","お","く","や","ま","け","ふ","こ","え","て","あ","さ","き","ゆ","め","み","し","ゑ","ひ","も","せ","す","ん"]; | |||
var aiu_kata = ["ア","イ","ウ","エ","オ","カ","キ","ク","ケ","コ","サ","シ","ス","セ","ソ","タ","チ","ツ","テ","ト","ナ","ニ","ヌ","ネ","ノ","ハ","ヒ","フ","ヘ","ホ","マ","ミ","ム","メ","モ","ヤ","ユ","ヨ","ラ","リ","ル","レ","ロ","ワ","ヰ","ヱ","ヲ","ン"]; | |||
var aiu_hira = ["あ","い","う","え","お","か","き","く","け","こ","さ","し","す","せ","そ","た","ち","つ","て","と","な","に","ぬ","ね","の","は","ひ","ふ","へ","ほ","ま","み","む","め","も","や","ゆ","よ","ら","り","る","れ","ろ","わ","ゐ","ゑ","を","ん"]; | |||
var roma_hans = ["i","ii","iii","iv","v","vi","vii","viii","xi","x","xi","xii","xiii","xiv","xv","xvi","xvii","xviii","xix","xx"]; | |||
var roma_zens = ["ⅰ","ⅱ","ⅲ","ⅳ","ⅴ","ⅵ","ⅶ","ⅷ","ⅸ","ⅹ"]; | |||
var roma_hanl = ["I","II","III","IV","V","VI","VII","VIII","XI","X","XI","XII","XIII","XIV","XV","XVI","XVII","XVIII","XIX","XX"]; | |||
var roma_zenl = ["Ⅰ","Ⅱ","Ⅲ","Ⅳ","Ⅴ","Ⅵ","Ⅶ","Ⅷ","Ⅸ","Ⅹ"]; | |||
var kouotsu = ["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"]; | |||
var grek_zens = ["α","β","γ","δ","ε","ζ","η","θ","ι","κ","λ","μ","ν","ξ","ο","π","ρ","σ","τ","υ","φ","χ","ψ","ω"]; | |||
var grek_zenl = ["Α","Β","Γ","Δ","Ε","Ζ","Η","Θ","Ι","Κ","Λ","Μ","Ν","Ξ","Ο","Π","Ρ","Σ","Τ","Υ","Φ","Χ","Ψ","Ω"]; | |||
var kigou = ["☆"]; | |||
var su_han= "0123456789 "; | |||
var su_zen= "0123456789 "; | |||
var kansuji = ["一","二","三","四","五","六","七","八","九","十","十一","十二","十三","十四","十五","十六","十七","十八","十九","二十"] | |||
var daiji = ["壱","弐","参","四","五","六","七","八","九","拾","拾壱","拾弐","拾参","拾四","拾五","拾六","拾七","拾八","拾九","弐拾"] | |||
var menui = CreatePopupMenu(); | |||
// 使わないものは、適当にコメントアウトしてください。 | |||
// meMenuGrayed - 無効。 | |||
menui.Add("1,2,3,…(半角)", 1, meMenuChecked); | |||
menui.Add("1,2,3,…", 2, 0); | |||
menui.Add("区切り", 0, meMenuSeparator); | |||
menui.Add("a,b,c,…(半角)", 11, 0); | |||
menui.Add("A,B,C,…(半角)", 13, 0); | |||
menui.Add("a,b,c,…", 12, 0); | |||
menui.Add("A,B,C,…", 14, 0); | |||
menui.Add("区切り", 0, meMenuSeparator); | |||
menui.Add("イ,ロ,ハ,…", 21, 0); | |||
menui.Add("い,ろ,は,…", 22, 0); | |||
menui.Add("ア,イ,ウ,…", 23, 0); | |||
menui.Add("あ,い,う,…", 24, 0); | |||
menui.Add("区切り", 0, meMenuSeparator); | |||
menui.Add("i,ii,iii,…(半角)", 31, 0); | |||
menui.Add("I,II,III,…(半角)", 32, 0); | |||
menui.Add("ⅰ,ⅱ,ⅲ,…", 33, meMenuGrayed); | |||
menui.Add("Ⅰ,Ⅱ,Ⅲ,…", 34, meMenuGrayed); | |||
menui.Add("区切り", 0, meMenuSeparator); | |||
menui.Add("一,二,三,…", 51, 0); | |||
menui.Add("壱,弐,参,…", 52, 0); | |||
menui.Add("甲,乙,丙,…", 53, 0); | |||
menui.Add("区切り", 0, meMenuSeparator); | |||
menui.Add("α,β,γ,…", 41, 0); | |||
menui.Add("Α,Β,Γ,…", 42, 0); | |||
menui.Add("区切り", 0, meMenuSeparator); | |||
menui.Add("その他(カンマ区切りで指定)", 98, 0); | |||
menui.Add("区切り", 0, meMenuSeparator); | |||
menui.Add("キャンセル", 99, 0); | |||
//var pt = menui.Track(mePosMouse) | |||
var pt = menui.Track(0); | |||
switch(pt){ | |||
case 0: pattern = "0"; setDigPadding(); break; // meMenuCheckedと同じ | |||
case 1: pattern = "0"; setDigPadding(); break; // meMenuChecked | |||
case 2: pattern = "0"; setDigPadding(); break; | |||
case 11: pattern = "a"; break; | |||
case 12: pattern = "a"; break; | |||
case 13: pattern = "A"; break; | |||
case 14: pattern = "A"; break; | |||
case 21: pattern = "イ"; break; | |||
case 22: pattern = "い"; break; | |||
case 23: pattern = "ア"; break; | |||
case 24: pattern = "あ"; break; | |||
case 31: pattern = "i"; break; | |||
case 32: pattern = "I"; break; | |||
case 33: pattern = "ⅰ"; break; | |||
case 34: pattern = "Ⅰ"; break; | |||
case 41: pattern = "α"; break; | |||
case 42: pattern = "Α"; break; | |||
case 51: pattern = "一"; break; | |||
case 52: pattern = "壱"; break; | |||
case 53: pattern = "甲"; break; | |||
case 98: pattern = "☆"; | |||
kigou = prompt("記号等のリスト(カンマ区切り)を入力してください。", "> ,>> ,>>> ,>>>>").split(","); | |||
break; | |||
case 99: Quit(); | |||
default: | |||
} | |||
function setDigPadding(){ | |||
dig = setDigit(); | |||
if (dig > 1){ZeroPadding = setZeroPadding();} | |||
} | |||
function setDigit(){ | |||
var menud = CreatePopupMenu(); | |||
menud.Add("1桁", 1, 0); | |||
menud.Add("2桁", 2, meMenuChecked); | |||
menud.Add("3桁", 3, 0); | |||
menud.Add("4桁", 4, 0); | |||
menud.Add("5桁", 5, 0); | |||
var r = menud.Track(0); | |||
// var r = menud.Track(mePosMouse); | |||
return (r==0)? 2: r; | |||
} | |||
function setZeroPadding(){ | |||
if (dig < 2){ | |||
return true | |||
}else{ | |||
var menuz = CreatePopupMenu(); | |||
menuz.Add("ゼロ埋め", 1, meMenuChecked); | |||
menuz.Add("空白埋め", 2, 0); | |||
var r = menuz.Track(0); | |||
// var r = menuz.Track(mePosMouse); | |||
return (r==2)? false: true; | |||
} | |||
} | |||
var menuf = CreatePopupMenu(); | |||
menuf.Add("()(半角)", 11, meMenuChecked); | |||
menuf.Add("()", 21, 0); | |||
menuf.Add("区切り", 0, meMenuSeparator); | |||
menuf.Add(".(半角)", 12, 0); | |||
menuf.Add(".", 22, 0); | |||
menuf.Add("区切り", 0, meMenuSeparator); | |||
menuf.Add(",(半角)", 13, 0); | |||
menuf.Add(",", 23, 0); | |||
menuf.Add("区切り", 0, meMenuSeparator); | |||
menuf.Add("“第”", 31, 0); | |||
menuf.Add("無し", 97, 0); | |||
menuf.Add("指定 or タブ", 98, 0); | |||
menuf.Add("区切り", 0, meMenuSeparator); | |||
menuf.Add("キャンセル", 99, 0); | |||
var fx = menuf.Track(0); | |||
//var fx = menuf.Track(mePosMouse); | |||
switch(fx){ | |||
case 0: prefix = "("; suffix = ")"; break; // meMenuCheckedと同じ | |||
case 11: prefix = "("; suffix = ")"; break; // meMenuChecked | |||
case 12: prefix = ""; suffix = "."; break; | |||
case 13: prefix = ""; suffix = ", "; break; | |||
case 21: prefix = "("; suffix = ")"; break; | |||
case 22: prefix = ""; suffix = "."; break; | |||
case 23: prefix = ""; suffix = ","; break; | |||
case 31: prefix = "第"; suffix = ""; break; | |||
case 97: prefix = ""; suffix = ""; break; | |||
case 98: | |||
var px = prompt("prefix(接頭語)", prefix); | |||
var sx = prompt("suffix(接尾語)", suffix); | |||
prefix = px; | |||
suffix = sx; | |||
break; | |||
case 99: Quit(); | |||
default : | |||
} | |||
// 選択範囲の調整 | |||
var sel = Editor.ActiveDocument.Selection; | |||
var ty = sel.GetTopPointY(mePosLogical); | |||
var bx = sel.GetBottomPointX(mePosLogical); | |||
var by = sel.GetBottomPointY(mePosLogical); | |||
sel.SetActivePoint(mePosLogical, 1, ty, false); | |||
sel.SetActivePoint(mePosLogical, bx, by, true); | |||
if ((bx == 1)&&(ty != by)){ | |||
sel.WordLeft(true, 1); | |||
}else{ | |||
sel.EndOfLine(true, mePosLogical); | |||
}; | |||
var s_in = sel.Text.split("\n"); | |||
var s_out = []; | |||
for (var i in s_in) { | |||
s_out.push(header(i) + s_in[i]); | |||
} | |||
function header(i){ | |||
i = +i + start_at; | |||
var nbr = 1 + i; | |||
nbr += "" // <= nbrを文字列に変換。 | |||
if (nbr.length < dig){ | |||
nbr = (ZeroPadding)? (pad_zero + nbr).slice(-dig): (pad_spc + nbr).slice(-dig); | |||
} | |||
switch(pattern){ | |||
case "0": | |||
break; | |||
case "0": | |||
var zensu = ""; | |||
for (var j in nbr.split("")){ | |||
zensu += su_zen.substr(su_han.indexOf(nbr.substr(j,1)), 1); | |||
} | |||
nbr = zensu | |||
break; | |||
case "a": nbr = alph_hans[i % alph_hans.length]; break; | |||
case "a": nbr = alph_zens[i % alph_zens.length]; break; | |||
case "A": nbr = alph_hanl[i % alph_hanl.length]; break; | |||
case "A": nbr = alph_zenl[i % alph_zenl.length]; break; | |||
case "イ": nbr = iro_kata[i % iro_kata.length]; break; | |||
case "い": nbr = iro_hira[i % iro_hira.length]; break; | |||
case "ア": nbr = aiu_kata[i % aiu_kata.length]; break; | |||
case "あ": nbr = aiu_hira[i % aiu_hira.length]; break; | |||
case "i": nbr = roma_hans[i % roma_hans.length]; break; | |||
case "ⅰ": nbr = roma_zens[i % roma_zens.length]; break; | |||
case "I": nbr = roma_hanl[i % roma_hanl.length]; break; | |||
case "Ⅰ": nbr = roma_zenl[i % roma_zenl.length]; break; | |||
case "α": nbr = grek_zens[i % grek_zens.length]; break; | |||
case "Α": nbr = grek_zenl[i % grek_zenl.length]; break; | |||
case "一": nbr = kansuji[i % kansuji.length]; break; | |||
case "壱": nbr = daiji[i % daiji.length]; break; | |||
case "甲": nbr = kouotsu[i % kouotsu.length]; break; | |||
case "☆": | |||
if (kigou.length == 0){ | |||
nbr = ""; | |||
}else{ | |||
nbr = kigou[i % kigou.length]; | |||
} | |||
break; | |||
default : | |||
} | |||
return prefix + nbr + suffix | |||
} | |||
// 選択部分を書き換える | |||
sel.Text = s_out.join("\n"); | |||
</syntaxhighlight> | |||
2025年6月30日 (月) 00:30時点における最新版
概要[編集]
ナンバリング.js
- 連番を行頭に挿入します。次の文字から始まる連番を挿入できます。
- a,a,A,A,イ,い,ア,あ,i,ⅰ,I,Ⅰ,一,壱,甲,α,Α
- 数字の桁幅は、5桁まで対応しています。
- 数字以外はリストの終わりに達したら先頭に戻ります。
- ポップアップメニュー非選択の場合、それ以降の“menu.Track(0)”は非選択で素通りします。この場合、初期値が設定されます。
- 各ポップアップメニューの初期値は、半角数字・2桁・ゼロ埋め・半角括弧、です。
ソースコード[編集]
// numbering.js
// 2012/12/03
if (document.selection.Text == ""){Quit()};
// 接頭語と接尾語。
var prefix = "\t"; // promptでタブの入力方法が不明のため。
var suffix = "\t";
// 表示桁数。とりあえず5桁まで対応。
var dig = 1;
var pad_zero = "0000"
var pad_spc = " "
// 数字のとき、桁の空きをゼロで埋めるか。
var ZeroPadding = true;
// 開始番号(開始位置)のずらし量。使っていません。
var start_at = 0;
// 連番の種別。
var pattern = "0";
var alph_hans = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];
var alph_zens = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];
var alph_hanl = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];
var alph_zenl = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];
var iro_kata = ["イ","ロ","ハ","ニ","ホ","ヘ","ト","チ","リ","ヌ","ル","ヲ","ワ","カ","ヨ","タ","レ","ソ","ツ","ネ","ナ","ラ","ム","ウ","ヰ","ノ","オ","ク","ヤ","マ","ケ","フ","コ","エ","テ","ア","サ","キ","ユ","メ","ミ","シ","ヱ","ヒ","モ","セ","ス","ン"];
var iro_hira = ["い","ろ","は","に","ほ","へ","と","ち","り","ぬ","る","を","わ","か","よ","た","れ","そ","つ","ね","な","ら","む","う","ゐ","の","お","く","や","ま","け","ふ","こ","え","て","あ","さ","き","ゆ","め","み","し","ゑ","ひ","も","せ","す","ん"];
var aiu_kata = ["ア","イ","ウ","エ","オ","カ","キ","ク","ケ","コ","サ","シ","ス","セ","ソ","タ","チ","ツ","テ","ト","ナ","ニ","ヌ","ネ","ノ","ハ","ヒ","フ","ヘ","ホ","マ","ミ","ム","メ","モ","ヤ","ユ","ヨ","ラ","リ","ル","レ","ロ","ワ","ヰ","ヱ","ヲ","ン"];
var aiu_hira = ["あ","い","う","え","お","か","き","く","け","こ","さ","し","す","せ","そ","た","ち","つ","て","と","な","に","ぬ","ね","の","は","ひ","ふ","へ","ほ","ま","み","む","め","も","や","ゆ","よ","ら","り","る","れ","ろ","わ","ゐ","ゑ","を","ん"];
var roma_hans = ["i","ii","iii","iv","v","vi","vii","viii","xi","x","xi","xii","xiii","xiv","xv","xvi","xvii","xviii","xix","xx"];
var roma_zens = ["ⅰ","ⅱ","ⅲ","ⅳ","ⅴ","ⅵ","ⅶ","ⅷ","ⅸ","ⅹ"];
var roma_hanl = ["I","II","III","IV","V","VI","VII","VIII","XI","X","XI","XII","XIII","XIV","XV","XVI","XVII","XVIII","XIX","XX"];
var roma_zenl = ["Ⅰ","Ⅱ","Ⅲ","Ⅳ","Ⅴ","Ⅵ","Ⅶ","Ⅷ","Ⅸ","Ⅹ"];
var kouotsu = ["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"];
var grek_zens = ["α","β","γ","δ","ε","ζ","η","θ","ι","κ","λ","μ","ν","ξ","ο","π","ρ","σ","τ","υ","φ","χ","ψ","ω"];
var grek_zenl = ["Α","Β","Γ","Δ","Ε","Ζ","Η","Θ","Ι","Κ","Λ","Μ","Ν","Ξ","Ο","Π","Ρ","Σ","Τ","Υ","Φ","Χ","Ψ","Ω"];
var kigou = ["☆"];
var su_han= "0123456789 ";
var su_zen= "0123456789 ";
var kansuji = ["一","二","三","四","五","六","七","八","九","十","十一","十二","十三","十四","十五","十六","十七","十八","十九","二十"]
var daiji = ["壱","弐","参","四","五","六","七","八","九","拾","拾壱","拾弐","拾参","拾四","拾五","拾六","拾七","拾八","拾九","弐拾"]
var menui = CreatePopupMenu();
// 使わないものは、適当にコメントアウトしてください。
// meMenuGrayed - 無効。
menui.Add("1,2,3,…(半角)", 1, meMenuChecked);
menui.Add("1,2,3,…", 2, 0);
menui.Add("区切り", 0, meMenuSeparator);
menui.Add("a,b,c,…(半角)", 11, 0);
menui.Add("A,B,C,…(半角)", 13, 0);
menui.Add("a,b,c,…", 12, 0);
menui.Add("A,B,C,…", 14, 0);
menui.Add("区切り", 0, meMenuSeparator);
menui.Add("イ,ロ,ハ,…", 21, 0);
menui.Add("い,ろ,は,…", 22, 0);
menui.Add("ア,イ,ウ,…", 23, 0);
menui.Add("あ,い,う,…", 24, 0);
menui.Add("区切り", 0, meMenuSeparator);
menui.Add("i,ii,iii,…(半角)", 31, 0);
menui.Add("I,II,III,…(半角)", 32, 0);
menui.Add("ⅰ,ⅱ,ⅲ,…", 33, meMenuGrayed);
menui.Add("Ⅰ,Ⅱ,Ⅲ,…", 34, meMenuGrayed);
menui.Add("区切り", 0, meMenuSeparator);
menui.Add("一,二,三,…", 51, 0);
menui.Add("壱,弐,参,…", 52, 0);
menui.Add("甲,乙,丙,…", 53, 0);
menui.Add("区切り", 0, meMenuSeparator);
menui.Add("α,β,γ,…", 41, 0);
menui.Add("Α,Β,Γ,…", 42, 0);
menui.Add("区切り", 0, meMenuSeparator);
menui.Add("その他(カンマ区切りで指定)", 98, 0);
menui.Add("区切り", 0, meMenuSeparator);
menui.Add("キャンセル", 99, 0);
//var pt = menui.Track(mePosMouse)
var pt = menui.Track(0);
switch(pt){
case 0: pattern = "0"; setDigPadding(); break; // meMenuCheckedと同じ
case 1: pattern = "0"; setDigPadding(); break; // meMenuChecked
case 2: pattern = "0"; setDigPadding(); break;
case 11: pattern = "a"; break;
case 12: pattern = "a"; break;
case 13: pattern = "A"; break;
case 14: pattern = "A"; break;
case 21: pattern = "イ"; break;
case 22: pattern = "い"; break;
case 23: pattern = "ア"; break;
case 24: pattern = "あ"; break;
case 31: pattern = "i"; break;
case 32: pattern = "I"; break;
case 33: pattern = "ⅰ"; break;
case 34: pattern = "Ⅰ"; break;
case 41: pattern = "α"; break;
case 42: pattern = "Α"; break;
case 51: pattern = "一"; break;
case 52: pattern = "壱"; break;
case 53: pattern = "甲"; break;
case 98: pattern = "☆";
kigou = prompt("記号等のリスト(カンマ区切り)を入力してください。", "> ,>> ,>>> ,>>>>").split(",");
break;
case 99: Quit();
default:
}
function setDigPadding(){
dig = setDigit();
if (dig > 1){ZeroPadding = setZeroPadding();}
}
function setDigit(){
var menud = CreatePopupMenu();
menud.Add("1桁", 1, 0);
menud.Add("2桁", 2, meMenuChecked);
menud.Add("3桁", 3, 0);
menud.Add("4桁", 4, 0);
menud.Add("5桁", 5, 0);
var r = menud.Track(0);
// var r = menud.Track(mePosMouse);
return (r==0)? 2: r;
}
function setZeroPadding(){
if (dig < 2){
return true
}else{
var menuz = CreatePopupMenu();
menuz.Add("ゼロ埋め", 1, meMenuChecked);
menuz.Add("空白埋め", 2, 0);
var r = menuz.Track(0);
// var r = menuz.Track(mePosMouse);
return (r==2)? false: true;
}
}
var menuf = CreatePopupMenu();
menuf.Add("()(半角)", 11, meMenuChecked);
menuf.Add("()", 21, 0);
menuf.Add("区切り", 0, meMenuSeparator);
menuf.Add(".(半角)", 12, 0);
menuf.Add(".", 22, 0);
menuf.Add("区切り", 0, meMenuSeparator);
menuf.Add(",(半角)", 13, 0);
menuf.Add(",", 23, 0);
menuf.Add("区切り", 0, meMenuSeparator);
menuf.Add("“第”", 31, 0);
menuf.Add("無し", 97, 0);
menuf.Add("指定 or タブ", 98, 0);
menuf.Add("区切り", 0, meMenuSeparator);
menuf.Add("キャンセル", 99, 0);
var fx = menuf.Track(0);
//var fx = menuf.Track(mePosMouse);
switch(fx){
case 0: prefix = "("; suffix = ")"; break; // meMenuCheckedと同じ
case 11: prefix = "("; suffix = ")"; break; // meMenuChecked
case 12: prefix = ""; suffix = "."; break;
case 13: prefix = ""; suffix = ", "; break;
case 21: prefix = "("; suffix = ")"; break;
case 22: prefix = ""; suffix = "."; break;
case 23: prefix = ""; suffix = ","; break;
case 31: prefix = "第"; suffix = ""; break;
case 97: prefix = ""; suffix = ""; break;
case 98:
var px = prompt("prefix(接頭語)", prefix);
var sx = prompt("suffix(接尾語)", suffix);
prefix = px;
suffix = sx;
break;
case 99: Quit();
default :
}
// 選択範囲の調整
var sel = Editor.ActiveDocument.Selection;
var ty = sel.GetTopPointY(mePosLogical);
var bx = sel.GetBottomPointX(mePosLogical);
var by = sel.GetBottomPointY(mePosLogical);
sel.SetActivePoint(mePosLogical, 1, ty, false);
sel.SetActivePoint(mePosLogical, bx, by, true);
if ((bx == 1)&&(ty != by)){
sel.WordLeft(true, 1);
}else{
sel.EndOfLine(true, mePosLogical);
};
var s_in = sel.Text.split("\n");
var s_out = [];
for (var i in s_in) {
s_out.push(header(i) + s_in[i]);
}
function header(i){
i = +i + start_at;
var nbr = 1 + i;
nbr += "" // <= nbrを文字列に変換。
if (nbr.length < dig){
nbr = (ZeroPadding)? (pad_zero + nbr).slice(-dig): (pad_spc + nbr).slice(-dig);
}
switch(pattern){
case "0":
break;
case "0":
var zensu = "";
for (var j in nbr.split("")){
zensu += su_zen.substr(su_han.indexOf(nbr.substr(j,1)), 1);
}
nbr = zensu
break;
case "a": nbr = alph_hans[i % alph_hans.length]; break;
case "a": nbr = alph_zens[i % alph_zens.length]; break;
case "A": nbr = alph_hanl[i % alph_hanl.length]; break;
case "A": nbr = alph_zenl[i % alph_zenl.length]; break;
case "イ": nbr = iro_kata[i % iro_kata.length]; break;
case "い": nbr = iro_hira[i % iro_hira.length]; break;
case "ア": nbr = aiu_kata[i % aiu_kata.length]; break;
case "あ": nbr = aiu_hira[i % aiu_hira.length]; break;
case "i": nbr = roma_hans[i % roma_hans.length]; break;
case "ⅰ": nbr = roma_zens[i % roma_zens.length]; break;
case "I": nbr = roma_hanl[i % roma_hanl.length]; break;
case "Ⅰ": nbr = roma_zenl[i % roma_zenl.length]; break;
case "α": nbr = grek_zens[i % grek_zens.length]; break;
case "Α": nbr = grek_zenl[i % grek_zenl.length]; break;
case "一": nbr = kansuji[i % kansuji.length]; break;
case "壱": nbr = daiji[i % daiji.length]; break;
case "甲": nbr = kouotsu[i % kouotsu.length]; break;
case "☆":
if (kigou.length == 0){
nbr = "";
}else{
nbr = kigou[i % kigou.length];
}
break;
default :
}
return prefix + nbr + suffix
}
// 選択部分を書き換える
sel.Text = s_out.join("\n");
スポンサーリンク