|
▼foo さん:
こんばんは。
>最近VBAを始めた初心者です。以下のことが分から早速はまってしまいました。
>どなたかご教示ください。
>
>A、B、C、・・・・と複数のシートがあり「A」のシートで「表作成」というマクロを実行後、「B」、「C」と次々と同じマクロを実行させるには、どのようにすればよいのでしょうか。また、どのシートがアクティブでも自動的に1枚目のシートから実行させたいです。(尚、シート名とシート数は毎回違います)
>
>どうかよろしく御願いします。
考え方としては、あるシートに対しての「表作成」というプロシジャーを先に作成します。作成した「表作成」というプロシジャーのパラメータにシートオブジォクトを持たせるようにします。
後は、メインプロシジャーで最左端のシートからプロシジャー「表作成」を実行させます。
'========================================================
Sub main()
Dim idx As Long
With ThisWorkbook
For idx = 1 To .Worksheets.Count
Call 表作成(Worksheets(idx))
Next idx
End With
End Sub
'========================================================
Sub 表作成(sht As Worksheet)
With sht.Range("B3:H25")
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
With .Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Resize(1).Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
End With
End Sub
プロシジャー「表作成」の中のコードは一例なので、ここをfooさんのコードを書き直してください。
|
|