

以前、Excel VBAからCREATE TABLEでExcelファイルにシートを作成し、そこへレコードを追加する方法を紹介しました。
Excel×SQLテクニック:VBAでテーブルを作りレコードを挿入する(ExcelファイルへCREATE TABLE & INSERT)へ
今回は、DROP TABLEもできることを紹介します。
※「C:¥Temp¥ダミーデータ.xlsx」をデータベースと見なします。ここにSheet2があります。



① 「Microsoft Office 16.0 Access database engine Object Library」を参照設定します。

② 参照設定したことで、DAOを利用できます。Excel ブックを用意して、標準モジュールに DAO を利用した次のコードを記載します。
SQLのDROP TABLEを使います。
Option Explicit
Public Sub Sample_DropSheet_DAO_01()
' DAO データベース設定用変数
Dim db As DAO.Database
' DAO レコードセット設定用変数
Dim rs As DAO.Recordset
' 単純なループカウンタ
Dim lp As Long
' 検索結果表示用文字列
Dim str As String
' "C:\Temp\ダミーデータ.xlsx"をデータベースとして開く。
Set db = DBEngine.Workspaces(0).OpenDatabase( _
"C:\Temp\ダミーデータ.xlsx" _
, False _
, False _
, "Excel 12.0;HDR=YES" _
)
' テーブルをDROP(Sheetを削除)
Call db.Execute("DROP TABLE [Sheet2$]")
' データベースを閉じる。
db.Close
Set db = Nothing
' 検索結果を表示する。
MsgBox "完了", vbOKOnly
End Sub
③ Sample_DropSheet_DAO_01を実行します。

Sheet2のデータは列名も含めてキレイさっぱりと消えましたが、Sheetそのものが物理的に削除されるわけではなさそうです。

少し、期待と違いました…




コメントを残す