サブルーチンでは、ワークブックを開いて、そこから読み取りを行い、閉じたいと思います。
何らかの理由で、エラーが発生します。
Run-time error '1004':
Method 'Close' of object _Workbook failed
問題を再現するための最小限のコードスニペットを特定しました。
新しいExcelファイルを作成します。その中で、ユーザーフォームを作成します。その上で、次のClickイベントコードを使用してコマンドボタンを作成します。
Private Sub CommandButton1_Click()
Dim filename As String
Dim opened_workbook As Workbook
filename = Application.GetOpenFilename() ' User selects valid Excel file
Set opened_workbook = Application.Workbooks.Open(filename)
' File operations would occur here
opened_workbook.Close ' Exception thrown here
MsgBox "If you got here, it worked!"
Unload Me
End Sub
私を本当に困惑させているのは、コマンドボタンがユーザーフォーム上にない場合(ワークシート上にあるプレーンボタン上)、同じコードではこのエラーが発生しないことです。
他に何を報告するか、この動作を説明するためにどこを見ればよいかさえわかりません(StackOverflow以外!)。私はExcelforMac 2011を使用してVBAを作成していますが、違いが生じた場合はWindowsExcel2010に移行できます。