トップページ > プログラム > 2015年01月19日 > vqISfLuN

書き込み順位&時間帯一覧

4 位/190 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000032005



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Excel VBA 質問スレ Part36 [転載禁止]©2ch.net

書き込みレス一覧

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
自分で考えたこと。

問題の本質は画面スクロールするだけでなぜエラーが発生しなくなるのかということ。
ソースコードの初期化でもなく,エクセル自体の内部変数の問題と予想。

どこかの,何かのプロパティを初期設定する必要があるのかもしれない。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。