• 카테고리

    질문 & 답변
  • 세부 분야

    오피스

  • 해결 여부

    미해결

셀에 있는 문자를 소리(스피커)로 듣기?

22.05.23 01:44 작성 조회수 380

0

엑셀에서 해당 셀의 문자의 소리를 듣기 위해 

1) Application.Speech.Speak Range("c5").Cells  명령을 이용하고 (c5="완료") 있습니다..그런데 속도가 한템포 느리게 나서 사용을 못하고 있습니다. 하여, 아래의 명령

If Range("c5") = "완료" Then Beep

으로 대체하여 윈도의 자체사운드인 beep를 사용하니 속도가 굉장히 빠른 것으로 확인되었습니다.저는 beep음보다는 
"완료"라는 소리를 들어야 작업중 오류발생률이 현저하게 낮아집니다. 하여,

2) 별도 윈도우의 사운드장치에 소리("완료")를 입력하여 이용할 수 있다고는 할 수 있다고 본 것 같습니다. 

그런데, 상기의 방법외에 VBA만으로 속도를 빠르게 할 수 있는 방법은 없는 지 궁금합니다.

답변 2

·

답변을 작성해보세요.

0

James Lee님의 프로필

James Lee

질문자

2022.05.23

빠른 답변에 진심으로 감사드립니다.

 

선생님께서 말씀하신대로 진행하여 보니 

1)항의 경우는 기존 beep 음보다는 느리나 기존의 "완료"를 읽는 속도는 상당히 빨라졌습니다.

 많은 데이터를 스캔하여 진행이 완료된 서류를 찾는 것인데요...양이 2만에서 3만건정도 되는데도 

 현재의 속도를 따라갈 줄지가 의문입니다.?

혹 엑셀이   DATA증가로 인해 늦어진다고 하면 혹 다른 방법은 없는지 더 궁금해집니다.?

 

2)항의 경우는 실제 1)항보다 속도가 느렸습니다. 기존의 명령문으로  "완료"를 앍는 속도와 유사했습니다.

단지, 셀내용을 읽는 속도를 조절함으로써 문장같이 긴 경우에 쓰면 효과적일 것 같습니다.

하여, 스캔 후 완료서류를 찾는 일에 적용하기는 어려울 것 같습니다.

 

 

 

0

James Lee님. 안녕하세요?

1)   Speech.Speak 메서드의  speakasync 인수를 True로 지정하면 속도가 조금 빨라지긴 합니다.
speakasync 인수는 음성 메시지를 출력하면서도 다음 작업을 계속 하도록 하는 인수입니다. 

Application.Speech.Speak Range("c5").Value, speakasync:=True

 

2) 다른 방법은 Microsoft Speech Object Library 를 추가하여 사용하는 방법이 있습니다.

  - VB편집기에서 [도구]-[참조]를 클릭합니다.
  -  [Microsoft Speech Object Library ]를 체크합니다.

 

- 아래와 같이 코딩해서 사용해보세요~

Dim Voc As SpeechLib.SpVoice

Set Voc = New SpVoice

With Voc

    Set .Voice = .GetVoices.Item(0)    'Item(0)은 기계음, Item(1)은 목소리-단 영문만 가능

    .Rate = 10    '속도: 0이 보통, -는 느리게, +는 빠르게

    .Speak Range("c5").Value

End With

 

 

James Lee님의 프로필

James Lee

질문자

2022.05.23

빠른 답변에 진심으로 감사드립니다.

 

선생님께서 말씀하신대로 진행하여 보니 

1)항의 경우는 기존 beep 음보다는 느리나 기존의 "완료"를 읽는 속도는 상당히 빨라졌습니다.

 많은 데이터를 스캔하여 진행이 완료된 서류를 찾는 것인데요...양이 2만에서 3만건정도 되는데도 

 현재의 속도를 따라갈 줄지가 의문입니다.?

혹 엑셀이   DATA증가로 인해 늦어진다고 하면 혹 다른 방법은 없는지 더 궁금해집니다.?

 

2)항의 경우는 실제 1)항보다 속도가 느렸습니다. 기존의 명령문으로  "완료"를 앍는 속도와 유사했습니다.

단지, 셀내용을 읽는 속도를 조절함으로써 문장같이 긴 경우에 쓰면 효과적일 것 같습니다.

하여, 스캔 후 완료서류를 찾는 일에 적용하기는 어려울 것 같습니다.

2~3만 건의 데이터를 스캔하면서 처리해야 한다면 속도가 느릴 수 밖에 없겠네요.

혹시 또 다른 방법이 있는지 찾아보고  속도를 향상시킬 방법이 있으면 추가 답변 드리겠습니다.