罫線変換
概要
罫線を太い罫線や二重線の罫線に変換します
しかしながら、一部のフォントでしかまともに表示できない残念マクロです
充分、ご注意ください
機能
罫線で書かれた表を選択しマクロを実行すると以下のメニューが現れます
メニューから変換内容を選ぶと選択範囲の罫線が変換されます
左から【細くする】、【太くする】、【二重線にする】です
(Ricty Diminished 12ptで撮影)
左から【縦だけ太くする】、【横だけ太くする】、【縦だけ二重線にする】、【横だけ二重線にする】です
(Ricty Diminished 12ptで撮影)
注意事項
罫線を引くこと自体は当マクロで行えません、『ラクラク罫線』などをご利用ください
左図のように当マクロを使用しますとMSゴシック、MS明朝、メイリオ、MeiryoKeなど多くのフォントで表の体裁が崩れてしまいます
(MSゴシック 12ptで撮影)
私がよく使うフォントでまともに表示できたのは、Ricty Diminished、MyricaM、Migu 1M の3つだけでした
右図のように細い罫線であれば表として見ることができるフォントは多いようですので、もしも表の体裁が崩れているテキストデータに出会った時に当マクロの【細くする】を使用すれば整形できる場合もあるかもしれません
しかし、使用されている人が多いであろうと思われる有名なフォントの多くで表の体裁が崩れてしまうというのは、本当に致命的で、当マクロの存在価値は殆ど無いかもしれません、申し訳ありませんが予めご了承ください
変更履歴
- 1.0.1 (2019-04-12)
- Quitを無くす修正
- 1.0.0 (2019-03-09)
- 初版
ソースコード
#title = "罫線変換"
var T = new Array(); // 細くする
T["─"]="─";T["━"]="─";T["═"]="─";
T["│"]="│";T["┃"]="│";T["║"]="│";
T["┌"]="┌";T["┍"]="┌";T["┎"]="┌";T["┏"]="┌";T["╒"]="┌";T["╓"]="┌";T["╔"]="┌";
T["┐"]="┐";T["┑"]="┐";T["┒"]="┐";T["┓"]="┐";T["╕"]="┐";T["╖"]="┐";T["╗"]="┐";
T["└"]="└";T["┕"]="└";T["┖"]="└";T["┗"]="└";T["╘"]="└";T["╙"]="└";T["╚"]="└";
T["┘"]="┘";T["┙"]="┘";T["┚"]="┘";T["┛"]="┘";T["╛"]="┘";T["╜"]="┘";T["╝"]="┘";
T["├"]="├";T["┝"]="├";T["┞"]="├";T["┟"]="├";
T["┠"]="├";T["┡"]="├";T["┢"]="├";T["┣"]="├";
T["╞"]="├";T["╟"]="├";T["╠"]="├";
T["┤"]="┤";T["┥"]="┤";T["┦"]="┤";T["┧"]="┤";
T["┨"]="┤";T["┩"]="┤";T["┪"]="┤";T["┫"]="┤";
T["╡"]="┤";T["╢"]="┤";T["╣"]="┤";
T["┬"]="┬";T["┭"]="┬";T["┮"]="┬";T["┯"]="┬";
T["┰"]="┬";T["┱"]="┬";T["┲"]="┬";T["┳"]="┬";
T["╤"]="┬";T["╥"]="┬";T["╦"]="┬";
T["┴"]="┴";T["┵"]="┴";T["┶"]="┴";T["┷"]="┴";
T["┸"]="┴";T["┹"]="┴";T["┺"]="┴";T["┻"]="┴";
T["╧"]="┴";T["╨"]="┴";T["╩"]="┴";
T["┼"]="┼";T["┽"]="┼";T["┾"]="┼";T["┿"]="┼";T["╀"]="┼";T["╁"]="┼";
T["╂"]="┼";T["╃"]="┼";T["╄"]="┼";T["╅"]="┼";T["╆"]="┼";
T["╇"]="┼";T["╈"]="┼";T["╉"]="┼";T["╊"]="┼";T["╋"]="┼";
T["╪"]="┼";T["╫"]="┼";T["╬"]="┼";
var B = new Array(); // 太くする
B["─"]="━";B["━"]="━";B["═"]="━";
B["│"]="┃";B["┃"]="┃";B["║"]="┃";
B["┌"]="┏";B["┍"]="┏";B["┎"]="┏";B["┏"]="┏";B["╒"]="┏";B["╓"]="┏";B["╔"]="┏";
B["┐"]="┓";B["┑"]="┓";B["┒"]="┓";B["┓"]="┓";B["╕"]="┓";B["╖"]="┓";B["╗"]="┓";
B["└"]="┗";B["┕"]="┗";B["┖"]="┗";B["┗"]="┗";B["╘"]="┗";B["╙"]="┗";B["╚"]="┗";
B["┘"]="┛";B["┙"]="┛";B["┚"]="┛";B["┛"]="┛";B["╛"]="┛";B["╜"]="┛";B["╝"]="┛";
B["├"]="┣";B["┝"]="┣";B["┞"]="┣";B["┟"]="┣";
B["┠"]="┣";B["┡"]="┣";B["┢"]="┣";B["┣"]="┣";
B["╞"]="┣";B["╟"]="┣";B["╠"]="┣";
B["┤"]="┫";B["┥"]="┫";B["┦"]="┫";B["┧"]="┫";
B["┨"]="┫";B["┩"]="┫";B["┪"]="┫";B["┫"]="┫";
B["╡"]="┫";B["╢"]="┫";B["╣"]="┫";
B["┬"]="┳";B["┭"]="┳";B["┮"]="┳";B["┯"]="┳";
B["┰"]="┳";B["┱"]="┳";B["┲"]="┳";B["┳"]="┳";
B["╤"]="┳";B["╥"]="┳";B["╦"]="┳";
B["┴"]="┻";B["┵"]="┻";B["┶"]="┻";B["┷"]="┻";
B["┸"]="┻";B["┹"]="┻";B["┺"]="┻";B["┻"]="┻";
B["╧"]="┻";B["╨"]="┻";B["╩"]="┻";
B["┼"]="╋";B["┽"]="╋";B["┾"]="╋";B["┿"]="╋";B["╀"]="╋";B["╁"]="╋";
B["╂"]="╋";B["╃"]="╋";B["╄"]="╋";B["╅"]="╋";B["╆"]="╋";
B["╇"]="╋";B["╈"]="╋";B["╉"]="╋";B["╊"]="╋";B["╋"]="╋";
B["╪"]="╋";B["╫"]="╋";B["╬"]="╋";
var D = new Array(); // 二重線にする
D["─"]="═";D["━"]="═";D["═"]="═";
D["│"]="║";D["┃"]="║";D["║"]="║";
D["┌"]="╔";D["┍"]="╔";D["┎"]="╔";D["┏"]="╔";D["╒"]="╔";D["╓"]="╔";D["╔"]="╔";
D["┐"]="╗";D["┑"]="╗";D["┒"]="╗";D["┓"]="╗";D["╕"]="╗";D["╖"]="╗";D["╗"]="╗";
D["└"]="╚";D["┕"]="╚";D["┖"]="╚";D["┗"]="╚";D["╘"]="╚";D["╙"]="╚";D["╚"]="╚";
D["┘"]="╝";D["┙"]="╝";D["┚"]="╝";D["┛"]="╝";D["╛"]="╝";D["╜"]="╝";D["╝"]="╝";
D["├"]="╠";D["┝"]="╠";D["┞"]="╠";D["┟"]="╠";
D["┠"]="╠";D["┡"]="╠";D["┢"]="╠";D["┣"]="╠";
D["╞"]="╠";D["╟"]="╠";D["╠"]="╠";
D["┤"]="╣";D["┥"]="╣";D["┦"]="╣";D["┧"]="╣";
D["┨"]="╣";D["┩"]="╣";D["┪"]="╣";D["┫"]="╣";
D["╡"]="╣";D["╢"]="╣";D["╣"]="╣";
D["┬"]="╦";D["┭"]="╦";D["┮"]="╦";D["┯"]="╦";
D["┰"]="╦";D["┱"]="╦";D["┲"]="╦";D["┳"]="╦";
D["╤"]="╦";D["╥"]="╦";D["╦"]="╦";
D["┴"]="╩";D["┵"]="╩";D["┶"]="╩";D["┷"]="╩";
D["┸"]="╩";D["┹"]="╩";D["┺"]="╩";D["┻"]="╩";
D["╧"]="╩";D["╨"]="╩";D["╩"]="╩";
D["┼"]="╬";D["┽"]="╬";D["┾"]="╬";D["┿"]="╬";D["╀"]="╬";D["╁"]="╬";
D["╂"]="╬";D["╃"]="╬";D["╄"]="╬";D["╅"]="╬";D["╆"]="╬";
D["╇"]="╬";D["╈"]="╬";D["╉"]="╬";D["╊"]="╬";D["╋"]="╬";
D["╪"]="╬";D["╫"]="╬";D["╬"]="╬";
var BV = new Array(); // 縦だけ太くする
BV["─"]="─";BV["━"]="─";BV["═"]="─";
BV["│"]="┃";BV["┃"]="┃";BV["║"]="┃";
BV["┌"]="┎";BV["┍"]="┎";BV["┎"]="┎";BV["┏"]="┎";BV["╒"]="┎";BV["╓"]="┎";BV["╔"]="┎";
BV["┐"]="┒";BV["┑"]="┒";BV["┒"]="┒";BV["┓"]="┒";BV["╕"]="┒";BV["╖"]="┒";BV["╗"]="┒";
BV["└"]="┖";BV["┕"]="┖";BV["┖"]="┖";BV["┗"]="┖";BV["╘"]="┖";BV["╙"]="┖";BV["╚"]="┖";
BV["┘"]="┚";BV["┙"]="┚";BV["┚"]="┚";BV["┛"]="┚";BV["╛"]="┚";BV["╜"]="┚";BV["╝"]="┚";
BV["├"]="┠";BV["┝"]="┠";BV["┞"]="┠";BV["┟"]="┠";
BV["┠"]="┠";BV["┡"]="┠";BV["┢"]="┠";BV["┣"]="┠";
BV["╞"]="┠";BV["╟"]="┠";BV["╠"]="┠";
BV["┤"]="┨";BV["┥"]="┨";BV["┦"]="┨";BV["┧"]="┨";
BV["┨"]="┨";BV["┩"]="┨";BV["┪"]="┨";BV["┫"]="┨";
BV["╡"]="┨";BV["╢"]="┨";BV["╣"]="┨";
BV["┬"]="┰";BV["┭"]="┰";BV["┮"]="┰";BV["┯"]="┰";
BV["┰"]="┰";BV["┱"]="┰";BV["┲"]="┰";BV["┳"]="┰";
BV["╤"]="┰";BV["╥"]="┰";BV["╦"]="┰";
BV["┴"]="┸";BV["┵"]="┸";BV["┶"]="┸";BV["┷"]="┸";
BV["┸"]="┸";BV["┹"]="┸";BV["┺"]="┸";BV["┻"]="┸";
BV["╧"]="┸";BV["╨"]="┸";BV["╩"]="┸";
BV["┼"]="╂";BV["┽"]="╂";BV["┾"]="╂";BV["┿"]="╂";BV["╀"]="╂";BV["╁"]="╂";
BV["╂"]="╂";BV["╃"]="╂";BV["╄"]="╂";BV["╅"]="╂";BV["╆"]="╂";
BV["╇"]="╂";BV["╈"]="╂";BV["╉"]="╂";BV["╊"]="╂";BV["╋"]="╂";
BV["╪"]="╂";BV["╫"]="╂";BV["╬"]="╂";
var BH = new Array(); // 横だけ太くする
BH["─"]="━";BH["━"]="━";BH["═"]="━";
BH["│"]="│";BH["┃"]="│";BH["║"]="│";
BH["┌"]="┍";BH["┍"]="┍";BH["┎"]="┍";BH["┏"]="┍";BH["╒"]="┍";BH["╓"]="┍";BH["╔"]="┍";
BH["┐"]="┑";BH["┑"]="┑";BH["┒"]="┑";BH["┓"]="┑";BH["╕"]="┑";BH["╖"]="┑";BH["╗"]="┑";
BH["└"]="┕";BH["┕"]="┕";BH["┖"]="┕";BH["┗"]="┕";BH["╘"]="┕";BH["╙"]="┕";BH["╚"]="┕";
BH["┘"]="┙";BH["┙"]="┙";BH["┚"]="┙";BH["┛"]="┙";BH["╛"]="┙";BH["╜"]="┙";BH["╝"]="┙";
BH["├"]="┝";BH["┝"]="┝";BH["┞"]="┝";BH["┟"]="┝";
BH["┠"]="┝";BH["┡"]="┝";BH["┢"]="┝";BH["┣"]="┝";
BH["╞"]="┝";BH["╟"]="┝";BH["╠"]="┝";
BH["┤"]="┥";BH["┥"]="┥";BH["┦"]="┥";BH["┧"]="┥";
BH["┨"]="┥";BH["┩"]="┥";BH["┪"]="┥";BH["┫"]="┥";
BH["╡"]="┥";BH["╢"]="┥";BH["╣"]="┥";
BH["┬"]="┯";BH["┭"]="┯";BH["┮"]="┯";BH["┯"]="┯";
BH["┰"]="┯";BH["┱"]="┯";BH["┲"]="┯";BH["┳"]="┯";
BH["╤"]="┯";BH["╥"]="┯";BH["╦"]="┯";
BH["┴"]="┷";BH["┵"]="┷";BH["┶"]="┷";BH["┷"]="┷";
BH["┸"]="┷";BH["┹"]="┷";BH["┺"]="┷";BH["┻"]="┷";
BH["╧"]="┷";BH["╨"]="┷";BH["╩"]="┷";
BH["┼"]="┿";BH["┽"]="┿";BH["┾"]="┿";BH["┿"]="┿";BH["╀"]="┿";BH["╁"]="┿";
BH["╂"]="┿";BH["╃"]="┿";BH["╄"]="┿";BH["╅"]="┿";BH["╆"]="┿";
BH["╇"]="┿";BH["╈"]="┿";BH["╉"]="┿";BH["╊"]="┿";BH["╋"]="┿";
BH["╪"]="┿";BH["╫"]="┿";BH["╬"]="┿";
var DV = new Array(); // 縦だけ二重線にする
DV["─"]="─";DV["━"]="─";DV["═"]="─";
DV["│"]="║";DV["┃"]="║";DV["║"]="║";
DV["┌"]="╓";DV["┍"]="╓";DV["┎"]="╓";DV["┏"]="╓";DV["╒"]="╓";DV["╓"]="╓";DV["╔"]="╓";
DV["┐"]="╖";DV["┑"]="╖";DV["┒"]="╖";DV["┓"]="╖";DV["╕"]="╖";DV["╖"]="╖";DV["╗"]="╖";
DV["└"]="╙";DV["┕"]="╙";DV["┖"]="╙";DV["┗"]="╙";DV["╘"]="╙";DV["╙"]="╙";DV["╚"]="╙";
DV["┘"]="╜";DV["┙"]="╜";DV["┚"]="╜";DV["┛"]="╜";DV["╛"]="╜";DV["╜"]="╜";DV["╝"]="╜";
DV["├"]="╟";DV["┝"]="╟";DV["┞"]="╟";DV["┟"]="╟";
DV["┠"]="╟";DV["┡"]="╟";DV["┢"]="╟";DV["┣"]="╟";
DV["╞"]="╟";DV["╟"]="╟";DV["╠"]="╟";
DV["┤"]="╢";DV["┥"]="╢";DV["┦"]="╢";DV["┧"]="╢";
DV["┨"]="╢";DV["┩"]="╢";DV["┪"]="╢";DV["┫"]="╢";
DV["╡"]="╢";DV["╢"]="╢";DV["╣"]="╢";
DV["┬"]="╥";DV["┭"]="╥";DV["┮"]="╥";DV["┯"]="╥";
DV["┰"]="╥";DV["┱"]="╥";DV["┲"]="╥";DV["┳"]="╥";
DV["╤"]="╥";DV["╥"]="╥";DV["╦"]="╥";
DV["┴"]="╨";DV["┵"]="╨";DV["┶"]="╨";DV["┷"]="╨";
DV["┸"]="╨";DV["┹"]="╨";DV["┺"]="╨";DV["┻"]="╨";
DV["╧"]="╨";DV["╨"]="╨";DV["╩"]="╨";
DV["┼"]="╫";DV["┽"]="╫";DV["┾"]="╫";DV["┿"]="╫";DV["╀"]="╫";DV["╁"]="╫";
DV["╂"]="╫";DV["╃"]="╫";DV["╄"]="╫";DV["╅"]="╫";DV["╆"]="╫";
DV["╇"]="╫";DV["╈"]="╫";DV["╉"]="╫";DV["╊"]="╫";DV["╋"]="╫";
DV["╪"]="╫";DV["╫"]="╫";DV["╬"]="╫";
var DH = new Array(); // 横だけ二重線にする
DH["─"]="═";DH["━"]="═";DH["═"]="═";
DH["│"]="│";DH["┃"]="│";DH["║"]="│";
DH["┌"]="╒";DH["┍"]="╒";DH["┎"]="╒";DH["┏"]="╒";DH["╒"]="╒";DH["╓"]="╒";DH["╔"]="╒";
DH["┐"]="╕";DH["┑"]="╕";DH["┒"]="╕";DH["┓"]="╕";DH["╕"]="╕";DH["╖"]="╕";DH["╗"]="╕";
DH["└"]="╘";DH["┕"]="╘";DH["┖"]="╘";DH["┗"]="╘";DH["╘"]="╘";DH["╙"]="╘";DH["╚"]="╘";
DH["┘"]="╛";DH["┙"]="╛";DH["┚"]="╛";DH["┛"]="╛";DH["╛"]="╛";DH["╜"]="╛";DH["╝"]="╛";
DH["├"]="╞";DH["┝"]="╞";DH["┞"]="╞";DH["┟"]="╞";
DH["┠"]="╞";DH["┡"]="╞";DH["┢"]="╞";DH["┣"]="╞";
DH["╞"]="╞";DH["╟"]="╞";DH["╠"]="╞";
DH["┤"]="╡";DH["┥"]="╡";DH["┦"]="╡";DH["┧"]="╡";
DH["┨"]="╡";DH["┩"]="╡";DH["┪"]="╡";DH["┫"]="╡";
DH["╡"]="╡";DH["╢"]="╡";DH["╣"]="╡";
DH["┬"]="╤";DH["┭"]="╤";DH["┮"]="╤";DH["┯"]="╤";
DH["┰"]="╤";DH["┱"]="╤";DH["┲"]="╤";DH["┳"]="╤";
DH["╤"]="╤";DH["╥"]="╤";DH["╦"]="╤";
DH["┴"]="╧";DH["┵"]="╧";DH["┶"]="╧";DH["┷"]="╧";
DH["┸"]="╧";DH["┹"]="╧";DH["┺"]="╧";DH["┻"]="╧";
DH["╧"]="╧";DH["╨"]="╧";DH["╩"]="╧";
DH["┼"]="╪";DH["┽"]="╪";DH["┾"]="╪";DH["┿"]="╪";DH["╀"]="╪";DH["╁"]="╪";
DH["╂"]="╪";DH["╃"]="╪";DH["╄"]="╪";DH["╅"]="╪";DH["╆"]="╪";
DH["╇"]="╪";DH["╈"]="╪";DH["╉"]="╪";DH["╊"]="╪";DH["╋"]="╪";
DH["╪"]="╪";DH["╫"]="╪";DH["╬"]="╪";
Keisen();
function Keisen(){
// ポップアップメニュー項目ID
const nThin=30 // 細くする
const nBold=31 // 太くする
const nDouble=32; // 二重線にする
const nBoldV=33; // 縦だけ太くする
const nBoldH=34; // 横だけ太くする
const nDoubleV=35; // 縦だけ二重線にする
const nDoubleH=36; // 横だけ二重線にする
const nEsc=0; // ポップアップメニューキャンセル時の項目ID
const nSep=0; // セパレータ表示のためのダミーID
// 罫線変換のポップアップメニュー作成
var kc = CreatePopupMenu();
kc.Add("細くする(&T)", nThin);
kc.Add("太くする(&B)", nBold);
kc.Add("二重線にする(&D)", nDouble);
kc.Add("----", nSep, meMenuSeparator);
kc.Add("縦だけ太くする", nBoldV);
kc.Add("横だけ太くする", nBoldH);
kc.Add("縦だけ二重線にする", nDoubleV);
kc.Add("横だけ二重線にする", nDoubleH);
// ポップアップメニューを表示し、項目IDを受け取る
var mid = kc.Track(0);
// 項目毎に配列を決める
switch(mid){
case nEsc: break; // キャンセル
case nThin: var map = T; break; // 細くする
case nBold: var map = B; break; // 太くする
case nDouble: var map = D; break; // 二重線にする
case nBoldV: var map = BV; break; // 縦だけ太くする
case nBoldH: var map = BH; break; // 横だけ太くする
case nDoubleV: var map = DV; break; // 縦だけ二重線にする
case nDoubleH: var map = DH; break; // 横だけ二重線にする
default: break;
}
if(!map) return; // キャンセル時など変換すべき配列が存在しないなら終わる
// 配列に従い罫線変換(標準変換マクロと同じ処理)
var s1 = document.selection.Text;
var s2 = "";
for (var i = 0; i < s1.length; i++) {
if (i + 1 < s1.length) {
var c = map[s1.substring(i, i + 2)];
if (c) {
s2 += c;
i++;
continue;
}
}
var c = map[s1.substring(i, i + 1)];
if (c) {
s2 += c;
continue;
}
s2 += s1.substring(i, i + 1);
}
document.selection.Text = s2;
}
スポンサーリンク



