Excelの「#N/A」の値を拾うには

解決


ぽちゅ  2004-07-02 19:42:21  No: 84359  IP: [192.*.*.*]

こんにちは。
よろしくお願いします。

VBからエクセルの値を取得したいのですが
「#N/A」の値を取得しようとするとエラーが発生します。
ソースとしては下記のような感じですが
値が「#N/A」でも「err:」部に飛ばずにプログラムを
走らせる方法はありますでしょうか?
よろしくお願い致します。

Public Sub TEST()
On Error GoTo err:
    ReadPath = App.Path & "\test.xls"
    Set G_ExcelObj = Excel.Application
    Call G_ExcelObj.Workbooks.Open(FileName:=ReadPath)
    Set G_ExcelSheet = G_ExcelObj.Workbooks(Dir(ReadPath))
    Set G_ExcelSheet = G_ExcelObj.Worksheets("Sheet1")
    
    Data = G_ExcelSheet.cells(1, 1)
    Debug.Print "::" & Data
    
    Call G_ExcelObj.Workbooks(Dir(ReadPath)).Close(SaveChanges:=True)
    Set G_ExcelSheet = Nothing
    G_ExcelObj.Quit
    Set G_ExcelObj = Nothing
    Exit Sub
err:
    Debug.Print ("Err")
    Call G_ExcelObj.Workbooks(Dir(ReadPath)).Close(SaveChanges:=True)
    Set G_ExcelSheet = Nothing
    G_ExcelObj.Quit
    Set G_ExcelObj = Nothing
End Sub

編集 削除
oku  URL  2004-07-02 23:57:52  No: 84360  IP: [192.*.*.*]

エクセルのIsNA関数を使って「#N/A」の判定が出来ますよ。
MsgBox G_ExcelObj.WorksheetFunction.IsNA(cells(1, 1))
A1のセルに#N/AがあればTrueを返します。

編集 削除
ぽちゅ  2004-07-05 10:07:25  No: 84361  IP: [192.*.*.*]

ありがとうございました
出来ました
IsNAとかはVBからは使えないと思ってました
ほんとにありがとうございました

編集 削除