INDEX
Closeの概要
開いているファイルを閉じる VBAの予約語 | ||
Close 概要 Close ステートメントは、VBAで開いているファイルを閉じるために使用されます。特に、 わかりやすく説明 開いているファイルを閉じる命令。 |
||
|
Closeの基本的な使い方
以下の例では、ファイルを開いた後にCloseで閉じます。
Sub CloseFile()
Dim fileNum As Integer
fileNum = FreeFile
Open "C:\temp\sample.txt" For Output As #fileNum
Print #fileNum, "Hello, World!"
Close #fileNum
End Sub
解説:
Open
: ファイルを開く。Print
: ファイルにデータを書き込む。Close
: ファイルを閉じる(これを忘れると、ファイルがロックされることがある)。
すべての開いているファイルを閉じる
すべての開いているファイルを一度に閉じることも可能です。
Sub CloseAllFiles()
Close ' すべての開いているファイルを閉じる
End Sub
解説:
Close
だけ記述すると、すべての開いているファイルを閉じる。- 複数のファイルを開いた後、一括で閉じたい場合に便利。
Excel VBAでのCloseの活用
Excelのブックを閉じる場合にも Close
を使用できます。
Sub CloseWorkbook()
Workbooks("Sample.xlsx").Close SaveChanges:=True
End Sub
解説:
Workbooks("Sample.xlsx").Close
: 指定したExcelファイルを閉じる。SaveChanges:=True
: 変更を保存する。
開いているファイルを確認してから閉じる
ファイルが開いているかを確認し、開いていれば閉じる方法です。
Function IsWorkbookOpen(ByVal wbName As String) As Boolean
Dim wb As Workbook
On Error Resume Next
Set wb = Workbooks(wbName)
IsWorkbookOpen = Not wb Is Nothing
On Error GoTo 0
End Function
Sub CloseIfOpen()
Dim wbName As String
wbName = "Sample.xlsx"
If IsWorkbookOpen(wbName) Then
Workbooks(wbName).Close SaveChanges:=False
Else
MsgBox "ファイルは開いていません"
End If
End Sub
解説:
IsWorkbookOpen
: 指定したブックが開いているか判定。CloseIfOpen
: 開いていれば閉じる。
Excelのブックを保存せずに閉じる
変更を保存せずにExcelのブックを閉じる場合は以下のようにします。
Sub CloseWithoutSaving()
ActiveWorkbook.Close SaveChanges:=False
End Sub
解説:
ActiveWorkbook.Close SaveChanges:=False
: アクティブなブックを保存せずに閉じる。
注意点
- Close を忘れるとファイルがロックされる: 他のプログラムがアクセスできなくなることがある。
- Close はファイルごとに適用: すべてのファイルを閉じる場合は
Close
を単独で使用。 - Excelのブックを閉じる場合はWorkbooks.Closeを使う:
Close
はテキストファイル用。
よくある質問
- Q: Close をしないとどうなりますか?
- A: ファイルが開いたままになり、他のプログラムから編集できなくなる可能性があります。
- Q: すべての開いているファイルを閉じるには?
- A:
Close
だけ記述すると、すべての開いているファイルを閉じることができます。 - Q: Excelのブックを閉じるには?
- A:
Workbooks("ファイル名").Close
を使用します。
まとめ
- Close は開いているファイルを閉じるために使用する。
- Excel VBAでファイル処理の終了時に適切に使用する必要がある。
- Excelのブックを閉じるには
Workbooks.Close
を使う。 - すべてのファイルを閉じる場合は
Close
を単独で使用。