|
はじめまして。
早速ですが、どうしてもわからないところがあります。
WebサーバからDLしたExcelマクロにおいて、
Application.MoveAfterReturnDirectionが失敗します。
フォーム上のコマンドボタンを押して、マクロ処理が走り、フォームはアンロードされます。
その直後に右上×ボタンを押してExcelファイルを閉じようとすると、エラーになります。
こんな感じです。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error GoTo Err_End
' ==== Excelの設定 ====
With Excel.Application
' ==== Enterボタンを押したときのの移動方向 ====
.MoveAfterReturn = True 'ここでErr_Endに行っちゃう
' intDefSetMove はオープン時に取得したユーザーのデフォルト設定値, -4121とか
If IsNumeric(intDefSetMove) = True And intDefSetMove <> 0 Then
.MoveAfterReturnDirection = intDefSetMove
Else
.MoveAfterReturnDirection = xlDown
End If
Err_End:
Err_Msg = "ユーザーのExcel 設定に戻すのに失敗しました。"
If Err.Number <> 0 Then
MsgBox Err_Msg, vbOKOnly + vbInformation, "Excel 設定"
Exit Sub
End If
End Sub
環境は、
NT6.0 SP6a
Excel97 SR-1
IE5.5
です。
イミディエイトウィンドウで?Application.MoveAfterReturnDirectionすると、
しっかり値はとれているのですが…。
また、フォームが閉じた後に、どこかをクリックしてから閉じると、うまく行きます。
さらに、Excel2000では成功するのです。
GetObjectでExcelオブジェクトを作成(再取得?)してやってみても、だめでした。
フォームが閉じた後シートをアクティブにしてやっても、だめでした。
どうにかならないものでしょうか。
よろしくお願いします。
|
|