電子書籍の厳選無料作品が豊富!

【動作環境】 Excel 2003
【仕様概要】 EXCEL起動時に共有フォルダ内のEXCELシートよりマスタ情報を取得し、クライアント側のマスタ情報を最新情報に更新させたい。
【質問内容】 下記コードを実行すると12行目のCopyメソッドを発行時に下記メッセージが表示されてしまいます。 初歩的なコーディング誤りと思われますが、ご教授お願い申し上げます。

[実行時エラー'1004' 'Copyメソッドは失敗しました: '_Worksheet'オブジェクト]

=========================================================================
01: Sub auto_open()
02: Dim xlApp As Excel.Application '/* EXCELオブジェクト変数宣言 - Application */
03: Dim xlBook As Excel.Workbook '/* EXCELオブジェクト変数宣言 - Workbook */
04: Dim xlSheet As Excel.Worksheet '/* EXCELオブジェクト変数宣言 - Worksheet */
05:
06: ' /* EXCELファイルオープン */
07: Set xlApp = CreateObject("Excel.Application")
08: Set xlBook = xlApp.Workbooks.Open("共有ドライブ\マスタ情報.xls")
09: Set xlSheet = xlBook.Worksheets("マスタ情報")
10:
11: ' /* マスタ情報取得(ワークシートコピー) */
12: xlSheet.Copy after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
13:
14: ' /* EXCELアプリケーション終了 */
15: xlBook.Close
16: xlApp.Quit
17:
18: ' /* EXCELオブジェクト変数解放 */
19: Set xlSheet = Nothing
20: Set xlBook = Nothing
21: Set xlApp = Nothing
22: End Sub
=========================================================================

A 回答 (2件)

Sub auto_open()


Set xlBook = Workbooks.Open("XXXX.xls")
Workbooks("XXXX.xls").Worksheets("Sheet1").Copy After:=ThisWorkbook.Worksheets(3)
xlBook.Close
End Sub
で旨くいきました。
XXXX.xlsブックのシートSheet1の内容をThisworkbookに当たるブックの第三番目のシートの後にコピー挿入しました。
これが#1で言及されていることだと思います。
あまりWEBの実例(CreateObjectの例)に囚われすぎでしょう。
参考
http://www.cocoaliz.com/excelVBA/index/38/
    • good
    • 0
この回答へのお礼

ご回答有難う御座いました。
社内SEに転向してからVBAを書く機会が増えましたので、WEB実例に囚われずコーディングスキルを向上させたいと思います。
今後とも宜しくお願い申し上げます。

お礼日時:2011/05/25 10:19

なぜこのコードを実行している Excel アプリケーションとは別に Excel アプリケーションを起動させるのでしょうか。

。。
このコードを実行している Excel アプリケーションでマスター ファイルを開けばいいと思うのですが。

Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Set xlBook = Workbooks.Open("共有ドライブ\マスタ情報.xls")
Set xlSheet = xlBook.Worksheets("マスタ情報")

xlSheet.Copy after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
    • good
    • 0
この回答へのお礼

ご回答有難う御座いました。
EXCELアプリケーション起動につきましてもご指摘頂き、大変参考になりました。
社内SEに転向してからVBAを書く機会が増えましたので、今後とも宜しくお願い申し上げます。

お礼日時:2011/05/25 10:15

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