■ 最新の投稿

Excel×SQLテクニック:VBAでExcelテーブルを削除する(ExcelファイルへDROP TABLE )

以前、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そのものが物理的に削除されるわけではなさそうです。

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


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です