2008-12-14

エクセルオブジェクトを変数に取り込む方法

エクセルシートを、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 件のコメント:

コメントを投稿