【動作環境】 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
=========================================================================
No.1ベストアンサー
- 回答日時:
なぜこのコードを実行している 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)
ご回答有難う御座いました。
EXCELアプリケーション起動につきましてもご指摘頂き、大変参考になりました。
社内SEに転向してからVBAを書く機会が増えましたので、今後とも宜しくお願い申し上げます。
No.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/
ご回答有難う御座いました。
社内SEに転向してからVBAを書く機会が増えましたので、WEB実例に囚われずコーディングスキルを向上させたいと思います。
今後とも宜しくお願い申し上げます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
実行時エラー 3265「要求された...
-
PowerPointVBAでスライドマスタ...
-
「Columns("A:C")」の列文字を...
-
ある文字列が全て数字であるか...
-
Excelでフィルタをかけると警告...
-
AccessVBAで「dim dbs as datab...
-
VBScriptでファイルの日時順(降...
-
上下の位置揃えについて
-
テキストボックス中の文字列の...
-
エクセルのVBAの標準モジュール...
-
VBAで Set wb = Sheets(1).Cop...
-
VBAで既に開いている別アプリケ...
-
VBAからPDFファイルにパスワー...
-
EXCEL VBA オートシェイプナン...
-
EXCELからORACLEのテーブルをse...
-
【VB】【エクセル操作】 SaveAs...
-
ExcelVBAでのNZ関数について
-
ExcelのVBAについて(グラフ操作)
-
VBScriptでASPのオブジェクトを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
エクセルのVBAの標準モジュール...
-
実行時エラー 3265「要求された...
-
VBAで既に開いている別アプリケ...
-
Excelでフィルタをかけると警告...
-
オブジェクトが見つかりません
-
EXCEL VBA オートシェイプナン...
-
VBAからPDFファイルにパスワー...
-
VBAで Set wb = Sheets(1).Cop...
-
ある文字列が全て数字であるか...
-
PowerPointVBAでスライドマスタ...
-
[VBA]CDOメッセージ送信エラー
-
AccessVBAで「dim dbs as datab...
-
VBAで作成するメール(開封確認...
-
VBからPDFファイル自動生成...
-
上下の位置揃えについて
-
ExcelVBAでのNZ関数について
-
テキストボックス中の文字列の...
-
エクセルマクロエラー「'Cells'...
おすすめ情報