Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


45004 / 76732 ←次へ | 前へ→

【36735】Re:グラフ描画のスピードUP
回答  Kein  - 06/4/11(火) 14:02 -

引用なし
パスワード
   >※1でグラフをアクティブにせずに作図
もちろん出来ます。ChartObject型の変数を用意します。同様に系列についても、
Serie型のオブジェクト変数にセットして使う書き方が出来ます。
>※2で一度線を描いてから線種の書式設定
書式設定は、デフォルトの設定では目的と違って、実現しないようなものについてのみ
行えば良いのです。マクロの自動記録をすると、デフォルトのままなのにも拘わらず、
いちいち全ての書式を再設定するようなコードが出てくるので、ヘルプで確認
しながら削除していきます。面倒なことは承知してますが、そのような編集の過程で、
知らなかったプロパティやメソッドを覚えられるので、デメリットばかりではない
のです。

Sub 描画()
  Dim Ch As ChartObject
  Dim j As Integer
  Dim k As Double, l As Double, m As Double
  
  Set Ch = ActiveSheet.ChartObjects("グラフ 5")
  j = 10
  With Worksheets("DATA")
    k = .Range("F5").Value
    l = .Range("F4").Value
    m = .Range("E4").Value + k
  End With
  Application.ScreenUpdating = False
  While m < l
    With Ch.Chart.SeriesCollection.NewSeries
      .XValues = "=DATA!R" & j & "C48:R" & j & "C49"
      .Values = "=DATA!R" & j & "C50:R" & j & "C51"
      .Name = "x_" & m
      .Border.Weight = xlHairline
    End With
    j = j + 1: m = m + k
  Wend
  Application.ScreenUpdating = True
  Set Ch = Nothing
End Sub

>※3で系統名が""の場合の処理をしていますが、実際にはエラー
If 〜 Then 〜 Else 〜 End If の条件分岐構文について、基礎の習得が出来て
いないようです。エラーの原因は、おそらくそれでしょう。
5 hits

【36413】任意の本数のグラフを作成 わいわい 06/3/30(木) 17:15 質問
【36414】Re:任意の本数のグラフを作成 Kein 06/3/30(木) 17:28 回答
【36419】Re:任意の本数のグラフを作成 わいわい 06/3/30(木) 18:01 お礼
【36727】グラフ描画のスピードUP わいわい 06/4/11(火) 10:21 質問
【36735】Re:グラフ描画のスピードUP Kein 06/4/11(火) 14:02 回答
【39537】ワークシート上グラフのデータラベル表示 わいわい 06/6/26(月) 13:39 質問

45004 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free