![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
エクセルで散布図を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ランキング
-
【VBA/HTML】特定のタグ要素に...
-
ajaxで追加したdom要素にscript...
-
デジタル時計の時刻合わせの方...
-
マイページはどこを開くの
-
スクリプトって、何ですか?ど...
-
一定時間おきにアラームやポッ...
-
エクセルのシート上に別のシー...
-
Javascript_submit()完了後に処...
-
[Java] Edgeでのアドレスバー非...
-
Excelでワードアートや図を常に...
-
リトルバスターズEXを中古で購...
-
小さな表示窓の呼び方は
-
Youtubeが勝手に右下に勝手に小...
-
ウイルスバスターの契約更新に...
-
「Cancel = True」とはどういう...
-
Excel操作 ウィンドウで出した...
-
Chromeは何で進むボタンが無いの?
-
どうして+3
-
Outlookでこのような表示がされ...
-
画面を開かずに値を取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PL/Iについて、教えてください。
-
MFCを使って、ひとつのkey(CStr...
-
(VBS) テキストファイル読込で...
-
【VBA/HTML】特定のタグ要素に...
-
VC++のデバッガでvectorの要素...
-
jQueryで<body>要素にマウスが...
-
ajaxで追加したdom要素にscript...
-
JQuery、セレクトボックスをル...
-
エクセルでタグの内容が取得で...
-
ファンクションキーの既存の機...
-
【VB.NET】HTML要素を取得しよ...
-
IE等のブラウザにテキスト入...
-
JavaScriptでクリップボードの...
-
フローティングのやり方について
-
デジタル時計の時刻合わせの方...
-
マイページはどこを開くの
-
ウインドウを毎回同じ位置、大...
-
エクセルのシート上に別のシー...
-
Javascript_submit()完了後に処...
-
Excelでワードアートや図を常に...
おすすめ情報