|
>雛形のシート増とシート名設定について
>
>"作業シート" A列に次のようにシート名が書かれていますが、
>一部シート名が歯抜けになっている場合(10行目のように)、
>"売上実績"(雛形)のシートコピーを増やし、シート名を
>それぞれシートタブに表示するコードを作成しました。
>(シート名の数は増減します)
>
>これをArrayを使った構文に作成する事が出来ましたら
>アドバイスいただけませんでしょうか?
Arrayを使った構文を配列を使ってというように解釈して
方法はいろいろあると思いますが、・・・
Dictionaryを使って考えてみました
Sub test()
Dim WS As Worksheet
Dim myDic As Object
Dim myKey As Variant
Dim r As Range
Application.ScreenUpdating = False
'作業シート、売上実績以外のシートの削除
For Each WS In ThisWorkbook.Worksheets
If WS.Name = "作業シート" Or WS.Name = "売上実績" Then
Else
Application.DisplayAlerts = False
WS.Delete
Application.DisplayAlerts = True
End If
Next
'辞書にA列のシート名をKeyにして入れ配列の作成
Set myDic = CreateObject("Scripting.Dictionary")
With Sheets("作業シート")
For Each r In .Range("A6", .Range("A65536").End(xlUp))
If Not IsEmpty(r.Value) Then
myDic(r.Value) = Empty
End If
Next
'辞書が0でなかったら、売上実績をコピーして、名前をKeyにする
If myDic.Count > 0 Then
For Each myKey In myDic.Keys
Sheets("売上実績").Copy after:=ActiveSheet
ActiveSheet.Name = myKey
Next
End If
End With
Application.ScreenUpdating = True
End Sub
|
|