ぱそくま ろご
Windows > Excelトップ > VBA FAQ

VBA FAQ

AccessのSetWarnigのように警告を非表示にしたい。
Worksheets.Application.DisplayAlerts = False
ファイルに読取りパスワードが設定されているかファイルを開かずに調べたい。
ADO経由で調べます。サンプルは以下の通りです。
'================================================================
'概 要:Excelの読み取りパスワードを調査する。
'引 数:fileName 読み取りパスワードを調べるExcelファイル名(絶対パス)
'戻り値:1 パスワードあり 0 パスワードなし
'作成者:ぱそくま
'作成日:2008/01/01
'================================================================
Private Function checkXlsFileHasPwd(fileName As String) As Integer
On Error GoTo checkXlsFileHasPwd_Err

    Dim adoCn As Object
    Dim strOpt As String

    Set adoCn = CreateObject("adodb.connection")

    strOpt = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
             "Data Source=" & fileName & ";" & _
             "Extended Properties=Excel 8.0;"

    On Error Resume Next
    Call adoCn.Open(strOpt)

    If Err.Number = -2147467259 Then
        checkXlsFileHasPwd = 1
    Else
        checkXlsFileHasPwd = 0
    End If

    adoCn.Close
    Set adoCn = Nothing

checkXlsFileHasPwd_Exit:
    Exit Function

checkXlsFileHasPwd_Err:
    checkXlsFileHasPwd = -1
    Resume checkXlsFileHasPwd_Exit

End Function