連番を挿入

提供:MeryWiki
2019年12月21日 (土) 21:56時点におけるMasme (トーク | 投稿記録)による版 (マクロ更新)
ナビゲーションに移動 検索に移動

カーソル行頭 or 選択範囲行頭に連番を挿入するマクロです。

InsertSequentialNumber Popup.png

連番を挿入 連番の挿入を実行します。
形式 連番の種類(スタイル)。
プリセット(あらかじめ用意した設定)の適応もここで行います。
開始 開始番号(0以上の整数)。
個数 行数(1以上の整数)。範囲選択時は変更できません。
..数値 と入力すると、数値を終了番号とみなします。
たとえば、..9 なら9までで終わる連番になるよう個数を逆算します。
増分 増加幅(0以上の整数)。
桁数 最低桁数(0以上の整数。0 で最長桁揃え)。
桁埋めしたくない場合、1 を指定してください。
桁埋 桁埋め文字(1文字)。結合文字列には対応していません。
空欄にすると、スタイル既定の桁埋め文字が適用されます。
接頭
接尾
連番の前後に付加する文字列。下記の特殊記法が使えます。
%t (タブ)、%% (文字 %)、%A (始値)、%Z (終値)
(プレビュー)
もっと見る
連番の内容(最初と最後)の下見です。
[もっと見る] で最初6個と最後6個を下見できます。

注意点

  • 範囲選択時は行全体を選択してから、論理行頭(論理座標)に連番を挿入します。
  • 連番の限度は 9007兆1992億5474万0991 (253−1) です。超過した場合の動作は保証しません。
    JavaScript の仕様では、この数値を超えると整数の取り扱いに不都合が生じます。
  • 個数の限度は 42億9496万7295 (232−1) です。メモリ不足の場合の動作は保証しません。
  • 桁埋・接頭・接尾の入力時にキャンセルすると、前の状態に戻るのではなく、空欄となります。
    これは仕様上解決できませんので、ご了承ください。
  • 桁埋・接頭・接尾・プレビューでは、下記のような代替表示が行われます。
    • 半角空白 (U+0020) → (U+2423) と表示
    • 全角空白 (U+3000) → (U+303C) と表示
    • 水平タブ (U+0009) →  ›  (U+203A) と表示
  • プレビューでは、最長桁数を実際より少なく見積もることがあります。

ソースコード

ダウンロード→ 連番を挿入.zip

  • 拙作ですがアイコンファイル (連番を挿入.ico) を同梱してあります。
    Mery 2.4.7 以降の場合、マクロ (連番を挿入.js) と同じフォルダに、
    Mery 2.4.6 以前の場合、Mery.exe と同じフォルダに、
    アイコンファイルを配置しておくとツールバーにアイコンが読み込まれます。

更新履歴

ファイル:連番を挿入.zip

2019/12/21 (rev.2)
  • アイコンファイルを同梱し、読み込むようにした。
  • 連番の挿入を実行後、実行範囲を行選択するようにした。
  • 「プレビュー」を一番下に移動し、「もっと見る」を追加。
  • スタイルの概念を導入(英字・仮名・ローマ数字・漢数字連番などに対応)。
    • 「形式」を追加。「プリセット」は削除。
  • 個数で、..数値 と入力すると終了番号とみなすようにした。
  • 指定した桁数までしか桁埋めしない仕様に変更。
    • 桁数を 0 にすると、最長桁揃えができるようにした。
  • 桁埋を空欄にした場合、スタイルの既定を適用する仕様に変更。
  • 接頭・接尾で、% による特殊記法を導入。
  • 入力ダイアログの見出しを「項目名:」→「項目名: 現在値」に変更。
  • 開始・個数・増分・桁数で、限度を超過した数値を受け付けないようにした。
  • 桁埋で、2文字以上を指定した場合、最初の1文字のみ受け付けるようにした。
  • 桁埋・接頭・接尾・プレビューで、文字 & が正常に表示されないのを修正。
  • 代替表示の対象に全角空白を追加。空欄を除外。
  • サロゲートペアに対応。
