戻る HOME

名簿用の罫線マクロ(1/2)


 Excel で生徒名の入った一覧表を作るときに、こんな罫線を引きたくなりませんか?

   1.外枠は太線
   2.縦線は細実線
   3.横線は破線にしておいて、5人おきに細実線!


 私は、こうしたいときがよくあります。でも、けっこう面倒ですよね。一発でできたらいいのに...
 そこで、ボタン一発(あるいは、ショートカットキー)でこの罫線を引くマクロ(VBA)を作って利用しています。以下に VBA のコードを示します。このマクロは範囲を選択してから実行します。VB あるいは VBA をご存じ無い方にはまったく呪文のように見えるかもしれませんが、簡単に実現できるので、ぜひ試してみてください。

【使い方】
  1. 下のマクロをクリップボードにコピーします。(選択して [Ctrl]+C)
  2. Excel を立ち上げ新規ブックを表示したまま、[Alt]+[F11](NEC98では[GRPH]+[F11])を押して、Visual Basic Editor を起動します。(または、メニューバーの「ツール」−「マクロ」−「Visual Basic Editor」)
  3. メニューバーから「挿入」−「標準モジュール」でモジュールシート(Module1)を挿入します。
  4. モジュールシートをクリックして選択し、クリップボードから貼り付けます。([Ctrl]+P)
  5. [Alt]+[F11] で Excel に戻ります。(または、メニューバーの「表示」−「Microsoft Excel」)
  6. ワークシート上で罫線を引きたい範囲を選択(反転表示)します。
  7. [Alt]+[F8](または、メニューバーの「ツール」−「マクロ」−「マクロ」)で表示されるマクロの実行ダイアログボックスで、MyBorders が選択(反転表示)されていることを確認して、実行ボタンを押します。
できましたか?

 でも、まだ「ボタン一発」になっていませんね。次のページで解説します。

 以下、名簿用罫線マクロ(MyBorders)の VBA コードです。コピーしてお使いください。
 (なお、このマクロは Mr.Big の「教務手帳」の中でも使われています)


'
'■■■ 5行おきに実線を入れて、残りを破線に ■■■
' Keyboard Shortcut: Ctrl+Shift+B
'
Sub MyBorders()
  Dim MyTop As Integer
  Dim rw As Range

  On Error Resume Next
  Application.ScreenUpdating = False

'横線を破線に、ただし5行おきに実線
  If Selection.Rows.Count > 1 Then
    MyTop = Selection.Row
    For Each rw In Selection.Rows
      If (rw.Row - MyTop + 1) Mod 5 = 0 Then
        With rw.Borders(xlEdgeBottom)
          .LineStyle = xlContinuous
          .Weight = xlThin
        End With
      Else:
        With rw.Borders(xlEdgeBottom)
          .LineStyle = xlDot
          .Weight = xlThin
        End With
      End If
    Next rw
  End If
'外枠を太線に
  With Selection.Borders(xlEdgeLeft)
    .LineStyle = xlContinuous
    .Weight = xlMedium
  End With
  With Selection.Borders(xlEdgeTop)
    .LineStyle = xlContinuous
    .Weight = xlMedium
  End With
  With Selection.Borders(xlEdgeBottom)
    .LineStyle = xlContinuous
    .Weight = xlMedium
  End With
  With Selection.Borders(xlEdgeRight)
    .LineStyle = xlContinuous
    .Weight = xlMedium
  End With
'縦線を実線に
  If Selection.Columns.Count > 1 Then
    With Selection.Borders(xlInsideVertical)
      .LineStyle = xlContinuous
      .Weight = xlThin
    End With
  End If
End Sub



戻る     次のページ(名簿用の罫線マクロ 2/2)へ