2012-02-25 7 views
0

ファイルを開くコマンドボタンがあります。(VBA)を使用して同じファイルを開くときに既に開いている状態のExcelファイルを閉じる

ただし、同じファイルを2度目に開いた場合は、最初にファイルを閉じてから再度開く必要があります。

私はそのようなコードを探しています - 私はこの助けに非常に感謝しています。

+2

何をしようとしている?場合は、ユーザーが決めることができますかあなたはどこにいるのですか?あなたはこのことやあなたの疑問のいず​​れかにほとんど影響を与えませんでした。実際には、これに対する答えはあなたの[以前の質問](http://stackoverflow.com/a/9382034/445425)の回答への非常に小さな一歩です –

答えて

0

ワークブックにはCloseメソッドがあります。

は、それが開いている場合、いない場合は、closeメソッドを使用して、それを閉じhere

+0

これはVBAではありません – brettdj

1

チェックを参照してください。

あなただけのあなたは、単にこれを行うことができ、ワークブックの保存についての確認 を求めるプロンプトが表示されるユーザーせずにブックを閉じるしたい場合は、次のコードは、このVBAXpress Article

Function IsFileOpen(FileName As String) 
Dim iFilenum As Long 
Dim iErr As Long 

On Error Resume Next 
iFilenum = FreeFile() 
Open FileName For Input Lock Read As #iFilenum 
Close iFilenum 
iErr = Err 
On Error Goto 0 

Select Case iErr 
Case 0: IsFileOpen = False 
Case 70: IsFileOpen = True 
Case Else: Error iErr 
End Select  
End Function 

Sub test() 
    If Not IsFileOpen("C:\MyTest\volker2.xls") Then 
     Workbooks.Open "C:\MyTest\volker2.xls" 
    End If 
End Sub 

から供給された:

ActiveWorkbook.Close False 

'変更を保存せずにアクティブなブックを閉じる

ActiveWorkbook.Close True 

は「アクティブワークブックを閉じ、すべての変更

ActiveWorkbook.Close 

を節約する」アクティブワークブックを閉じ、変更内容を保存するか、あなたがいない

Workbooks("BOOK1.XLS").Close SaveChanges:=False 
+1

動作しません。既に開かれている場合、OPは終了して再開します。これはまだ開いていない場合にのみ開きます。 –

+1

これはうまくいくはずです。構文とプログラムロジックを確認する – Andrew

関連する問題