- ベストアンサー
アクセスからエクセルのマクロを実行したいのですが
Sub エクセルのVBA実行する() Dim xlsWB As Object Dim MyFileName As String MyFileName = "C:\test.xlsx" Set xlsWB = GetObject(MyFileName) xlsWB.Application.Run xlsWB.Name & "!マクロ" Set xlsWB = Nothing End Sub と言うコードを作ったのですが エクセルファイルにはパスワードがかかっています。 パスワード付のエクセルファイルを開きマクロを実行するにはどうすればいいでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは マクロ付きなら拡張子はxlsxではなくてxlsmですよね? Sub エクセルのVBA実行する() Dim xlsAP As Object Dim xlsWB As Object Dim MyFileName As String MyFileName = "C:\temp\test.xlsm" Set xlsAP = CreateObject("Excel.Application") xlsAP.EnableEvents = False Set xlsWB = xlsAP.Workbooks.Open(MyFileName, , True, , "1234") xlsAP.Run xlsWB.Name & "!マクロ" xlsAP.EnableEvents = True xlsWB.Close False Set xlsWB = Nothing End Sub 「C:\temp\test.xlsm」でパスワードは「1234」、マクロ名は「マクロ」としてます。
その他の回答 (1)
- Prome_Lin
- ベストアンサー率42% (201/470)
エクセルで「Test.xlsx」というファイルに「1234」という読み取りパスワードのみを設定して、「D」ドライブに保存しました。 「Test.xlsx」のセルA1には「a」と入力してあります。 この状況で、アクセスのVBAから上記ファイルを開いて、画面に「a」と表示させてみました。 Sub Test() Set x = CreateObject("Excel.Application") Set y = x.Workbooks.Open(FileName:="D:\Test.xlsx", Password:="1234") Set z = y.Worksheets(1) MsgBox (z.Range("A1")) End Sub
お礼
ご回答ありがとうございました。
お礼
ご回答ありがとうございました。