|
C:にあるフォルダ[testFD]のファイル[a.xls] をデスクトップに移動し[a.xls]を閉じるタイミングで元のフォルダ[testFD]に戻すプログラムを次の通り作成しました。どこが不具合なのか分からないのですがこのプログラムでは[a.xls]が閉じずに意図した作動になりません。ご教示のほどよろしくお願いします。
test.xls
Module1:デスクトップの移動と戻し
Option Explicit
Const myHolderName = "C:\testFD\"
Public dsktopPath As String
Public Sub Pathdsktop()
'DeskTop Pathを取得する
Dim WSH As Variant
Set WSH = CreateObject("Wscript.shell")
dsktopPath = WSH.specialfolders("DeskTop") & "\"
End Sub
Public Sub MoveMyfile(myname)
'フォルダtestFD"C:\testFD\")のExcelファイルを
'DeskToに移動する
Dim moveFile As String, motoFile As String, msg1 As String
Pathdsktop
moveFile = dsktopPath & myname
motoFile = myHolderName & myname
If Dir(moveFile) = "" Then '"byotoname"がデスクトップない時
Name motoFile As moveFile
Workbooks.Open moveFile
MsgBox myname & " は開かれましたよ! "
Else
'"byotonameがデスクトップに移動済
msg1 = myname & "は開かれていますよ!"
MsgBox msg1
End If
End Sub
Public Sub CloseMyfile(myname)
'DeskToに移動に移動したのExcelファイを操作した後
'元のフォルダtestFDに移動する
Dim moveFile As String, motoFile As String, msg3 As String
Pathdsktop
moveFile = dsktopPath & myname '
motoFile = myHolderName & myname '
On Error GoTo dbg:
Name moveFile As motoFile
msg3 = "お疲れさまでした〜"
MsgBox msg3
Unload UserForm2
Exit Sub
dbg:
msg3 = myname & "は閉じられていませんよ!"
MsgBox msg3
Unload UserForm2
End Sub
test.xls
userform2
a.xlsの開閉
Option Explicit
Private Sub CommandButton2_Click() 'Open
Dim myname As String
myname = "a.xls"
MoveMyfile myname
Unload Me
ThisWorkbook.Close
End Sub
Private Sub CommandButton12_Click() 'Close
Dim myname As String
myname = "a.xls" '
CloseMyfile myname
ThisWorkbook.Close
End Sub
a.xls
ThisWorkbook
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim moveFD As String, byotoname As String
moveFD = "C:\testMove\"
Workbooks.Open moveFD & "test.xls"
MsgBox "[a-Close]ボタンをクリックして下さい"
ThisWorkbook.Save
End Sub
|
|