- Excel VBA 質問スレ Part36 [転載禁止]©2ch.net
67 :デフォルトの名無しさん[sage]:2015/01/19(月) 20:18:04.03 ID:vqISfLuN - win7 32bitのExcel2010のグラフ関係のマクロで変なバグに悩まされている。
グラフのプロットエリアのサイズ指定処理である時別な条件で実行時エラーがでる。 エラーがでる部分の実際のコードはこんな感じ。グラフエリアは問題なく,プロットエリアのみ発生。 With .Chart.PlotArea .Left = L <---この行で.Widthでもエラーになる。Leftメソッドが失敗しましたとか。 .Width = W ・・・ End With 特別な条件とは以下の通り。 1.Excelファイルをオープンした直後の1回目の処理のみ。(エラー後2回目は正常処理) 2.オープン直後の表示領域に特定の部分が表示されていない場合のみエラー発生。 スクロールで特定場所を一度でも画面表示した場合はエラー発生しない。 3.グラフAとBがあり,先に処理するAでは発生せず後で処理するBのみ発生。 特定の領域とはグラフAのグラフエリア下端直線部。 それなら、マクロでスクロールとかすればと思うが,表示させないとエラーとなる。 Application.ScreenUpdating = False <---これがあるとだめ。 何がおこっているのかさっぱりわからない。誰かHELP。
|
- Excel VBA 質問スレ Part36 [転載禁止]©2ch.net
71 :デフォルトの名無しさん[sage]:2015/01/19(月) 20:49:54.89 ID:vqISfLuN - >>68
3台のPCですべてだめ。win7 64bitもある。 >>69 もちろんある。こんなの。 With Sheets(1).ChartObjects(Obj) ・・・ End with
|
- Excel VBA 質問スレ Part36 [転載禁止]©2ch.net
72 :デフォルトの名無しさん[sage]:2015/01/19(月) 20:57:36.71 ID:vqISfLuN - >>70
全部は無理。前段でこんな処理しているがまずいかな。 With Sheets(1).ChartObjects(Obj).Chart With .Axes(xlValue) .TickLabels.AutoScaleFont = False .TickLabels.Font.Size = 10 End With With .Axes(xlCategory) .TickLabels.AutoScaleFont = False .TickLabels.Font.Size = 10 End With End With グラフエリア下端は目盛の表示エリアでもあるが???
|
- Excel VBA 質問スレ Part36 [転載禁止]©2ch.net
75 :デフォルトの名無しさん[sage]:2015/01/19(月) 21:19:45.00 ID:vqISfLuN - >>73
デフォルトのオブジェクトプロパティーはソースコードには書いてないし, チャートオブジェクトは数千行のソースコードの中で随時操作している。 >>74 別に何でもない。代入している変数名は省略。 そもそも99%は正常に動作するのでこの部分ではわからない。 指定の順序に問題があるかもしれないが.. With Sheets(1).ChartObjects(Obj) .Left = .Top = .Width = .Height = With .Chart.PlotArea .Format.Line.Weight = 0.5 .Left = .Width =
|
- Excel VBA 質問スレ Part36 [転載禁止]©2ch.net
76 :デフォルトの名無しさん[sage]:2015/01/19(月) 21:46:02.74 ID:vqISfLuN - 自分で考えたこと。
問題の本質は画面スクロールするだけでなぜエラーが発生しなくなるのかということ。 ソースコードの初期化でもなく,エクセル自体の内部変数の問題と予想。 どこかの,何かのプロパティを初期設定する必要があるのかもしれない。
|