Excel折れ線グラフですべての線の太さを一度に編集する方法はありますか?
約50個のデータ系列を含むグラフがありますが、それらすべてを調べて重みを個別に変更するには多すぎます。線が細いとデータが見づらくなり、少し簡単になります)。それらを複数選択する方法がわかりません。少しひどいようです。
編集:最終的には次のコードで動作するようになりました(VBを少し学んだ後)。グラフの読みやすさにはあまり役立たないようですが、Chrisがそれを整理するのを手伝ってくれたので、説明します。彼はダニです。
Sub onepxlines()
With Selection
MsgBox ("Selection: " & TypeName(Selection))
If TypeName(Selection) = "ChartArea" Then
Dim area As ChartArea
Set area = Selection
MsgBox ("Area parent: " & TypeName(area.Parent))
If TypeName(area.Parent) = "Chart" Then
Dim chart As chart
Set chart = area.Parent
Dim srs As Series
For Each srs In chart.SeriesCollection
srs.Format.Line.Weight = 1.5
Next
End If
End If
End With
End Sub
おそらく、次のような簡単なマクロを作成するのが最も簡単です。
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
これは、Chrisの回答のよりコピーアンドペーストに対応したバージョンです。
Sub SetWeights()
Dim srs As Series
For Each srs In ActiveChart.SeriesCollection
srs.Format.Line.Weight = 0.25
Next
End Sub
チャートを選択してマクロを実行するだけです。
機能強化:スプレッドシートのセルを指すVB変数(LineWT)を作成します。次に、「Format.Line.Weight = 0.25」の代わりに、0.25をLineWTに変更します。次に、行を変更できます。スプレッドシートで変更してマクロボタンをクリックすることにより、重みを設定できます。同様のコードを使用して、スプレッドシートへのポインタでX/Y軸名を設定できます。
これは私にとって完璧に機能しました。このコードを使用して、ブックのすべてのシートのすべてのグラフのすべての線を編集しました
Sub ChangeLineType()
'This macro will print all embedded charts in the active workbook
'
Application.ScreenUpdating = False
Dim Sht As Object
Dim Cht As ChartObject
For Each Sht In ActiveWorkbook.Sheets
For Each Cht In Sht.ChartObjects
Cht.Activate
ActiveChart.ChartArea.Select
'ActiveWindow.SelectedSheets.PrintOut
Dim srs As Series
For Each srs In ActiveChart.SeriesCollection
srs.Format.Line.Weight = 0.25
Next
Next
Next
End Sub
[ホーム]タブの[フォント]セクションで、[枠線]ドロップダウンを選択します。必要な線種または色を選択してください。鉛筆が現れます。鉛筆を使用して変更する各行をクリックする代わりに、変更するセルのグリッドの隅に移動し、CNTRLキーを押したままにします。鉛筆を必要なセルのグリッド上にドラッグすると、すべてが選択したスタイルまたは色に変わります。
このコードは、アクティブなスプレッドシート内のすべてのチャートの線幅を変更しますチャートシートを含む:
' Sets the line thickness for all charts in the active spreadsheet.
Sub ChangeLineType()
Dim Cht As Chart
Dim Chts As New Collection
Dim Sht As Object ' Can be Chart or WorkSheet
For Each Sht In ActiveWorkbook.Sheets
If TypeName(Sht) = "Chart" Then
Chts.Add Sht
Else
For Each Cht In Sht.ChartObjects
Chts.Add Cht
Next
End If
Next
Application.ScreenUpdating = False
For Each Cht In Chts
Dim Srs As Series
For Each Srs In Cht.SeriesCollection
Srs.Format.Line.Weight = 0.25
Next Srs
Next Cht
End Sub
(David Markmanの回答から採用。)
行を複数選択することはできないと思います。最も簡単な方法は、おそらく1つを変更してから、それぞれをオンに選択し、Ctrl-Yを使用して線の太さの変更をやり直すことです。