Excel VBA質問箱 IV

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

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


3288 / 13645 ツリー ←次へ | 前へ→

【63048】任意の選択したグラフの内容を変更 kou 09/10/4(日) 10:40 質問[未読]
【63052】Re:任意の選択したグラフの内容を変更 りん 09/10/4(日) 14:45 回答[未読]
【63086】Re:任意の選択したグラフの内容を変更 kou 09/10/6(火) 12:21 お礼[未読]

【63048】任意の選択したグラフの内容を変更
質問  kou  - 09/10/4(日) 10:40 -

引用なし
パスワード
   あるグラフの情報(系列書式)を、別のグラフにコピー⇒ペーストするマクロを作成しています。

ペーストの際に、シート内の任意に選択したグラフすべてに対して処理を行いたいのですが、複数のグラフに同時に処理する方法が分かりません。
シート内のすべてのグラフ、もしくは1つだけ選択したグラフであればやれるのですが、複数選択したグラフに処理したい場合どうすればよいのでしょうか。

今のところ作ったものは以下のものです。
コマンドボタン1でグラフの情報コピー、コマンドボタン2で別のグラフにペーストするプログラムです。

Private Sub CommandButton1_Click()
Dim i As Integer

  MsgBox TypeName(Selection)
  If TypeName(Selection) = "ChartObject" Then
  
    series_count = ActiveChart.SeriesCollection.Count
    
    For i = 1 To series_count
      line_color(i) = ActiveChart.SeriesCollection(i).Border.ColorIndex
    Next i
  End If
  
End Sub

Private Sub CommandButton2_Click()
Dim i As Integer
Dim cnt As Integer

  MsgBox TypeName(Selection)
  If TypeName(Selection) = "ChartObject" Then

    cnt = ActiveChart.SeriesCollection.Count
    
    If cnt > series_count Then
      cnt = series_count
    End If
    
    For i = 1 To cnt
      ActiveChart.SeriesCollection(i).Border.ColorIndex = line_color(i)
    Next i
  
  End If
  
End Sub

【63052】Re:任意の選択したグラフの内容を変更
回答  りん E-MAIL  - 09/10/4(日) 14:45 -

引用なし
パスワード
   kou さん、こんにちわ。

>シート内のすべてのグラフ、もしくは1つだけ選択したグラフであればやれるのですが、複数選択したグラフに処理したい場合どうすればよいのでしょうか。

複数選択されている場合はループして一つずつ処理します。

Sub test()
  If TypeName(Selection) = "DrawingObjects" Then
   Set obj2 = Selection
   For Each obj1 In obj2
     If TypeName(obj1) = "ChartObject" Then
      obj1.Select
      ' 選択後の処理(ActiveChartで処理しているようなのでここで選択)
      MsgBox Selection.Name
     Else
      '他のアイテムも一緒に選択しています。
      Debug.Print TypeName(obj1) & " :処理対象外"
     End If
   Next
  Else
   '複数選択されたグラフではないほかのオブジェクト(単体グラフ含む)
   MsgBox TypeName(Selection)
  End If
  '
  Set obj1 = Nothing: Set obj2 = Nothing
End Sub

こんな感じです。

【63086】Re:任意の選択したグラフの内容を変更
お礼  kou  - 09/10/6(火) 12:21 -

引用なし
パスワード
   りん さん ありがとうございました。

無事解決しました!!

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