こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VB2008でEXCELのセルデータが読めません

VB2008でEXCELを開き、セルの内容を読み込もうとしましたが読み込めません。
EXCELのオープンとセルの読み込みは下記により行いました。
Dim strExcelFile As String 'エクセルファイル
Dim xlApp As Excel.Application
      Dim strExcelData As String

xlApp = CreateObject("Excel.Application")
xlApp.Workbooks.Open(Filename:=strExcelFile)
xlApp.Visible = True 'EXCELは表示されている
strExcelData = xlApp.Cells(3,4).ToString

EXCELの3列4行には数値が入っていますが、strExcelDataには"System._ ComObject"というデータが読み込まれています。
ToStringは、これをつけないとデータの型が違うとエラーになります。
EXCELのデータは文字型と思っていましたがこれも判りません。
VBの参照で「Microsoft Excel9.0Object Library」をクリックしてOKしていますが、チェックマークなどはつかず、正しく反映されたかについては未確認です。
原因の見当が皆目つかず困っています。
誤って「ディジタルライフ」-「その他」に同じ内容で投稿しています。

投稿日時 - 2010-02-14 18:01:42

QNo.5676332

すぐに回答ほしいです

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

このサイトをご参照ください。

数値型で得るには、Valueプロパティで得ます。
それから、いきなりApplicationオブジェクトのCellオブジェクトを読むのではなく、Applicationオブジェクト->Bookオブジェクト->Sheetオブジェクト->Cellオブジェクトと展開するようにしてください。
多分、正常に読めないのはこの展開がなされていないためです。

参考URL:http://7ujm.net/VB/VBEXCEL.html

投稿日時 - 2010-02-14 18:33:44

補足

ありがとうございます。
下記のように修正しましたが状況は変わりません。

app = CreateObject("Excel.Application")
strExcelFile = CurDir()
strExcelFile = strExcelFile + "\サマリー.xls"
book = app.Workbooks.Open(strExcelFile)
app.Visible = True

For intSheetNo = 1 To 4
sheet = book.Worksheets(intSheetNo)
For intColum = 1 To 50
For intLine = 1 To 50
gstrExcelData(intSheetNo, intColum, intLine) =           sheet.Cells(intColum, intLine).ToString
Next intLine
Next intColum
Next intSheetNo

デバッグするとEXCELは画面に表示されるのでセルの読み方に問題があるのでしょうか。よろしくお願いします。

投稿日時 - 2010-02-14 21:06:07

お礼

ありがとうございました。

sheet.Cells(intColum, intLine).ToString

sheet.Cells(intColum, intLine).Value
にしたところうまくいきました。感謝します。

投稿日時 - 2010-02-15 10:11:23

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問