「結果」シートのように見えるように、2 つのシート「開始」のテーブルをフォーマットする必要があります。
サンプル ファイルには、「start_1」、「start_2」、「result」の 3 つのシートが含まれています。
「start_1」と「start_2」は同一です。
http://www.mediafire.com/download/n8dwli8v55lw9gl/add_a_blank_column_before_each_table.xls
上部に空白行を 1 つ追加し、タイトル行を固定します。
タスクは次のとおりです。
- 各テーブルの前に空白の列を 1 つ追加します。追加された列には、塗りつぶしの色と境界線を指定しないでください。(ここの各表は、一番上のタイトル行の結合されたセルによって識別されます)
- 空白の外側のスペースが隠されるように、データのある最後の列とデータのある最後の行を決定します。
ThisWorkbook モジュールのコード:
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim bScrUpdate As Boolean
Dim ws As Worksheet
Dim rng As Range
Application.EnableCancelKey = xlDisabled 'disable ESC key
bScrUpdate = Application.ScreenUpdating
If bScrUpdate = True Then Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "result" Then
ws.Select
Rows("1:1").Insert Shift:=xlDown
Range("A4").Select
ActiveWindow.FreezePanes = True
For Each rng In Rows("2:2").Cells
If rng.MergeCells Then
rng.MergeArea.Cells(1, 1).Select
Selection.Offset(-1, 1).EntireColumn.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
End If
Next rng
End If
Next ws
Application.DisplayAlerts = True
If Not Application.ScreenUpdating = bScrUpdate _
Then Application.ScreenUpdating = bScrUpdate
Application.EnableCancelKey = xlInterrupt 'enable ESC key
End Sub