나눔터  
  HOME > 나눔터 > 묻고답하기 > 엑셀
엑셀
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내
작성자:  

 놀란토끼 (atmyhome)

추천:  2
파일:     AddQuestion1.xls (32KB) 조회:  1974
제목:   [RE]Api에 관한 질문입니다. 부탁합니다.
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

1. 엑셀 버전(95,97,2000,2002): 2000
2. 윈도우즈의 버전(win95,win98,winME,winNT,win2000,winXP): XP
3. CPU (486,PentiumI/II/III/IV...): IV
4. RAM (32,64,128,256,512MB,1G...): 256

* 아래줄에 질문을 작성하세요 >>

좋은신 분들 덕분에 조금씩 실력이 늘고 있는 초보입니다. 감사드립니다.
1초이하의 단위로 시간을 표시하는 방법에 대해서 질문을 올립니다.
자세한 질문내용은 첨부파일에 있습니다.
==============[김상수님 글에 대한 답변입니다]==============

답변이 없어서..... api허접의 답변입니다. 이해당부드립니다.

Sub DDERun()
  strVelocity = "DDES|SF10139!Volume"
  ThisWorkbook.SetLinkOnData strVelocity, "myUpdate"
End Sub

Sub myUpdate()
  With ThisWorkbook.Worksheets("price").Range("A65536").End(xlUp)(2)
    .Value = Timer / 86400
    .Offset(0, 1).Value = ThisWorkbook.Worksheets("price").Range("D2").Value
  End With
End Sub

구문을 사실상 한줄바꾸었습니다.

.Value = Timer / 86400
인데요..
초이하를 18등분 더 쪼개줍니다.(이론상으로는 1/30초 정밀도를 갖는다는데 실제 해보니까 그렇게 까지 정밀하지는 않은거 같습니다.)

따라서 김상수님의 코드가 1초내에 10번이상 수행되지 않는다면 그냥 vb함수인 timer 를 사용하여도 충분하리라 생각됩니다.
(화일첨부합니다. 검토해보세요)


그런데 시간을 정밀하게 측정하는 api는  timeGetSystemTime , timeGetTime 등이 있다고 하여(인터넷 마구 뒤져보다가 발견한거라 엉터리일수 있습니다.),
그중 timeGetTime의 용법을 사용해봤지만
이론상으로는 1/1000초의 정밀도를 갖는다고 하지만 이함수가 오히려 엉터리인거 같습니다.
시간이 거꾸로 가는 사태가 발생되더군요..
(첨부화일의 모듈2에 api함수를 기재해보았습니다.)

결론은 timer함수로 그냥 사용할수 있다면 가급적이면 api함수를 동원할게 아니라 timer함수로 참는게 좋을듯해서.......
 
[불량 게시물 신고]  
김상수놀란토끼님 감사합니다. 밤이라서 DDE가 작동을 안해서 테스트는 안해봤지만 잘 될 것 같습니다. 님의 배려에 깊은 감사를 드립니다. 항상 행복하시고 건강하세요.08-28 (22:07)
삭제 ■신고
        
  

작성일 : 2003-08-28(19:56)
최종수정일 : 2003-08-28(19:56)
 


 ◎ 관련글

  제 목   작성자   날짜
Api에 관한 질문입니다. 부탁합니다. 김상수 2003-08-28
[RE]Api에 관한 질문입니다. 부탁합니다. 놀란토끼 2003-08-28
[RE]Api에 관한 질문입니다. 부탁합니다. 놀란토끼 2003-08-29