0

私のアプリケーションは、フォルダー内のワード、エクセルなどの ms office ドキュメントを検索し、メタデータ内のタグを読み取ります。

しかし、関数がパスワードで保護された (パスワードが必要な) ファイルを開こうとすると、関数がハング/停止します。

ファイルがパスワードで保護されていたことを検出するにはどうすればよいですか? はいの場合、このファイルをスキップして次のファイルに進みます。

'Read Word metadata
Public Sub ReadWord(WordFileName As String)

    Dim Wapp As New Microsoft.Office.Interop.Word.Application
    Dim docWord As New Microsoft.Office.Interop.Word.Document

    If Wapp Is Nothing Then
        Wapp = New Microsoft.Office.Interop.Word.Application
    End If

    If docWord Is Nothing Then
        docWord = New Microsoft.Office.Interop.Word.Document
    Else
        docWord.Close()
    End If

    docWord = Wapp.Documents.Open(WordFileName)

    Dim _BuiltInProperties As Object = docWord.BuiltInDocumentProperties

    If Not _BuiltInProperties Is Nothing Then

        word_keyword = _BuiltInProperties("Keywords").Value

    End If

    If Not docWord Is Nothing Then
        docWord.Close()
    End If

    If Not Wapp Is Nothing Then
        Wapp.Quit()
    End If

End Sub

'Read Excel metadata
Public Sub ReadExcel(ExcelFileName As String)

    Dim Wapp As New Microsoft.Office.Interop.Excel.Application
    Dim excelbook As Microsoft.Office.Interop.Excel.Workbook

    If Wapp Is Nothing Then
        Wapp = New Microsoft.Office.Interop.Excel.Application
    End If

    excelbook = Wapp.Workbooks.Open(ExcelFileName)

    Dim _BuiltInProperties As Object = excelbook.BuiltinDocumentProperties

    If Not _BuiltInProperties Is Nothing Then
        excel_keyword = _BuiltInProperties("Keywords").Value
    End If

    If Not excelbook Is Nothing Then
        excelbook.Close()
    End If

    If Not Wapp Is Nothing Then
        Wapp.Quit()
    End If

End Sub
4

0 に答える 0