Excelグラフ:ユーザー定義の可変線の太さのマクロ


0

1つのグラフに複数のデータ系列があり、選択したグラフに基づいてグラフ内の約55行に太さを変えることができます。私は一度にすべての線の太さを調整する次のマクロを見ました。

Sub SetWeights()
    Dim srs As Series
    For Each srs In ActiveSheet.ChartObjects("Chart 1").Chart.SeriesCollection
        srs.Format.Line.Weight = 0.75
    Next
End Sub
  1. Excelワークシートのいずれかの列で定義されているように各線の太さが異なるようにする方法(マクロ)はありますか。

  2. 線の色やマーカーの種類を一度に変更する同様の方法はありますか(各行に異なるマーカーは不要です)。

回答:


0

はい、あなたは線の太さと色をフォーマットすることができます。

このコードはシリーズ2をフォーマットする必要があります。

Sub SetWeights()
ActiveChart.SeriesCollection(2).Select
With Selection.Format.Line
    .Visible = msoTrue
    .ForeColor.RGB = RGB(107, 197, 135)
    .Weight = 1
End With
End Sub

各シリーズをループし、毎回異なる色と太さを読み取るようにコードを変更することができます。

次のような行を追加してマーカーの種類を変更できます。

.MarkerStyle = -4142

マーカースタイルのオプションは次のとおりです。 https://msdn.microsoft.com/ja-jp/vba/excel-vba/articles/series-markerstyle-property-excel


これはいい情報です。しかし、私はマクロのコーディングについて(ほとんど何も)知らないので、あなたはこれのために完全なコードについて助言することができますか?私はどのように「ループ」するのかさえ知りません(?)
Ram Kulkarni

0

さて、次のマクロ(から取得) https://stackoverflow.com/questions/32437999/auto-adjust-excel-chart-line-weights-with-a-loop 私の最初の質問に答えます。

Sub SetWeights()
    Dim Srs As Series
    Dim myWeight As Range
    Dim £w As Range
    Dim j As Long

    Set myWeight = Range("Weights")

    j = 1

    With ActiveSheet
        For Each £w In myWeight
            If j > ActiveChart.SeriesCollection.Count Then Exit Sub
            ActiveChart.SeriesCollection(j).Format.Line.Weight = £w
            j = j + 1
        Next £w
    End With
End Sub

...そして私はそのようなグラフをプロットすることができます: これを描くことができる

私がそのようなグラフを持つことができるように、だれでもこのマクロに何らかの修正を加えることができますか?

新しい予想グラフ

ありがとうございました!


あなたの写真はあなたがやろうとしていることを明確にしています。残念ながら、線の太さはシリーズ全体に適用されます。私はあなたがこれをすることができる唯一の方法があなたのシリーズのそれぞれを2つの別々のシリーズに分けることであると思います。たとえば、「太い」部分は1つのシリーズになり、「薄い」部分は別のシリーズになります。次に、同じ色で線の太さを変えてフォーマットします。厚さが変化するデータポイントは、両方の系列になければなりません。
Bandersnatch
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.