
エクセルで散布図をX軸=時間, Y軸=ある値で作成しています。
グラフ上の点を2度クリックすると点が選択できますが、この状態で選択されている
点のX(=時間)をマクロで取得することは可能でしょうか?
目的は『グラフ上で選択している点を選択し、その前後数秒に含まれる点のY値の平均値算出
』を自動化するためです。
ちなみに、点を選択した状態でデバッグモードでマクロを動かし、 Selection (Type Pointでした)のプロパティの中身を見てみましたがX値やY値だと思われる値を見つけることができませんでした。
No.1ベストアンサー
- 回答日時:
>点のX(=時間)をマクロで取得することは可能でしょうか?
Sub test()
If TypeName(Selection) = "Point" Then
With Selection
.ApplyDataLabels ShowCategoryName:=True
MsgBox .DataLabel.Text
.HasDataLabel = False
End With
End If
End Sub
こんな感じでDataLabelを一旦表示させて取ります。
>その前後数秒に含まれる点のY値の平均値算出..
微妙に意図が違うかもしれませんが、
以下は前後『数秒』ではなく前後の要素数の平均を取るサンプルです。
Sub test2()
Const g As Long = 5 '前後の要素数
Dim s As String 'DataLabel.Name文字列
Dim v As Variant '系列のy値
Dim idx As Long '選択した要素のindex
Dim mn As Long '前要素index
Dim mx As Long '後要素index
Dim i As Long 'Loopカウンタ
Dim sum As Double '集計用
If TypeName(Selection) = "Point" Then
With Selection
.HasDataLabel = True
s = .DataLabel.Name
.HasDataLabel = False
v = .Parent.Values
End With
idx = Val(Mid$(s, InStrRev(s, "P") + 1))
mn = Application.Max(1, idx - g)
mx = Application.Min(UBound(v), idx + g)
For i = mn To mx
sum = sum + v(i)
Next
MsgBox "要素 " & idx & vbLf & mn & " - " & mx & vbLf & _
"Ave. " & sum / (mx - mn + 1)
End If
End Sub
回答ありがとうございます。
ご教授いただいた『test2()』を少し変更するだけで、意図するマクロが作成できそうです。
また、『test()』ですが私の環境(Excel2000)では、
.ApplyDataLabels ShowCategoryName:=Trueのところでコンパイルエラーが発生したため、
http://msdn.microsoft.com/ja-jp/library/microsof …
を参考に、以下に変更することで実行できました。
.ApplyDataLabels Type:=xlDataLabelsShowLabel
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MFCを使って、ひとつのkey(CStr...
-
「Cancel = True」とはどういう...
-
デジタル時計の時刻合わせの方...
-
Youtubeのバグ
-
マイページはどこを開くの
-
Outlookでこのような表示がされ...
-
エクセルのシート上に別のシー...
-
小さな表示窓の呼び方は
-
Javascript_submit()完了後に処...
-
[Java] Edgeでのアドレスバー非...
-
ウインドウを毎回同じ位置、大...
-
スクリプトって、何ですか?ど...
-
一定時間おきにアラームやポッ...
-
パソコンを起動させたら文字の...
-
スライドショーを全画面でなく...
-
サブウィンドウを常に最前面に...
-
5ちゃんねる
-
Outlookのエラー表示について
-
PDFを(htmlのように)無限に縦...
-
別フォームから戻ったときのイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VBA/HTML】特定のタグ要素に...
-
JavaScriptでクリップボードの...
-
ajax
-
JQuery、セレクトボックスをル...
-
モーダルウィンドウにおける処...
-
PL/Iについて、教えてください。
-
エクセルでタグの内容が取得で...
-
スプレッドシートのチェックボ...
-
bxSliderで動画をスライドごと...
-
VC++のデバッガでvectorの要素...
-
WebサイトのHTMLオブジェクトの...
-
(VBS) テキストファイル読込で...
-
lispについて質問です
-
ajaxで追加したdom要素にscript...
-
MFCを使って、ひとつのkey(CStr...
-
フォームで入力時自動で次の項...
-
[C++] vector<string> の各要素...
-
VBAでセル参照して要素の順番を...
-
離れている文字の色だけ同時に...
-
デジタル時計の時刻合わせの方...
おすすめ情報