プロが教えるわが家の防犯対策術!

下記の変更をVBAで行いたいのですがわかりません。
系列は2つです。

データ系列の中のどれかひとつをダブルクリックします。
あるいは、右クリック-[データ系列の書式設定(O)...]や、データ系列を選択して[書式(O)]-[選択したデータ系列(E)...]や、データ系列を選択して[Ctrl] + [1]キー でも構いません。[データ系列の書式設定]ダイアログボックスを表示させます。

[系列の順序]タブを選択します。

順序を変更したいデータ系列を、[系列の順序(S)]から選択、[上へ移動(U)]や[下へ移動(D)]ボタンで順序を変更してください。

以上、よろしくお願いします。

A 回答 (1件)

こんにちは



たぶん、対話型で、以下のようなものになるように思います。
ただし、散布図はこの範疇ではありません。

'//
Sub ChartSeriesMoving()
 Dim objChrt As ChartObject
 Dim chSries As FullSeriesCollection
 Dim nums As Integer
 Dim i, j, nm As String
 
 Set objChrt = ActiveSheet.ChartObjects(1)
 Set chSries = objChrt.Chart.FullSeriesCollection
 nums = chSries.Count
START:
 i = Application.InputBox("系列の順番の数字を入れてください。(左/上から" & nums & "までです.)")
 If VarType(i) = vbBoolean Then Exit Sub
  If Val(nums) < i Then MsgBox "数字が系列の数より多いです。", vbExclamation: Exit Sub
  nm = chSries(i).Name
  chSries(i).Select
  j = Application.InputBox(nm & "を何番目に写しますか?左/上から(左/上から" & nums & "までです.)")
  If VarType(j) = vbBoolean Then Exit Sub
  chSries(i).PlotOrder = j
  Application.ScreenUpdating = True
  Application.Wait Now + TimeSerial(0, 0, 3)
  If MsgBox("続けますか(Y), 終了しますか(N)", vbYesNo) = vbYes Then
  GoTo START
  End If
End Sub

なお、私は、リクエストされたご要望の回答者層には含まれていません。
    • good
    • 2
この回答へのお礼

回答いただいたchSries(i).PlotOrder = jを参考に「.SeriesCollection(2).PlotOrder = 1」を見つけることができました。ありがとうございました。

お礼日時:2016/11/14 09:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A