○第132回目 罫線編-3
罫線については、既に第52回目と第53回目ちょっとした小物、罫線編で紹介しましたが、多少の機能を追加したいと思います。
1.五とびに横線を引く(五は一例。飛び飛びに引く機能)
2.細線の横線を引く
3.太線の枠線を引く
4.罫線ダイアログを出す
をご紹介しました。
通常の処理とこれらのマクロを兼用して処理をしてきましたが、もう少しマクロの範囲を拡げて、通常の処理を使わないでよいという感じにまでちかづければと思いました。
そこで、
1.指定範囲の上側または左側の罫線を引く・削除する。
2."太線の枠線を引く"を拡張して、一つの表の中をブロックに分け、そのブロック全部に枠線を引く。これによって表にかなりのアクセントがつきます。
1.について
コーディングは簡単です。
入力値として、上側に罫線を引くを11として、左を13、上を削除を91、左を93とします。単純なケースわけの処理となります。(さらにこれを拡張して、14では上と左を同時に引く、94では上と左を同時に消す、というのを考えるといいでしょう)
上を引く場合の例です。
'上を引く
Case "11"
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
End With
これをもとに
xlEdgeTop=⇒xlEdgeLeft
xlInsideHorizontal=⇒xlInsideVertical
xlContinuous=⇒xlNone(これは削除です)
に変えるとできます。
2.について
選択した範囲の枠線を太線で引くは次のとおりとなります。
Selection.BorderAround LineStyle:=xlContinuous
Selection.BorderAround Weight:=xlMedium
このマクロは全体の範囲を選択した後から動かします。
入力値は、たて見出しの列数、よこ見出しの行数、内部ブロックの列数、行数。これを-で区切って入力。不要な場合は、該当するところを0といれる。1-3-4-0とか。
入力値からそれぞれの値を取り出すことについては省略します。
それぞれを、tate_m、yoko_m、data_b1、data_b2とします。
さて、たて見出しの範囲は次のとおりとなります。
Range(Cells(gyo1, retu1), Cells(gyo9, retu1 + tate_m - 1)).Select
よこ見出しは
Range(Cells(gyo1, retu1), Cells(gyo1 + yoko_m - 1, retu9)).Select
内部のたてブロックは
ブロックの個数は、商で求めます。
p1 = (retu_cnt - tate_m) \ data_b1
となり、この回数分繰り返します。
For i = 1 To p1 Step 1 'p1がゼロの場合は引かない
Range(Cells(gyo1, retu1 + tate_m + (i - 1) * data_b1), _
Cells(gyo9, retu1 + tate_m + i * data_b1 - 1)).Select
Selection.BorderAround LineStyle:=xlContinuous
Selection.BorderAround Weight:=xlMedium
Next
内部のよこブロックは、たてと同様ですので考えてみてください。
当然各数値が0であった場合は処理をしませんので、if文できいてください。
※補足
線の太さの種類としては、太いもののほかに、通常のもの、細いものがあります。
それらは、Selection.BorderAround Weight:=のところを、xlMedium、xlThin、xlHairlineとすればいいのです。
これらの内部コードは、太線=-4138、通常線=2、細線=1となっていますから、これを使って、Selection.BorderAround Weight:=-4138とすれば同じになります。つまり、太さの調整も簡単に出来るということです。

0 件のコメント:
コメントを投稿