「access vba .workbooks.open 読み取り専用」
「ACCESS VBA エクセルを 読み取り専用で開く」
といった検索で時折アクセスがあります。
Access VBAを使って、Excelのブックを読み取り専用の状態で開くには、どのようなコードを書けばいいのかを調べていた方による検索でしょう。
Excelブックを読み取り専用で開くサンプルプロシージャ
Cドライブのtempフォルダーにsample.xlsxを用意しておいて、以下のSubプロシージャを実行してください。
On Error GoTo ErrHandl
Dim xl_app As Object
Set xl_app = CreateObject("Excel.Application")
xl_app.Visible = True
Dim xl_bk As Object
Set xl_bk = _
xl_app.Workbooks.Open("C:\temp\sample.xlsx", ReadOnly:=True)
Set xl_bk = Nothing
Set xl_app = Nothing
Exit Sub
ErrHandl:
Select Case Err.Number
Case 1004
MsgBox "指定されたブックが見つかりません。"
Case Else
MsgBox Err.Description & vbCrLf & Err.Number
End Select
Err.Clear
End Sub
Excel.Workbooks.Openの引数ReadOnlyで読み取り専用で開ける
VBAのCreateObject関数の第1引数Classに、
文字列「Excel.Application」を指定することで、Excel.Applicationオブジェクトへの参照を取得し、変数xl_appへ代入しています。
Dim xl_app As Object
Set xl_app = CreateObject("Excel.Application")
この後は、実質的にExcel VBAです。
上記の「CreateObject("Excel.Application")」で、Excelが非表示で起動しますが、非表示では何が起きているかわからないので、Excel.Application.VisibleプロパティにTrueを指定することで、
Excelが見える状態にしています。
xl_app.Visible = True
この後が、
「access vba .workbooks.open 読み取り専用」
「ACCESS VBA エクセルを 読み取り専用で開く」
と検索なさった方の求めていたコードです。
Dim xl_bk As Object
Set xl_bk = _
xl_app.Workbooks.Open("C:\temp\sample.xlsx", ReadOnly:=True)
Excel.Workbooks.Openメソッドの引数ReadOnlyにTrueを指定することで、
読み取り専用の状態でブックを開き、変数xl_bkへ代入を行っています。
最終更新日時:2024-02-28 13:55
- Newer:Word VBAでDocument.Sectionsを経由してヘッダーの表を選択する
- Older:リボンの折りたたみ/展開を行うToggleRibonメソッドがWord.Windowにはある
Home » Access VBA » Access VBAでExcelブックを読み取り専用で開く