【VBA】表を整形する

サンプルプログラム概要

・罫線(実線)を引く
・指定列を真ん中寄せにする
・指定列を左上寄せにする

前提

以下のようになっている

サンプルプログラム

'変数の宣言を必須
Option Explicit

Public Const SHEET_NAME As String = "サンプルシート"
Public Const NO_COLUMN As Integer = 2
Public Const PREFECTURE_COLUMN As Integer = 3
Public Const NAME_COLUMN As Integer = 4
Public Const START_ROW As Integer = 2

Sub Sample()

    '表を整形する
    Call formatTable
    
End Sub

'表を整形する
Private Function formatTable()
    
    Dim ws As Worksheet
    Dim endRow As Double
    
    Set ws = ThisWorkbook.Worksheets(SHEET_NAME)
    
    '最終行を取得
    endRow = ws.Cells(START_ROW, NO_COLUMN).End(xlDown).Row
    
    '上下左右に罫線(実線)を引く
    range(ws.Cells(START_ROW + 1, NO_COLUMN), _
          ws.Cells(endRow, NAME_COLUMN)).Borders.LineStyle = xlContinuous
                  
    '「項番列」と「名前列」の水平位置/垂直位置を真ん中寄せにする
    range(ws.Cells(START_ROW + 1, NO_COLUMN), _
          ws.Cells(endRow, NO_COLUMN)).HorizontalAlignment = xlCenter
          
    range(ws.Cells(START_ROW + 1, NAME_COLUMN), _
          ws.Cells(endRow, NAME_COLUMN)).HorizontalAlignment = xlCenter
     
    range(ws.Cells(START_ROW + 1, NO_COLUMN), _
          ws.Cells(endRow, NO_COLUMN)).VerticalAlignment = xlCenter
          
    range(ws.Cells(START_ROW + 1, NAME_COLUMN), _
          ws.Cells(endRow, NAME_COLUMN)).VerticalAlignment = xlCenter
    
    '「都道府県」の水平位置/垂直位置を左上にする
    range(ws.Cells(START_ROW + 1, PREFECTURE_COLUMN), _
          ws.Cells(endRow, PREFECTURE_COLUMN)).HorizontalAlignment = xlLeft
          
    range(ws.Cells(START_ROW + 1, PREFECTURE_COLUMN), _
          ws.Cells(endRow, PREFECTURE_COLUMN)).VerticalAlignment = xlTop
    
    Set ws = Nothing
          
End Function

結果

タイトルとURLをコピーしました