「
連番の挿入
」を編集中
2025年1月9日 (木) 13:10時点における
MSY-07
(
トーク
|
投稿記録
)
による版
(ソースコードの追加、ダウンロードの削除)
(
差分
)
← 古い版
|
最新版
(
差分
) |
新しい版 →
(
差分
)
ナビゲーションに移動
検索に移動
警告: このページの古い版を編集しています。
公開すると、この版以降になされた変更がすべて失われます。
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、さまざまなメリットもあります。
スパム攻撃防止用のチェックです。 決して、ここには、値の入力は
しない
でください!
== 概要 == ナンバリング.js * 連番を行頭に挿入します。次の文字から始まる連番を挿入できます。 ** a,a,A,A,イ,い,ア,あ,i,ⅰ,I,Ⅰ,一,壱,甲,α,Α * 数字の桁幅は、5桁まで対応しています。 * 数字以外はリストの終わりに達したら先頭に戻ります。 * ポップアップメニュー非選択の場合、それ以降の“menu.Track(0)”は非選択で素通りします。この場合、初期値が設定されます。 * 各ポップアップメニューの初期値は、半角数字・2桁・ゼロ埋め・半角括弧、です。 == ソースコード == <syntaxhighlight lang="javascript"> // 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>
編集内容の要約:
MeryWikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MeryWiki:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の数式を計算してその答えを欄に入力してください (
ヘルプ
):
いちたすには =
キャンセル
編集ヘルプ
(新しいウィンドウで開きます)
スポンサーリンク
ナビゲーション メニュー
個人用ツール
ログインしていません
トーク
投稿記録
アカウント作成
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
編集
履歴表示
その他
検索
スポンサーリンク
スポンサーリンク
案内
メインページ
ヘルプ
よくある質問
マクロリファレンス
マクロライブラリ
プラグインライブラリ
構文ファイル
テーマ
寄付・開発支援
練習用ページ
開発室
開発者のブログ
ツール
スポンサーリンク