Ads By Google
HTML ApplicationからExcelを操作したいのですがどうにもうまく出来ないところがあります。
Excelを開きxlUPにて最終行を取得したいのですが何故か結果が返ってきません。 定数の宣言はちゃんと行っていますし、アクティブシートにしないと出来ないということもわかっているのですがどうにもこうにも動いてくれません・・・どうしたらよいのでしょうか?
objExcelPath = "D:\レコード書き込みテスト.xls"
Set g_objExcelApp = GetObject(,"Excel.Application")
If Err Then
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Visible = True
objExcelApp.WorkBooks.Open objExcelPath
ElseIf g_objExcelApp.Workbooks.Count Then
For Each i In g_objExcelApp.Workbooks
If i.FullName = objExcelPath Then
MsgBox objExcelPath & "が開いているので書き込めません。" & vbCrLf & vbCrLf & _
"保存して終了してください。", vbCritical, "警告"
Exit Sub
End If
Next
Else
MsgBox "Excelは起動していますが" & objExcelPath & "を開いてないので開きます。"
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Visible = True
objExcelApp.WorkBooks.Open objExcelPath
End If
objExcelApp.WorkSheets("1nosheet").Activate
Set objExcelSheet = objExcelApp.WorkSheets("1nosheet")
RowNo = objExcelSheet.ActiveSheet.Range("J65536").End(xlUP).Row
WScript.echo RowNo 'RowNoが出ないのは何故でしょうか??
2009-02-15 00:19の質問
この質問と回答を読んで役に立った場合は「役に立つ質問」に投票してください。投票が多い質問は、役に立つ質問一覧に掲載され、より多くの人に見てもらうことができます。
回答(1)
1.
2009-02-15 04:09:40

とりあえず、エラーが発生した時の処理は、このようには書けません。
存在するファイルのJ列の最後の行番号を得る例:
Workbooks を使う時には、Application を省略しないで下さい。
このようなスクリプトからシート名を指定して実行する場合は特にアクティブシートにする必要はありません。
存在するファイルのJ列の最後の行番号を得る例:
Const xlUP=-4162 ExcelFilePath = "D:\レコード書き込みテスト.xls"
Set Excel = GetObject(ExcelFilePath)
Set book = Excel.Application.Workbooks(1)
Set Sheet = book.WorkSheets("1nosheet")
RowNo = Sheet.Range("J65536").End(xlUP).Row
WScript.Echo(RowNo)
Set Sheet = Nothing Set book = Nothing Set Excel = Nothing
Workbooks を使う時には、Application を省略しないで下さい。
このようなスクリプトからシート名を指定して実行する場合は特にアクティブシートにする必要はありません。
回答レベル : アドバイス
ありがとうございました。
なぜ出来ない出来ない???とテストしてみていましたがOn Error・・・を宣言しっぱなしでエラーが見つけられない状態でした。
おかげさまで行番号取得できました。有難うございました
Ads By Google
コメント(2)
#1. BLUEPIXY
2009-02-15 18:07:30
>>1
On Error は、書いてあったのですね。
失礼しました。
まず、動作できる部分を構築して(そこをコミットポイントとして)発展的にプログラムを作成するといいんじゃないかと思います。
昔は、Application は、省略できたように思うのですが・・
#2. mr-r00
2009-02-15 23:44:50
いえいえ本当にありがとうございました。
On Errorをプログラムからコピーし忘れた私がいけなかったので・・
段々と形になりつつあります。
ありがとうございました




