0

現在、毎週のグラフを更新しています。データをコピーして貼り付けると、グラフが空白になります。したがって、[レイアウト]-> [軸の主水平]に移動してから、[デフォルトの軸を表示]を選択する必要があります。Axisを右クリックしてフォーマットしてから、固定してautoに移動する必要があります。それは両側にスペースを残すので、グラフを正しくするために、最大値から1を減算し、最小値に1を加算して、固定を選択して戻る必要があります。

X軸は、1週間15分間隔の日付を使用しています。マクロを使用してこのプロセスを自動化する方法はありますか?active.workbookを使用する

  • 2012年9月3日0:15
  • 2012年9月3日0:30
  • 2012年9月3日0:45
  • 2012年9月3日1:00
  • 2012年9月3日1:15
  • 2012年9月3日1:30
  • 2012年9月3日1:45

以下は私がマクロレコーダーから得たものです。ここに画像の説明を入力してください

Sub Graph()
'
' Graph Macro
'
' Keyboard Shortcut: Ctrl+q
'
    Windows("2013W21.xls").Activate

    ActiveSheet.ChartObjects("Chart 1").Activate
    ActiveChart.Axes(xlCategory).Select
    ActiveChart.Axes(xlCategory).MinimumScaleIsAuto = True
    ActiveChart.Axes(xlCategory).MaximumScaleIsAuto = True
    ActiveChart.Axes(xlCategory).MinimumScale = 41161
    ActiveChart.Axes(xlCategory).MaximumScale = 41170
    ActiveChart.Axes(xlCategory).MinimumScale = 41162
    ActiveChart.Axes(xlCategory).MaximumScale = 41169
    Selection.Delete
    Application.CutCopyMode = False
    ActiveWorkbook.Save
End Sub
4

1 に答える 1

0

サブテスター()

Dim rngDates As Range, sht As Worksheet
Dim wsf As WorksheetFunction

Set wsf = Application.WorksheetFunction
Set sht = ActiveSheet
Set rngDates = sht.Range(sht.Range("B5"), sht.Cells(Rows.Count, 2).End(xlUp))

'set x-axis (with a padding of 1 hour either side)
With ActiveSheet.ChartObjects("Chart 1").Chart
    .Axes(xlCategory).MinimumScale = wsf.Min(rngDates) - (1 / 28)
    .Axes(xlCategory).MaximumScale = wsf.Max(rngDates) + (1 / 28)
End With

サブ終了

このコードは問題を解決します。

于 2013-03-29T05:47:37.677 に答える