DrawingObjectsエラーについて


くもり  2009-08-20 03:44:42  No: 142428

お世話になります。

先程のとは違う件なので
新たに投稿いたしました。

VB6.0からエクセルを操作して
エクセルにグラフを表示しています。

sheet1.DrawingObjects("グラフ名").RoundedCorners = False
のところで
'DrawingObjects'メソッドは失敗しました。'_WorkSheet'オブジェクト
というエラーが出てしまいます。

sheet1は
Dim sheet1 As Excel.Worksheet
Set sheet1 = xlReportBook.Worksheets("シート名")
です。

前は出来ていたのですが
bookをfilecopyでコピーしてコピー先のbookで
処理をするように変更しました。

filecopyで何か気をつけることはありますか?
宜しくお願いします。


くもり  2009-08-21 23:45:50  No: 142429

こんにちわ

質問の意味がわかりづらいと思うので追加です。

エクセルのマクロの記録で見ると

Sheets("Sheet2").DrawingObjects("グラフ 1").RoundedCorners = False

のようになっています。

自分のVB6.0からのソースは

Dim draw_sheet As Excel.Worksheet

Set draw_sheet = xlReportBook.Worksheets(sheetname)

draw_sheet.DrawingObjects("グラフ 1").RoundedCorners = False

としています。

マクロのSheets("Sheet2")とdraw_sheetが
違うオブジェクトになってしまっていると思うのですが
どのようにしていいかわかりません。

ご教授お願いします。


特攻隊長まるるう  2009-08-22 00:51:38  No: 142430

意味は大体分かるけど、状況が分かりません。
エラーメッセージだけではハッキリ原因が分からないので、
実行されている命令でどの命令が直接の原因になっているのか?
(1行で複数の命令が実行されています。ピリオドが複数ある命令は
2行以上に分解できます)
その時の各オブジェクトの状態はどうなっているか?
(Nameプロパティをデバッグ出力すれば対象のオブジェクトを
確認できますし、エラーになりそうな情報を出力して確認もできます)
とかを順に調べていく必要があると思います。

でも、それってデバッグの基礎の基礎なので、その時点で
「どのようにしていいかわかりません。」だとよっぽど暇な
人しか相手しないんじゃないかと思います。

>マクロのSheets("Sheet2")とdraw_sheetが
>違うオブジェクトになってしまっていると思う
じゃあ、検証プログラムを作ってそうなっている事を確認
したらいいのでは?で、確かに違うのであれば、それを
説明してもらえれば対策も考えましょう。
でも、思ってるだけで本当に違うのかどうか示してないのですから
どうしようもないと思います。


くもり  2009-08-26 19:54:23  No: 142431

以前は動いていたので
Microsoft Excel 5.0/95 ブック (*.xls)形式で保存
してみたら動きました。

急ぎだったのでとりあえず、
Microsoft Excel 5.0/95 ブック (*.xls)形式のマスターを使って
それをコピーして使うことにしました。

Excel2003で動かない理由はこれから調べてみたいと思います。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加