はじめに
Excelの罫線は、単純な表であれば入力するのにそれほど不便さは感じませんが、図形や絵のように配置したい場合、いちいち線種を変更するのが面倒です。
そこでユーザーフォームをモードレスで配置して、ボタン操作で簡単に入力できるツールを作ってみました。

作ってみると実に簡単で、マクロの記録で罫線入力のコードを出して改造するだけで完成します。
プログラム解説
以下が、T14セル(適当な位置)を選択してセルの四角を罫線で囲んだ状態を、マクロの記録で出力したものです。
Sub Macro1()
'
' Macro1 Macro
'
'
Range("T14").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThin
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
End Sub
.LineStyle = xlNoneとなっている行に関しては、該当する罫線を消している事になります。
この例ですと、斜めのライン(前半)と水平線、垂直線を消しています。(水平線、垂直線は、選択範囲の内部の線です。)
With Selection.Bordersで始まる部分が、線を描いている部分になります。
ラインに関してはいくつかオプションがあり、
LineStyle は、線の種類(実線、点線、二重線など)
ColorIndex は、線の色
TintAndShade は、線の明るさ、暗さ
Weight は、線の太さ
になります。
これをそのままユーザーフォームのボタンに割り当ててもよいのですが、今回の罫線エディターでは、ColorIndex と TintAndShade に関しては無効化する事にしました。
また、マクロの記録では余計な線を消していますが、今回の罫線エディターでは何もしない仕様にしています。
使い方

今回の罫線エディターでは、四方とその辺、斜め線などをボタンで配置しました。
ボタンを押すと、各辺の罫線が入力されます。その際、既にある罫線には影響しません。
「消」ボタンに関しては、全ての辺を消します。
「対象を消す」にチェックを入れると、対象の辺のみ消す形になります。
線種に関しては、極太、太線、細線、二重線、点線、細点線に区分しましたが、罫線のオプションでは、LineStyle の線種と、Weight の太さで決定されますので、上記の区分は適当に組み合わせています。
セルは複数選択でもOKです。斜めのラインを連続で引きたい時は、Ctrlキーを押しながらセルを選択すると矩形以外の選択も出来ます。
プログラムの詳細に関してはダウンロードしてソースコードを確認してください。
導入の仕方
罫線エディターをご自身のExcelファイルにKeisenFormを導入するには、罫線エディター.xlsmとご自身のExcelファイルを2つ開いておいて、VBEからドラッグすると簡単です。

ユーザーフォームのモジュールを入れて標準モジュールなどに、
KeisenForm.Show
などとすれば、ユーザーフォームが開いて使えるようになります。
xlsm(マクロ有効)ファイルを使えない時
罫線エディターはユーザーフォームを使いますので、xlsxのファイルでは使用できません。ただし、シートの移動などで罫線エディター.xlsmにシートを持ち込んで編集する事は出来ると思いますので試してみてください。
まとめ
今回はマクロの記録の力を借りて、思ったより簡単に作ることができました。細かい仕様などはご自身でプログラムを変更して実現してみてください。
さて、斜め線に関してですが、一つのセル内部では、右下げ斜線と左下げ斜線は別々に設定できないようです。これはExcelの仕様となりますのでご了承ください。
便利に使っていただければ幸いです。
コメント