こんにちは。
いま、こちらのアンサーのレーダーチャートを並べ替えるマクロを参考しています。
https://teratail.com/questions/263200#reply-377532
例えば3つレーダーチャートを並べたら、
折り返して3つ横に並べ、また折り返していくというようにしたいです。
グラフを3つ横に並ばせることはできたのですが、
どうしても加算されていく横のカウントをもとに戻せません。。。↓
レーダーチャート数も時によって違いますので、これらをうまく処理をしたいと思っています。
どうかよろしくお願いいたします。
Sub
1 2 Dim ChartObj() As ChartObject 3 Dim MyChart As ChartObject 4 Dim iX As Integer 5 Dim lngTop As Long 6 Dim lngLeft As Long 7 Dim lngNowTop As Long 8 Dim lngNowLeft As Long 9 10 iX = 0: lngTop = 0: lngLeft = 0 11 For Each MyChart In ActiveSheet.ChartObjects 12 ' 13 'オブジェクトの取得 14 ReDim Preserve ChartObj(iX) 15 Set ChartObj(iX) = MyChart 16 ' 17 '共通 18 MyChart.Height = 100 19 MyChart.Width = 200 20 ' 21 Select Case iX 22 Case iX 23 MyChart.Top = 100 24 MyChart.Left = 50 25 lngNowTop = lngTop 26 lngNowLeft = lngLeft 27 28 29 End Select 30 ' 31 '位置移動・大きさ変更 32 If iX <= 2 Then 33 ChartObj(iX).Top = lngNowTop 34 ChartObj(iX).Left = lngLeft + 200 35 36 ElseIf iX <= 5 Then 37 lngNowTop = 100 38 39 ChartObj(iX).Top = lngNowTop 40 ChartObj(iX).Left = lngLeft + 200 41 42 43 ElseIf iX <= 8 Then 44 lngNowTop = 200 45 ChartObj(iX).Top = lngNowTop 46 ChartObj(iX).Left = lngLeft + 200 47 48 ElseIf iX <= 11 Then 49 lngNowTop = 300 50 51 ChartObj(iX).Top = lngNowTop 52 ChartObj(iX).Left = lngLeft + 200 53 54 End If 55 lngTop = ChartObj(iX).Top 56 lngLeft = ChartObj(iX).Left 57 iX = iX + 1 58 ' 59 60 Next 61 62End Sub 63コード
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/26 12:24