2017-01-11 7 views
0

だから... ...私は参考のために、コードのこの部分を使用:Excelブックが開いていることを確認しますか?

Option Explicit 

Sub Sample() 
Dim Ret 

Ret = IsWorkBookOpen("C:\myWork.xlsx") 

If Ret = True Then 
    MsgBox "File is open" 
Else 
    MsgBox "File is Closed" 
End If 
End Sub 

Function IsWorkBookOpen(FileName As String) 
Dim ff As Long, ErrNo As Long 

On Error Resume Next 
ff = FreeFile() 
Open FileName For Input Lock Read As #ff 
Close ff 
ErrNo = Err 
On Error GoTo 0 

Select Case ErrNo 
Case 0: IsWorkBookOpen = False 
Case 70: IsWorkBookOpen = True 
Case Else: Error ErrNo 
End Select 
End Function 

私は私のワークブックおよびすべてのものを使用しますが、それはライン15上の構文エラーを返します:FF = FreeFile_()。

これはなぜですか?どのような構文エラーがありますか? 他のユーザーによってブックが開かれているかどうかを確認しようとしています。そのような場合は、ワークブックの値を保存できません。答えを

おかげで、D.

+1

あなたのコメントでは 'ff = FreeFile _()'と書くのですが、あなたのコード 'ff = FreeFile()'に書いてください。アンダースコアのない初期コードは正常に動作します。 –

+0

はい私は知っている...私のコードで私はff = FreeFile()を書きましたが、エラーが発生したときにそれにアンダースコアがあります。 –

+0

カッコなしで 'ff = FreeFile'を試してください。私はExcel 2016を持っています。 –

答えて

0

は、私はあなたがコピー/ VBAエディタにコードを貼り付けて行わだと思います。だから、コードをきれいにし、不要なblanckをすべて削除し、各行がどこで終了しているか確認します。

+0

こんにちは、ありがとうございます。 私はコード全体を書き換えましたが、同じエラーがありました...私はそれを過ぎてしまいましたが、最後の行に突っ込んでしまいました...もう一度構文エラー.. –

+0

"Case Else:エラーErrNo "?もしそうなら、 "ErrNo = Err.Number"を "ErrNo = Err.Number"に置き換えてください。 –

+0

はい、それはエラーです。構文エラーと言われます。Case Else:_Error ErrNo 置き換えたものを試しましたが、その行のエラー。私は本当に今混乱しています:/ –

関連する問題