ADOでExcelブックに接続する

パスワード付きのエクセルファイルに接続する

Sub Excelに接続4()
'パスワード付きのエクセルファイルに接続する
Dim myCon As New ADODB.Connection, FileName As String, myPass As String
Dim conStr As String

'接続先のExcelファイルとパスワード
FileName = ThisWorkbook.Path & "\xls\DataBook_pass.xls"
myPass = "password"

'エクセルファイルを開く (ファイルが開かれていないと接続できない)
Workbooks.Open FileName, Password:=myPass

'接続文字列
conStr = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
          "Extended Properties=Excel 8.0;" & _
          "Data Source=" & FileName
'接続
myCon.Open conStr

MsgBox "Excelブックに接続完了!"

'接続を解除し、オブジェクトをクリア
myCon.Close: Set myCon = Nothing

'Excelブックを閉じる
Workbooks("DataBook_pass.xls").Close

End Sub

パスワードつきのExcelファイルに接続するには、対象ファイルが開かれていないと接続できない。
ADOには、データベースに対するユーザー名や、パスワードを指定して開くための設定が用意されているが、Excelブックのパスワードには対応していない。そのため、対象ファイルにパスワードが設定されている場合には、あらかじめパスワードを指定して開いておく必要がある。