VB(A)

누적되지 않는 실시간 그래프

당근쨈 2015. 8. 9. 16:51
실시간으로 변하는 그래프
주식차트같이 누적되는 그래프가 아니라
어느 정도 누적되면 기존 데이터는 없어지고 새로운 데이터만 유입되는 방식이다.
마니또님의 코드를 99% 가져온 코드
차이점이라면
마니또님 : 주식 그래프처럼 누적 시켜나감
수정본 : 옛날 데이터는 왼쪽으로 사라지고 새로운 데이터는 오른쪽에서 나타남

이것은 원본인 마니또님의 지식인 답변


Option Explicit
Public 타임 As Date, 간격 As Date, 시간 As Range, w As Byte, wsData As Worksheet
 
Sub 시작버튼()
    간격 = [저장간격]
    Set wsData = Sheets("누적")
 
    With wsData
        w = .Range("a1").CurrentRegion.Columns.Count
        Set 시간 = .Range("a2")
    End With
 
    시간설정
    이름설정
    Application.OnTime 타임, "타이머"
End Sub
 
Sub 타이머()
    Dim r As Integer
    Dim varData As Variant
    Dim i As Integer
 
    Application.ScreenUpdating = False
 
    시간설정
    Application.OnTime 타임, "타이머"
    r = wsData.Range("D5")
 
    If [행수] = r Then
        wsData.Rows(8).Delete
    End If
 
    시간.Calculate
 
    With wsData.Cells(Rows.Count, 1).End(3)(2)
        .Resize(, w) = 시간.Resize(, w).Value2
    End With
 
    Application.ScreenUpdating = True
End Sub
 
Sub 타이머종료()
 
    On Error Resume Next
    Application.OnTime 타임, "타이머", Schedule:=False
 
End Sub
 
Sub 시간설정()
    타임 = Application.Ceiling(time + TimeValue("0:0:1"), 간격)
End Sub
 
Sub 이름설정()
    Dim a As Range, b As Range, c As Byte, d As String, f As String
 
    Set b = Range("필드_00")
    With Range("필드_00")
        .Resize(, [열수]) = .Formula
    End With
 
    With ThisWorkbook
        For c = 2 To [열수]
            f = "필드_" & Format(c - 1"00")
            d = "자료_" & Format(c - 1"00")
            .Names.Add Name:=f, RefersTo:="=누적!" & b(1, c).Address
            .Names.Add Name:=d, RefersTo:="=OFFSET(" & f & ",1,,행수)"
        Next
    End With
End Sub
 
Sub 자료초기화()
    Range("자료_00").CurrentRegion.Offset(1).EntireRow.Delete xlUp
End Sub
cs

그래프가 실시간으로 나타나는 시트

각종 설정과 데이터가 누적되는 시트