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

解決


ぽちゅ  2004-07-03 04:42:21  No: 84359

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

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-03 08:57:52  No: 84360

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


ぽちゅ  2004-07-05 19:07:25  No: 84361

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加