エクセルシートを、Worksheetオブジェクトに代入して、連続的に取得する技
いちいち
Applcation.Workbooks(1).Worksheets(1).delete
と書くのって面倒
Dim mysht as worksheet
とオブジェクト変数を宣言しておいて
Set mysht = Application.Workbooks(1).Worksheets(i)
と、オブジェクト変数に、Worksheetオブジェクトをゲットしておけば
mysht.delete
とコードの作成が簡単
しかも、Worksheetオブジェクトに代入しているから、コードの補完機能も利用できる。まあ、With文でも書けるけど。
でも、なんとなく、こっちの方がスキ。
====================================================
Sub Get_worksheet()
Dim i As Integer
Dim j As Integer
'worksheetsではなく、worksheetをオブジェクトに指定する
Dim mysht As Worksheet
'WorkbooksにあるWoeksheetsの数をカウント
(Worksheetsコレクションのメソッド)
j = Application.Workbooks(1).Worksheets.Count
For i = 1 To j - 1
'worksheetオブジェクトに、Worksheetsオブジェクトの番号を指定して代入。
Set mysht = Application.Workbooks(1).Worksheets(i)
'警告を非表示
Application.DisplayAlerts = False
'例えば、シートを削除してみる
mysht.Delete
'一応、オブジェクトを開放
Set mysht = Nothing
Next i
MsgBox ("終了")
End Sub
====================================================
こんな感じデス。
0 件のコメント:
コメントを投稿