こんにちは。
よろしくお願いします。
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
エクセルのIsNA関数を使って「#N/A」の判定が出来ますよ。
MsgBox G_ExcelObj.WorksheetFunction.IsNA(cells(1, 1))
A1のセルに#N/AがあればTrueを返します。
ありがとうございました
出来ました
IsNAとかはVBからは使えないと思ってました
ほんとにありがとうございました