|
▼生茶 さん:
こんにちは。
>
>下記の様なAUTO_OPEN()の中で、データファイルにデータを書き込み、書き込み後
>別の名前でファイルを保存しますが、データファイルには"LIST"というファイルが
>参照設定されていています。別の名前でファイル保存する際、参照設定ほ解除したい
>のですが、マクロ実行すると参照設定が解除されません。
>ちなみに、On Error Resume Nextを削除し、実行するとで「中断モードでは入力
>できません」というエラーメッセージが表示されます。
>中断か、終了ボタンをクリックすると参照設定は解除されます。
>エラーメッセージを回避し、参照設定を解除出来る方法をご存知の方いらっしゃい
>ませんか!?
>
>どうぞ宜しくお願い致します。
ご提示されたコードをきっちりトレースしていませんが、
参照設定の解除を行うのは、下のマクロが記述されている
ブックのプロジェクトですねよね?
これは、
「Thisworkbook.Vbproject」で取得して見て下さい。
例えば、生茶 さんがご提示されたマクロは長いので、
簡単な例で・・・・。
参照設定される「List.xls(プロジェクト名LIst)」には、標準モジュールに
'=======================================================
Sub test()
ActiveWorkbook.Sheets(1).Cells(1, 1).Value = "ok"
End Sub
これだけのコードだとします。
この「List」を参照設定しているブックは、「reftest.xls」とします。
標準モジュールには、
'=================================================================
Sub auto_open()
Call list.test
If 参照設定解除(ThisWorkbook, "List") = 0 Then
ThisWorkbook.SaveAs ThisWorkbook.Path & "\list33.xls"
Workbooks("list.xls").Close False
End If
End Sub
'===================================================================
Function 参照設定解除(bk As Workbook, renm As String) As Long
On Error Resume Next
With bk.VBProject
.References.Remove .References(renm)
End With
参照設定解除 = Err.Number
On Error GoTo 0
End Function
これでretest.Xlsを立ち上げてAuto_Openが実行されると、
保存された「list33.xls」は、参照設定が解除されています。
まず、これが正常に動作するか確認してみて下さい。
それから、
> Application.EnableEvents = True
>
> Application.Run "'List.xls'!Orderplacejudging_Open"
' ↑ これですが、せっかく参照設定しているのに
' Runメソッド要りませんよ!!
' call list.Orderplacejudging_Open
' でいけると思いますが・・・。
これは、ちょっと感じたので記述しておきました。
|
|