상세 컨텐츠

본문 제목

DDE 실시간 데이터를 매크로를 이용하여 엑셀의 다른 시트에 복사하는 방법입니다.

IT 컴퓨터/엑셀

by noonwith 2014. 1. 22. 17:09

본문

반응형
증권사 DDE 데이터 COPY 방법 증권사에서 지원하는 DDE 기능 중 실시간 데이터가 엑셀의 고정 셀에 계속해서 기록 되는 경우가 있습니다. 이런 경우에는 같은 파일의 다른 시트에 복사해서 사용하면 데이터를 응용할 수 있는 범위가 넓어집니다.


매크로 내용입니다. 

 Option Explicit

 Dim Runst, on_sw


Sub Run() ' 실행

Application.OnKey "{F12}", "stop_key"

Call stop_key

End Sub

 

Public Sub Copy2cell()

DoEvents

 With Sheets("Sheet2").Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0)

 .Value = Format(Now(), "hh:mm") 

 .Offset(0, 1).Value = Sheets("Sheet1").Range("A2").Value 

 .Offset(0, 2).Value = Sheets("Sheet1").Range("B2").Value 

 .Offset(0, 3).Value = Sheets("Sheet1").Range("C2").Value 

 .Offset(0, 4).Value = Sheets("Sheet1").Range("D2").Value

 End With


 If on_sw = True Then Runst = Now + TimeValue("00:01:00") 'copy 시간을 지정 합니다

 On Error Resume Next

 Application.OnTime Runst, "Copy2cell" 

 On Error GoTo 0 

End If

 End Sub


 Sub copy_stop() '종료

 Application.OnKey "{F12}" End Sub Public Sub stop_key() '중지

 on_sw = Not on_sw

 If on_sw = True Then

 Call Copy2cell

 MsgBox "중지는 F12 키를 누르세요!", vbInformation, "중지 방법" 

Else

 On Error Resume Next

 Application.OnTime Runst, "Copy2cell", schedule:=False

 On Error GoTo 0 MsgBox "실행을 중지합니다!", vbInformation, "중 지"

 End If

 End Sub 


위 매크로 예제처럼 코스피 선물지수가  DDE를 통해서 엑셀에 실시간으로 저장 되고 파일도 자동 저장 형식일 경우 개발 도구의 매크로를 열어서 새매크로나 매크로 추가해서 위 내용을 복사합니다.

매크로를 실행하여 Sheet2에서 복사되는 데이터를 확인합니다.





아래 사진처럼 실행(Run) 후 Sheet2에 데이터가 복사 되는 것을 확인 할 수 있습니다.





 
매크로에서 지정한 시간 간격으로 복사되는 것을 확인할 수 있습니다.

예제파일 

copycell.txt


최근데이터를 맨위줄에 복사

최근데이터 맨위줄 복사.txt




반응형

관련글 더보기

댓글 영역