アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。

MS AccessからExcelを開いて、Excel上のデータを取得したいのですが、下記のようにしたらエラーとなりました。CellsがNGみたいなのですが、AccessではCellsは使用出来ないのでしょうか?

宜しくお願いします。

Dim oApp As Object

Set oApp = CreateObject("Excel.Application")
oApp.Visible = True

On Error Resume Next
oApp.UserControl = True

oApp.Workbooks.Open Filename:="C:\TEST\Book1.xls"

GYO = 1
Do

KI = Cells(GYO, 1).Value

MsgBox KI

GYO = GYO + 1

Loop Until Cells(GYO, 1) = ""

A 回答 (4件)

エクセルーApplication Set oApp


ブック Set bk=oApp..Workbooks.Open ・・・
シート Set sh=bk.Worksheet(”シート名")
までを省略しないで、定義し
sh.Cells(・・)とする癖をつけること。オブジェクト階層を明示するのだ。
多分こんななところが原因ではないか。
    • good
    • 0
この回答へのお礼

mogasiさん、こんにちは。

ありがとうございます。

ついつい省略してしまう癖を直します!

お礼日時:2012/01/26 17:09

できますよ。




oApp.Cells(GYO, 1).Value

もしくは

Dim oWorkbook As Object

Set oWorkbook = oApp.Workbooks.Open("C:\TEST\Book1.xls")

KI = oWorkbook.Cells(GYO, 1).Value


あとWithを使えばもう少し見栄え良くなるし処理速度も向上します。
    • good
    • 0
この回答へのお礼

o_chi_chiさん、こんにちは。

ありがとうございます。

setも有効なんですね。勉強になりました。

お礼日時:2012/01/26 17:08

"Cells"だけでは、エラーになると思います。


Applicationのコレクションなので"oApp.Cells(GYA,1).Value"としてみて下さい。

Excelだと省略しても動いてくれたと思います。
    • good
    • 0
この回答へのお礼

11zepさん、こんにちは。

ありがとうございます。

oApp.を追加したらうまく動作しました。
Excelの癖でいきなり Cells・・・・としてしまいました。 

お礼日時:2012/01/26 17:05

>AccessからExcelを開いて


ここのところがよくわかりません。
AccessとExcelは別のソフトです。

一般には、レコードセットを開いて(定義して)そこから
データを取得します。
http://www.geocities.jp/cbc_vbnet/ADO/recordset. …
    • good
    • 0
この回答へのお礼

Saturn5さん、こんにちは。

Excelに記載してあるデータをAccessのtableから探し出し、処理をする というものを作りたかったのです。説明不足ですいません。

お礼日時:2012/01/26 17:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!