![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_05.png?e8efa67)
いつもお世話になっております。
現在、ExcelファイルのデータをAccessに取り込むVBでエラーが起こります。
(問題のおこる部分のみ、ソースを下記に記します。)
★の部分で、「実行時エラー1004 'Worksheets'メソッドは失敗しました:'_Global'オブジェクト」
というエラーが、出ます。
しかも、毎回ではなく、出たりでなかったりします。
これはなぜでしょうか?
定義の指定やappの指定に問題があるのでしょうか。
おわかりになる方がいらっしゃいましたら、ご指導願います。
宜しくお願いします。
---------------------------------------------------
Private Sub 取込み_Click()
'■変数
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim app As Object
Dim iRow As Long
Dim iUsed As Long
Dim iCnt As Long
(中略)
'■接続
Set cn = CurrentProject.Connection
'■Excelアプリの起動及びファイルオープン
Set app = CreateObject("Excel.Application")
app.Workbooks.Open filename:=CurrentProject.Path & "\h.xls"
'■レコードセットの取得
Set rs = New ADODB.Recordset
rs.Open "マスタ", cn, adOpenForwardOnly, adLockOptimistic
'■DBへのレコード追加
'h.xlsの取り込みスタート行設定
iRow = 13
''h.xlsの最終使用行 取得および設定
iUsed = Worksheets(1).UsedRange.Rows.Count'★
'MsgBox "使用行は" & iUsed & "です。"
(以下略)。。。。
No.1ベストアンサー
- 回答日時:
iUsed = Worksheets(1).UsedRange.Rows.Count'★
は少なくとも
iUsed = app.Worksheets(1).UsedRange.Rows.Count'★
であるべきだと思います。
(これでエラーが無くなるかは別かもしれませんが)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_12.png?e8efa67)
No.2
- 回答日時:
Dim app As Object
Dim sourceBook As Object
Dim sourceSheet As Object
Set app = CreateObject("Excel.Application")
Set sourceBook = app.Workbooks.Open(CurrentProject.Path & "\h.xls")
Set sourceSheet = sourceBook.Worksheets(1)
iUsed = sourceSheet.UsedRange.Rows.Count
せめてこれぐらいまでは参照をする。
>temtecomai2さま
ありがとうございます。
AccessVBAに関してはだいぶ初心者で、
参照や受け渡しの部分がまだよくわかっていません。
戴いたご意見をもとに引き続き勉強します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
AccessVBA 実行時エラー'2766'...
-
列名に変数を使うことはできな...
-
UPDATEを使ったSQL文にて
-
#1062 - '0' は索引 'PRIMARY' ...
-
SQLserver2005 nvarchar を flo...
-
AccessのMDBのオープンエラーに...
-
アクセスでエラー このフィー...
-
オラクル(PL/SQL)のエラー
-
エラーについて
-
実行時エラー459 withステート...
-
ACCESSでのINSERTについて
-
Access 実行時エラー'3075' 対...
-
Access VBAでExcel連携時のエ...
-
SQL エラー コードの一覧 につ...
-
複数フィールドの条件について
-
「1004:アプリケーション定義...
-
FETCHエラー(オラクル)
-
BULK INSERTのエラー取得は可能...
-
Access2010実行時エラー-21473525
-
Access2007について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
#1062 - '0' は索引 'PRIMARY' ...
-
アクセスでエラー このフィー...
-
列名に変数を使うことはできな...
-
実行時エラー459 withステート...
-
SQLserver2005 nvarchar を flo...
-
空白はダメというエラーの表示...
-
AccessVBA 実行時エラー'2766'...
-
オラクル(PL/SQL)のエラー
-
SQL*Loaderで「オブジェクトが...
-
UPDATEを使ったSQL文にて
-
SQLCODE=-420とはどういうエラ...
-
(素人の質問) SQL Server エ...
-
Access2010実行時エラー-21473525
-
SQL文長の制限
-
Access 実行時エラー'3075' 対...
-
SQL エラー コードの一覧 につ...
-
DocuWorksでの印刷
-
「1004:アプリケーション定義...
-
ORACLE PL/SQLの...
-
オラクルでisnumeric?
おすすめ情報