Excelのシート名を指定して削除する
Kappo
Excel上に同じシートフォーマットで複数配置しておいて必要な情報をシート毎に展開した場合、不要になったシートを削除したい時にプログラムでコントロールできるシート名を付けておいてこの方法で削除を行ってますよ!
この部屋の考えはデータ展開時にシートをコピーー>データ挿入するよりも、全データ展開後に不要シートを削除する方がプログラム処理が早かったです(Kappo談)
試してみてね!!
また、一番したの方にコメント欄があるからよかったら質問・感想などメッセージ入れてください
Excelのシート名を指定して削除するプログラム
●●サブルーチンプログラム●●
標準モジュール(SheetCtrl)にブログラムを記述
※標準モジュールの追加は「Excelシート内で指定した描画オブジェクトの名前を取得するプログラム」を参照してください
サブルーチンの内容
SheetDelete(shtName As String)
引数:shtName=削除するシート名
戻り値:正常に削除=True、対象のシート名が無い=False
▼プログラム▼
Public Function SheetDelete(shtName As String)
Dim Ret As Boolean
Ret = True
'シート名の有無を確認
Dim Buf As String
On Error Resume Next 'エラーがあっても続行指定
Buf = Sheets(shtName).Name
If Err.Number > 0 Then 'エラーが有った場合は値がある
Ret = False 'シート名が存在していない
Else
'--------------------
'シートの削除
Application.DisplayAlerts = False '警告OFF
Worksheets(shtName).Select
ActiveWindow.SelectedSheets.Delete
Application.DisplayAlerts = Treu '警告ON
'--------------------
End If
SheetDelete = Ret
End Function
呼び出すプログラム(例)
サブルーチンプログラムが出来たので呼びだすコマンドボタンを配置してプログラムを記述する
コマンドボタンがクリックされた時に実行されるプログラム
「CommandButton6」
※ボタンの配置方法は 「VBA:描画オブジェクトの名前取得」を参照してください
シート名=”Data1”をしていして削除する
▼プログラム▼
Dim ret As Boolean
ret = SheetDelete("Sheet1")
If ret = True Then
Call MsgBox("指定シートを削除しました", ,vbCritical+vbOKOnly, "メッセージ")
Else
Call MsgBox("シート名の指定エラー", ,vbCritical+vbOKOnly, "エラー")
End If
プログラムの実行
Data1シートがあった場合
Data1シートが無かった場合
Amazon | 本, ファッション, 家電から食品まで | アマゾン
Amazon.co.jp 公式サイト。アマゾンで本, 日用品, ファッション, 食品, ベビー用品, カー用品ほか一億種の商品をいつでもお安く。通常配送無料(一部を除く)
コメント