2007年10月20日土曜日

第52回目 ちょっとした小物、罫線編

○第52回目 ちょっとした小物、罫線編

 これはすでに出てきているものですが、操作マクロであるために、整理して紹介はしてはいませんでしたので、罫線関係ということで紹介します。

 エクセルの操作(データ入力ではありません)で何が一番よく使いますか。

 その中にコピー関係、印刷関係はまずあがってくるでしょう。他にはどうでしょうか。
 文字の表示関係と並んで罫線関係があるのではないでしょうか。
 エクセルはまずは白紙の紙ですので、いつかの段階で罫線を引く必要が出てきます。
 ということで、今回からは"罫線関係"です。
 まず、多いのは無条件に罫線を引いてしまえということではないでしょうか(1.)。この反対として、無条件に消してしまえ(2.)というのも、人によっては頻度が多いのかもしれません。
 罫線ダイアログを出す(3.)、というのはどうでしょうか。通常は、Ctrl+1のあとタブをたぐる、という操作になります。それを一気に表示させてしまおうというものです。

 これからは個人のニーズいかんになってしまいますが、
 4.五とびに横線を引く(五は一例。飛び飛びに引く機能)
 5.細線の横線を引く
 6.太線の枠線を引く
 使われるものとしては、これくらいしか考えつきません。
 5と6は、1と2と同様にマクロの記録をとれば(Alt+T+M+R)、完了ですので省略します。
 1として、マクロの記録をとったもの(メインの部分)を次に掲げます。
  Selection.Borders(xlDiagonalDown).LineStyle = xlNone
  Selection.Borders(xlDiagonalUp).LineStyle = xlNone
  With Selection.Borders(xlEdgeLeft)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = xlAutomatic
  End With
  With Selection.Borders(xlEdgeTop)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = xlAutomatic
  End With
  With Selection.Borders(xlEdgeBottom)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = xlAutomatic
  End With
  With Selection.Borders(xlEdgeRight)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = xlAutomatic
  End With
  With Selection.Borders(xlInsideVertical)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = xlAutomatic
  End With
  With Selection.Borders(xlInsideHorizontal)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = xlAutomatic
  End With
 ちょっと冗長的ですが、考えなしにできるのが、メリットです。
 このマクロは1行指定の場合はエラーが出てしまいますが、気にせず終了させてください。

 冗長的、ここまでこの連載を重ねた後では気になりますね。

 あんちょこを見ていたら…
  Range("A1:C5").Borders.LineStyle = xlContinuous
 だけで、A1:C5に格子状に実線が引かれます。

 Range("A1:C5").select 
 と範囲を指定して、
  selection.Borders.LineStyle = xlContinuous
 でも大丈夫です。
 ばかばかしいほど省力化ができました。
 ※実行に当たってはSubとEnd Subで囲んでください。

 全部削除は、
 selection.Borders.LineStyle = xlnone
 です。

 操作マクロの記録より簡単なコマンドになりますので、5と6用の変数をまとめておきます。
 細線(xlHairLine)
 セル範囲内の横罫線(xlInsideHorizontal)
  Selection.Borders(xlInsideHorizontal).Weight = xlHairLine
 セル範囲内の縦罫線(xlInsideVertical)
  例は省略
  ※普通の実線は、 Weight = xlThin となります。

 中太線(xlMedium)
 枠線(BorderAround)
  Selection.BorderAround LineStyle := xlContinuous
  Selection.BorderAround Weight = xlThick
 太線(xlThick)
  例は省略

 これらを使った例です(範囲を指定してからの例になります)。
 Sub Line_10()
  Selection.Borders.LineStyle = xlContinuous
  Selection.Borders(xlInsideHorizontal).Weight = xlHairline
  Selection.BorderAround Weight:=xlThick
 End Sub
 実行すると、周りが太線、内部の横線が極細線、内部の縦線が普通の太さ(細線)となります。

 ※一般的に、指定していない部分はデフォルト値になりますのでその点は留意してください。

0 件のコメント: