質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.52%

  • VBA

    2249questions

    VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

  • Excel

    1893questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。

ExcelVBA折れ線グラフの個別のマーカーの色を変えると線の色もかわってしまう

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 8,086

jm1156

score 774

Excel2010のVBAで

折れ線グラフのマーカーの色やスタイルを、個別に変更したいのですが、
マーカーの色を変更すると、線の色まで変わってしまいます。

「マクロの記録」の機能を使うと以下のコードになります。
(記録でやったので、無駄なコードがありますが、そのままのせてます)

  ActiveSheet.ChartObjects("グラフ 1").Activate
    ActiveChart.SeriesCollection(1).Select
    ActiveChart.SeriesCollection(1).Points(2).Select
    With Selection
        .MarkerStyle = -4142
        .MarkerSize = 5
    End With
    Selection.MarkerStyle = -4168
    Selection.MarkerSize = 15
    With Selection.Format.Line
      .Visible = msoTrue
      .Weight = 5
    End With
    With Selection.Format.Line
      .Visible = msoTrue
      .ForeColor.ObjectThemeColor = msoThemeColorAccent1
      .ForeColor.TintAndShade = 0
      .ForeColor.Brightness = -0.25
      .Transparency = 0
    End With

ForeColor.ObjectThemeColor = msoThemeColorAccent1
の部分で、色を変更していると思うのですが、
「マクロの記録」で操作しているときは、
「データ要素の書式設定」で「マーカーの色」を選択して、
マーカーの色だけを変更しています。

しかし記録されたマクロを実行すると、
グラフの「線の色」も同時にマーカーの色と同じ色になってしまいます。

「線の色」と「マーカーの色」を別々にするにはどうすればいいのでしょうか?

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

マクロの記録は、操作するオブジェクトがどのようなものであるか知ったりするのに便利ですが、余計なコードも多く生成されるので、見極めが大変ですよね。
操作したいオブジェクトのクラス名を知るのに便利な方法として、TypeNameがあります。
任意のオブジェクトを選択してイミディエイトウィンドウで次のようにします。

?TypeNmae(Selection)

マーカーを選択している場合(投稿された際のコードだとActiveChart.SeriesCollection(1).Points(2).Selectの部分)で実施すれば、Pointが次の行に表示されます。
これで、個別のマーカーはPointクラスだとわかりますので、後はネットで検索するか、F2を押してオブジェクトブラウザを表示しPointクラスを選択すれば、Pointクラスのプロパティやメソッドがわかりますので、そこから関係がありそうなプロパティを探してみます。

マーカーの色を変えるのは次のプロパティになりそうです。
MarkerBackgroundColorMarkerForegroundColor(最後にIndexが付く方は、ColorIndexで指定する方式なので、普通のColorの方が使いやすいと思います)
スタイルはMarkerStyleになります。

【例】

Sub Test()
Dim myPoint As Point
    Set myPoint = Selection
    myPoint.MarkerBackgroundColor = ColorConstants.vbRed
    myPoint.MarkerForegroundColor = ColorConstants.vbBlue
    myPoint.MarkerStyle = xlMarkerStyleCircle
End Sub

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/17 09:11

    ありがとうございます。
    無事にマーカーの色だけを変更できました。

    キャンセル

同じタグがついた質問を見る

  • VBA

    2249questions

    VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

  • Excel

    1893questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。