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 FunctionBkNameにフルパスを含むファイル名を入れて関数を呼びます。
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 件のコメント:
コメントを投稿