Excel VBA質問箱 IV

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

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


10183 / 76734 ←次へ | 前へ→

【72101】Re:散布図で画像をマーカ-位置に指定した角度で置きたい
発言  kanabun  - 12/5/29(火) 17:08 -

引用なし
パスワード
   ▼目指せマクロの達人 さん:

>subを走らせたところ早速エラーが出ました。「実行時エラー"91": オブジェクト変数またはWithブロック変数が設定されていません」です。
rabbitさん、 お忙しいようなので、ぼくに分かることでヒントだけ

>    With ActiveChart.SeriesCollection(1).Points(k + 1).DataLabel

のところで 「Withブロック変数が設定されていません」とのエラーになる
理由は簡単で、「ActiveChart」がないから、グラフが選択されていないから
です。
グラフが選択されていれば「ActiveChart」が存在するので、そこでエラーに
なることがありません。
しかし、グラフを選択した状態でプログラムを実行すると、今度は直前の

>    theta = Cells(k + 2, 4).Value

の部分でエラーになると思います。
これはなぜかというと、グラフを選択した状態で「アクティブ」なのは
グラフのほうで、ワークシートではありません。
> Cells(k + 2, 4).Value
はセルの前にSheet が省略されていますので、いま「アクティブな」シート
が補われます。グラフを選択しているとき「アクティブなのは埋め込みグラ
フ」なので、そこのところは なんと

    theta = ActiveChart.Cells(k + 2, 4).Value

と解釈されます!  グラフに セルというものは存在しませんから、こんどは
こちらでえらーが発生するという塩梅です(-_-)
応急処置として、
始めに 埋め込みグラフを選択しておいて、
  ActiveSheet.ChartObjects(1).Select
セルの前にシートを指定するようにコードを補えば、
    theta = ActiveSheet.Cells(k + 2, 4).Value
その部分は動くでしょうけど、本来的ではないですね。
本来、対象グラフを ActiveSheet.ChartObjects(1) のように指定し、
セル範囲を記述するときはシートを指定するのを怠らなければ、
グラフを毎回選択する必要はないのです。

それと、DataLabel ははじめての時は HasDataLabelプロパティ
が Falseになっているので、いきなり ラベルテキストをセットしようと
すると そこでもエラーが発生すると思います。

私なら、グラフの系列1 のために変数を用意してそれを利用します。
  Dim k As Long
  Dim theta As Double
  Dim Ser As Series  '系列1 用変数
    
  Set Ser = ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
  Ser.HasDataLabels = True
  For k = 1 To Ser.Points.Count '36
    theta = ActiveSheet.Cells(k + 1, 4).Value
    With Ser.Points(k).DataLabel
      Select Case theta
        Case Is <= 90
          .Text = "→"
          .Orientation = theta
        Case Is <= 270
          .Text = "←"
          .Orientation = theta - 180
        Case Else
          .Text = "→"
          .Orientation = theta - 360
      End Select
    End With
  Next
8 hits

【72075】散布図で画像をマーカ-位置に指定した角度で置きたい 目指せマクロの達人 12/5/26(土) 19:35 質問
【72079】Re:散布図で画像をマーカ-位置に指定した角... rabbit 12/5/27(日) 11:06 発言
【72083】Re:散布図で画像をマーカ-位置に指定した角... 目指せマクロの達人 12/5/27(日) 14:17 発言
【72085】Re:散布図で画像をマーカ-位置に指定した角... rabbit 12/5/27(日) 16:51 発言
【72090】Re:散布図で画像をマーカ-位置に指定した角... 目指せマクロの達人 12/5/28(月) 17:44 発言
【72097】Re:散布図で画像をマーカ-位置に指定した角... 目指せマクロの達人 12/5/29(火) 12:53 発言
【72101】Re:散布図で画像をマーカ-位置に指定した角... kanabun 12/5/29(火) 17:08 発言
【72106】Re:散布図で画像をマーカ-位置に指定した角... 目指せマクロの達人 12/5/29(火) 22:55 お礼
【72089】Re:散布図で画像をマーカ-位置に指定した角... kanabun 12/5/28(月) 16:22 発言
【72091】Re:散布図で画像をマーカ-位置に指定した角... 目指せマクロの達人 12/5/28(月) 17:55 発言
【72117】Re:散布図で画像をマーカ-位置に指定した角... rabbit 12/5/30(水) 22:02 発言
【72118】Re:散布図で画像をマーカ-位置に指定した角... あすなろ 12/5/30(水) 22:58 発言
【72120】Re:散布図で画像をマーカ-位置に指定した角... kanabun 12/5/31(木) 8:45 発言
【72121】Re:散布図で画像をマーカ-位置に指定した角... マクロはひとまずコピペ 12/5/31(木) 17:01 お礼

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