Microsoft Excel VBA - 複数のファイルに存在する個人情報を一度に削除する方法
◆概要
このページは、Excel VBAで複数のファイルに存在する個人情報を一度に削除する方法について記載しています。
Excelファイルにはファイルの作成者に関する情報が残されます。特定のフォルダ配下の全ファイルの個人情報の削除するコードを紹介します。
Option Explicit Public Sub RefExcelFiles() ' 「フォルダ参照」ダイアログボックスを利用して、フォルダを特定する。 Dim folderName As Variant Set folderName = CreateObject("Shell.Application") _ .BrowseForFolder( _ &O0 _ , "フォルダ選択" _ , &H1 + &H10 _ , "デスクトップ") ' フォルダが選択されたか否か判別する。 If folderName Is Nothing Then MsgBox "中止します。" Exit Sub End If ' 単純なループカウンタ Dim lp1&, lp2& ' FileSystemObjectを作成する Dim obj As Object Set obj = CreateObject("Scripting.FileSystemObject") ' 選択されたふぁおるだ配下に存在するファイル名を取り出すための変数 Dim fileName As String Dim fileNames() As String ReDim fileNames(0) As String ' 選択されたフォルダ配下に存在するファイル名を取り出す fileName = Dir(folderName.Self.Path & "\*.xls") Do While fileName <> vbNullString ' ファイル名を配列に取り組む ReDim Preserve fileNames(UBound(fileNames) + 1) As String fileNames(UBound(fileNames)) = folderName.Self.Path & "\" & fileName fileName = Dir() Loop ' すべてのExcelファイルを順次開いて閉じる For lp1 = 1 To UBound(fileNames) ' Excelファイルを書き込み可能で開く。 Workbooks.Open fileName:=fileNames(lp1), ReadOnly:=False ' 開いたファイルのブック名を取得する Dim bookName As String bookName = obj.GetFileName(fileNames(lp1)) ' 開いたファイルの個人情報の削除を可能にする Workbooks(bookName).RemovePersonalInformation = True ' 開いていたExcelファイルを保存して閉じる Application.DisplayAlerts = False Workbooks(bookName).Close SaveChanges:=True Application.DisplayAlerts = True Next ' メモリを解放する Erase fileNames ' オブジェクトを破棄する Set obj = Nothing Set folderName = Nothing End Sub
▼ページトップへ