Function ファイル読込(BkName As String, ObjBk As Workbook)
Application.ScreenUpdating = False
Set ObjBk = Workbooks.Open(FileName:=BkName, Notify:=False)
' ObjBk.Windows.Application.Visible = True ' これは使わない。
Windows(ObjBk.Name).Visible = True
Application.ScreenUpdating = True
End Function
BkNameにフルパスを含むファイル名を入れて関数を呼びます。ObjBkにWorkbookのファイルポインタを入れて返します
非表示でOpenするときにはVisibleをFalseにします。
(デフォルトでTrueなのですが、説明のために。) 保存終了にするときはSaveChangesをTrueにします。
Function ファイル終了(ObjBk As Workbook)
Windows(ObjBk.Name).Visible = False
ObjBk.Close SaveChanges:=False
End Function
非表示でOpenしたファイルを保存終了すると、次からも非表示になってしまいます。そうなった場合、開いてVisibleをTrueにしてやる必要があります。
エクセルは二重起動/ネットワーク共有がうまく制御できるので、チェックしてからOpenします。
戻り値は関数名に入れるらしいです。
Function ファイルチェック(FilePath As String, FileName As String) As Boolean
Dim wb As Workbook
ファイルチェック = True
If Dir(FilePath & "\" & FileName) <> "" Then
For Each wb In Workbooks
If wb.Name = FileName Then
MsgBox FileName & "と同名のファイルが開いてます。ので開けません。"
ファイルチェック = False
Exit Function
End If
Next wb
On Error Resume Next
Open FilePath & "\" & FileName For Append As #1
Close #1
If Err.Number > 0 Then
MsgBox "どなたかが処理中です、時間を空けて再度お願いします。"
ファイルチェック = False
Exit Function
End If
On Error GoTo 0
Else
MsgBox "ファイルが存在しません。", vbExclamation
ファイルチェック = False
End If
End Function
0 件のコメント:
コメントを投稿