2013/08/25 (rev.1)
  • 初版公開。

連番の形式

「形式」の内容は、ソースコードの最初あたりで定義されています。

//■形式
// ----------------- ↓ここより下に定義を追加
/* スタイル切替の例 */
,{text:"%{style.text}\t%{style.pad}埋", style:"dec"}
,{text:"%{style.text}\t%{style.pad}埋", style:"up-roman"}
,{text:"%{style.text}\t%{style.pad}埋", style:"up-latin"}
,{text:"%{style.text}\t%{style.pad}埋", style:"hira"}
,{text:"%{style.text}\t%{style.pad}埋", style:"kanji"}

/* プリセットの例 */
,{text:"(1),(2),(3) ...", style:"dec", prefix:"(", suffix:")"}
,{text:"1.␣,2.␣,3.␣ ...", style:"dec", prefix:"", suffix:". "}
,{text:"1/Z › ,2/Z › ,3/Z › ... (Z:終値)", style:"dec", prefix:"", suffix:"/%Z%t"}
,{text:"A ... Z [%{count}個]", style:"up-latin", start:"1", count:"26", step:"1"}
,{text:"あ ... ん [%{count}個]", style:"hira", start:"1", count:"48", step:"1"}
,{text:"北海道 ... 沖縄県 [%{count}個]", style:"pref", start:"1", count:"47", step:"1"}
,{text:"表示文", style:"スタイル", start:"開始", count:"個数", step:"増分", digit:"桁数", pad:"桁埋", prefix:"接頭", suffix:"接尾"}
style, start, count, step, digit, pad, prefix, suffix
適用する設定。
style に存在しないスタイル名を指定すると、適用時にエラーになります。
※範囲選択時は個数が固定されるため、count の指定は無視されます。
text
メニューに表示する文章。下記の特殊記法が使えます。
  • %{xxx}:適用する設定 xxx の値。たとえば、%{start} など。
  • %{style.xxx}:適用する style の xxx の値。たとえば、%{style.text} など。
※ xxx が存在しない場合、%{...} 部分は置換されず、そのまま表示されます。
pad, prefix, suffix の値には代替表示が適用されます。

定義済みスタイル

初期状態で定義されているスタイルです。

style 形式表示 説明
dec 1,2,3 0,1,2,3 ... 9,10,11 ... 算用数字(アラビア数字)。
dec-full 1,2,3 0,1,2,3 ... 9,10,11 ... 全角算用数字。
dec-kanji 一,二,三 〇,一,二,三 ... 九,一〇,一一 ... 漢数字・位取り表記。
up-roman I,II,III I,II,III ... IX,X,XI ... ローマ数字(英字表記)。1から3999まで。
0と4000以上は算用数字になります。
lo-roman i,ii,iii i,ii,iii ... ix,x,xi ...
up-latin A,B,C A,B,C ... Z,AA,AB ... 英字(ラテン・アルファベット)。26種。
lo-latin a,b,c a,b,c ... z,aa,ab ...
up-latin-full A,B,C A,B,C ... Z,AA,AB ... 全角英字。
lo-latin-full a,b,c a,b,c ... z,aa,ab ...
up-greek Α,Β,Γ Α,Β,Γ ... Ω,ΑΑ,ΑΒ ... ギリシャ文字。24種。
lo-greek α,β,γ α,β,γ ... ω,αα,αβ ...
hira あ,い,う あ,い,う ... ん,ああ,あい ... 仮名文字・五十音順。48種。
kata ア,イ,ウ ア,イ,ウ ... ン,アア,アイ ...
kata-half ア,イ,ウ ア,イ,ウ ... ン,アア,アイ ... 半角カタカナ・五十音順。46種(「ヰヱ」が無い)。
hira-iroha い,ろ,は い,ろ,は ... す,いい,いろ ... 仮名文字・いろは順。47種(「ン」が無い)。
kata-iroha イ,ロ,ハ イ,ロ,ハ ... ス,イイ,イロ ...
kanji 一,十,百 〇,一,二,三 ... 九,十,十一 ... 漢数字。
daiji 壱,拾,百 零,壱,弐,参 ... 九,拾,拾壱 ... 漢数字・大字。
circled-num ①,②,③ ①,②,③ ... ⑨,⑩,⑪ ... 丸数字。1から20まで。
stem 十干 甲,乙,丙 ... 癸,甲,乙 ... 十干(天干 / Heavenly Stems)。10種ループ。
branch 十二支 子,丑,寅 ... 亥,子,丑 ... 十二支(地支 / Earthly Branches)。12種ループ。
stem-branch 六十干支 甲子,乙丑,丙寅 ... 六十干支。60種ループ。
pref 都道府県 北海道,青森県,岩手県 ... 都道府県(prefecture)。47種ループ。
hitotsu 一,一,一 ... 一つ書き。1種ループ。
naka ・,・,・ ... 中黒・中点。和文の箇条書きで用いられる。
disc •,•,• ... Bullet(ビュレット)。欧文の箇条書きで用いる。
none 無し 連番無し。

