下線付きの文章をできるだけテキストエディタで作る メモ
ワードは使いたくなくて、テキストエディタを使いたいけど、
文章に下線を引くために最終的にはワードを使わざるを得ない、
というときに、できるだけテキストエディタを使う方法。
1.テキストエディタで、下線を引く所を例えば[カッコ]でくくる
例:あいうえお[ここにかせん]かきくけこ
2.ワードで、[カッコ]内の文字を下線付きの文字に置換する
例:あいうえおかきくけこ[ここにかせん]さしすせそ
3.ワードで、[カッコ]を消す
例:あいうえおかきくけこここにかせんさしすせそ
上の1~3の作業は面倒なので、マクロにする。
・秀丸用マクロ (ネットで見つけたマクロを適当に改造したもの)
このマクロにショートカットを割り当てておくと便利。
秀丸の強調表示の機能を使って[カッコ]で囲まれた部分に下線をつければ見やすい。
//選択範囲の前後に[]をつける
if (selecting == 1) { // 選択中のときのみ実行
// 選択位置
#selTopX = seltopx; // #xxxは数値変数
#selTopY = seltopy;
#selEndX = selendx;
#selEndY = selendy;
// 選択文字列
$selText = gettext(#selTopX, #selTopY, #selEndX, #selEndY, 1); // $xxxは文字列変数
// 選択解除
escape;
// 最後部へ移動
moveto #selEndX,#selEndY;
insert “]”;
// 最前部へ移動
moveto #selTopX,#selTopY;
insert “[“;
// 最後部へ移動
moveto #selEndX+2,#selEndY;
}
・ワード用マクロ (記録したマクロを少し書き換えたもの。多分いらない行もあると思う)
上から9行目の wdColorBlue の部分を変えて文字の色を変えることができる。例えば wdColorRed にすれば下線部が赤字になる。
メニューバー→ツール→ユーザー設定→コマンドタブ→分類:マクロで、このマクロを実行するボタンを作っておくと便利。
Sub 括弧を青字下線に()
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = “\[*\]”
.Replacement.Text = “^&”
.Replacement.Font.UnderlineColor = wdColorAutomatic
.Replacement.Font.Underline = wdUnderlineSingle
.Replacement.Font.Color = wdColorBlue
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchFuzzy = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = “[“
.Replacement.Text = “”
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = “]”
.Replacement.Text = “”
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.MatchFuzzy = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub