[[20210203161315]] 『2軸を使ったグラフのcht.ChartTypeについて』(しのみや) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『2軸を使ったグラフのcht.ChartTypeについて』(しのみや)

 主軸に棒 第2軸に線のグラフを作成しました。

 VBAでどのグラフが選択されているかを取得しようとして以下の記述を作りました。

 Sub test()
     Dim cht     As Chart
     Dim ChtType As String
     Set cht = ActiveChart
     ChtType = cht.ChartType
 End Sub

 主軸をクリックして、サブtestを動かすとChtTypeに-4111が入ってきます。
 第2軸をクリックしても、同じく-4111です。

 「2軸を使ったグラフについて、何グラフが選択されているのか」は取ってこれるのでしょうか。

< 使用 Excel:Excel2010、使用 OS:Windows10 >


 ChtType = cht.SeriesCollection(1).ChartType

 とすることでSeriesCollection(1)となっているグラフの種類は取得できました。

 「選択しているグラフ」はどのようにするのでしょうか。
(しのみや) 2021/02/03(水) 16:49

>「選択しているグラフ」はどのようにするのでしょうか。
示されたコードでよいのでは?
ただし、XlChartType のenumについてのヘルプが不十分ということではないですか?
ご自分で作成する可能性のあるものについてのxlcxhatrtypeを調べたらどうでしょうか。
(γ) 2021/02/03(水) 18:49

[[20201223100521]]『折れ線グラフの色をマクロで設定する』(しのみや)
でSelection.PlotOrderを使ってみるとの結末を迎えた時に
「あー2軸の場合も考慮したいかもなぁ...」って漠然と考えたんですが、やっぱそうなっちゃいましたね。

 >選択しているグラフ
前トピからの流れから察するに
選択している「系列」のChartTypeのことを仰ってるのかと思いますが、でも
[[20201224151552]]『定数を何にすれば判断できるのか教えて下さい』(しのみや)
で既にpointやSeriesのChartTypeについてもやりましたので、
あれ? 今回はまた違うのかな? とも思ったりしてます。

(白茶) 2021/02/03(水) 23:53


>「選択しているグラフ」はどのようにするのでしょうか。
質問の趣旨がよくわからないです。
 
組み合わせグラフのグラフ全体を選択した場合のことを質問しているのですか?
それとも、選択しているもので場合分けする時のの話ですか?
 
後者ではないんでしょうね。それは既に何度も出ているようですから。
 
前者の場合ですが、
組み合わせグラフについては、どれもChartTypeは-4111を返すのかも知れません。
(というのは、横棒グラフと折れ線でも-4111を返しますから)
その場合は、各系列ごとのChartTypeで判断して、
何と何の組み合わせグラフか、と判断するのではないですか?
 
質問に対する答えになっているか不明ですが、
この程度の話なら、質問者さんは理解されているはずで、
質問の趣旨がよく理解できないでいます。

(γ) 2021/02/04(木) 08:32


 すみません…

 Sub test()
      Dim obj     As Object
      Dim cht     As Chart
      Set obj = Selection
      Set cht = ActiveChart

      Debug.Print cht.ChartType  ← chtになっていたので-4111が入ってきていました
 End Sub

 Debug.Print obj.ChartType ← こちらにすると必要な結果が得られました

 ただいま理解中でして、
 少し違うことがあると、どうしたらいいかわからなくなってしまいました…
 理解しようとしていないわけではないのですが、
 食事で言うとモグモグしている状態でまだ飲み込めていないのです…
 そんな状態での質問ですがご回答くださったので、解決できました。
 ありがとうございます。頑張ります。
(しのみや) 2021/02/04(木) 10:08

 参考まで。 
 Sub test()
    '' Debug.Print TypeName(Selection)
     Select Case TypeName(Selection)
     Case "Series"
         Debug.Print Selection.ChartType
     Case "ChartArea"
         Debug.Print Selection.Parent.ChartType
     End Select
 End Sub
(γ) 2021/02/04(木) 10:22

 頭がゆっくりで書き込みが分かれてしまってすみません…

 γさん
 ありがとうございます
 何が足りていないのか何が理解できているのか
 ぼんやりしながら進めているところがあって
 いろいろ抜け落ちております…
 仕方がないというと自分のことなのであれなんですが
 今は…そういう時期だと思って頑張ります。

 白茶さん
 Selection.PlotOrderについて
 自動マーカーでPointを選択している場合は、
 Selection.PlotOrderが取得できないので
 「グラフの系列を選択してください」とメッセージを出して
 Exitするようにしています。(うまく説明できているかな…)
 今後何か対応するかは考え中です…
(しのみや) 2021/02/04(木) 10:48

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.