Excelでvbaを使用してファイルを削除するにはどうすればよいですか?
フォルダーから Excel ファイルを削除するには、2 つの異なる方法を使用できます。 1 つ目の方法は、削除するファイルを参照するファイル パスを取得する「Kill」ステートメントです。 2 番目のメソッドは、ファイルを削除するためのメソッドが関連付けられた FileSystemObject オブジェクトです。
これらのコードを使用するには、開発者タブから VBE (コード エディター) に移動します。
VBA(Kill関数)を使用してファイルを削除する
Kill 機能は、単一のファイルまたは複数のファイルを削除したり、ワイルドカードを使用して複数のファイルを削除したりするのに役立ちます。以下は、デスクトップ上のフォルダーからファイルを削除する 1 行のコードです。
Kill "C:UsersDellDesktopSample Datafile-one.xlsx"
削除するように指定したワークブックが存在しない場合、このコードではエラーが表示されます。
役立つリンク:マクロの実行–マクロ レコーダー– Visual Basic Editor –パーソナル マクロ ハンドブック
VBAを使用してフォルダー内のすべてのファイルを削除する
フォルダー内のすべてのファイルを削除したい場合は、ワイルドカードを使用できます。
Kill "C:UsersDellDesktopSample Data*.xl*"
FileSystemObject (オブジェクト) を使用してファイルを削除する
ファイル システム オブジェクトを使用すると、コンピュータのファイル システムにアクセスできます。詳細についてはここから学ぶことができますが、ここでファイルを削除するコードを書いてみましょう。
- まず、コード内で使用する変数を Binder および FileSystemObject として宣言する必要があります。
- その後、オブジェクト作成関数を使用して、FileSystemObject を FSO 変数に代入して返します。
- 次に、「myFile」変数にパスを割り当てて、削除するファイルに移動します。
- 最後に、「DeleteFile」メソッド (こちらを参照) を使用してファイルを削除します。
完全なコード
Sub vba_delete_file() Dim FSO Dim myFile As String Set FSO = CreateObject("Scripting.FileSystemObject") myFile = "C:UsersDellDesktopSample Datafile1.xlsx" FSO.DeleteFile myFile, True End Sub
ファイル (存在するかどうか) を確認して削除するコードを記述する必要があるとします。必要なコードは次のとおりです。
Sub vba_delete_file() Dim FSO Dim myFile As String Set FSO = CreateObject("Scripting.FileSystemObject") myFile = "C:UsersDellDesktopSample Datafile1.xlsx" If FSO.FileExists(myFile) Then FSO.DeleteFile myFile, True MsgBox "Deleted" Else MsgBox "There's no workbook with this name." End If End Sub
VBAとは
関連するチュートリアル
- VBAを使用してExcelファイル(ワークブック)をコピーする
- VBA アクティブ化ワークブック (Excel ファイル)
- VBA ワークブックを閉じる (Excel ファイル)
- VBA ワークブックの結合 (Excel ファイル)
- VBA 新しいワークブック(Excelファイル)を作成する