• ベストアンサー

Excel:別ブックのシートの存在

ExcelのVBAで別ブックのシートの存在チェックの方法がわかりません。 別ブックの存在チェックはわかります。 現在ひらいているブックのシートの存在チェックはわかりますが、 別ブックのシートの存在チェックがわかりません。 例えば・・・ 現在開いているブックは「aaaaa.xls」とします。 ここで、「bbbbb.xls」の「abcde」と言うシートが存在しているかどうかをチェックしたいのです。 ブックは開かないで確認するのが理想ですが・・・。 わかる方、宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

If Sheet_Check("bbbbb.xls", "abcde") = True Then MsgBox ("シートがあります") Else MsgBox ("ブックまたはシートがありません") Function Sheet_Check(Book As String, Sheet As String) As Boolean Dim rt As Boolean Dim fs As Object Set fs = CreateObject("Scripting.FileSystemObject") rt = False If (fs.FileExists(Book)) Then Workbooks.Open Filename:=Book Windows(Book).Activate rt = True On Error GoTo SheetErr Sheets(Sheet).Select On Error GoTo 0 ActiveWindow.Close End If Set fs = Nothing Sheet_Check = rt Exit Function SheetErr: rt = False Resume Next End Function

GONBEBW
質問者

お礼

早速の回答、ありがとうございます。 FEX2053さんにも言いましたが、 On Error ・・・・・でしかないようですね。 わかりやすい回答ですね。

その他の回答 (1)

  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.1

プログラマーが時々やる手ですが・・・。 参照しに行って、相手が無いとエラーしますよね。そのエラーを On Error Gotoでチェックしてリカバーしてやる・・・という方法が あります。 この参照部分だけをサブルーチン(Function)にしておいて、On Errorで飛べば=1、飛ばなかったら=0とかの戻り値を与えると 参照チェックの処理だけ独立させることも出来ます。

GONBEBW
質問者

お礼

早速のご回答、ありがとうございます。 On Error ・・・・ と、言うやり方は知っていましたが、ちょっと抵抗があったので。 なんか、エラーって言うイメージで。 エラーが出る前に確認をしたいと思っていましたが、 この方法しかないようですね。

関連するQ&A