スタイルの定義

スタイルについては HTML / CSS の @counter-style を一部参考にしています。

//■スタイル
// ----------------- ↓ここより下に定義を追加
/* system:"numeric" の例 */
,"dec":{label:"1,2,3", text:"1,2,3 ... 9,10,11 ...",
 system:"numeric", pad:"0", zero:"0", symbols:"0123456789".split("")}

/* system:"alphabetic" の例 */
,"up-latin":{label:"A,B,C", text:"A,B,C ... Z,AA,AB ... (26種)",
 system:"alphabetic", pad:" ", symbols:"ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("")}

/* system:"cyclic" の例 */
,"stem":{label:"十干", text:"甲,乙,丙 ... 癸,甲,乙 ... (10種)",
 system:"cyclic", pad:" ", symbols:"甲乙丙丁戊己庚辛壬癸".split("")}

/* system:"additive" の例 */
,"up-roman":{label:"I,II,III", text:"I,II,III ... IX,X,XI ... (~3999)", range:[1,3999],
 system:"additive", pad:" ", symbols:[1000,"M",900,"CM",500,"D",400,"CD",100,"C",90,"XC",50,"L",40,"XL",10,"X",9,"IX",5,"V",4,"IV",1,"I"]}

/* system:"kanji" の例 */
,"daiji":{label:"壱,拾,百", text:"壱,弐,参 ... 九,拾,拾壱 ...",
 system:"kanji", pad:" ", zero:"零", symbols:[["","壱","弐","参","四","五","六","七","八","九"],["","拾","百","千"],["","万","億","兆"]]}
,"スタイル名":{label:"形式表示", text:"表示文", range:[下限値,上限値],
 system:"生成方式", pad:"桁埋", zero:"ゼロの表現", symbols:配列}
label
形式表示。メニューの「形式: ○○○」の ○○○ 部分に使用されます。
text
表示文。%{style.text} で表示される文章。
range
生成できる連番の範囲。範囲を超えると算用数字の連番に移行します。
pad
スタイル既定の桁埋め文字。
zero
ゼロの表現。省略するとゼロ非対応とみなし、算用数字の 0 を出力します。
system, symbols
system 説明・例示
numeric 位取り記数法式の連番を生成します。
symbols:["0","1","2"] → 1, 2, 10, 11, 12, 20, 21 ...
symbols:["a","b","c"] → b, c, ba, bb, bc, ca, cb ...
alphabetic アルファベット式の連番を生成します。
symbols:["a","b","c"] → a, b, c, aa, ab, ac, ba ...
symbols:["0","1","2"] → 0, 1, 2, 00, 01, 02, 10 ...
cyclic 巡回する連番を生成します。
symbols:["a","b","c"] → a, b, c, a, b, c, a ...
symbolic 段々重ねとなる連番を生成します。
symbols:["a","b","c"] → a, b, c, aa, bb, cc, aaa ...
additive ローマ数字式の連番を生成します。
kanji 漢数字式の連番を生成します。
スポンサーリンク