Office2014.05.18 08:00




OS에 내장된 TTS를 엑셀에서 어떻게 사용할 수 있을까 고민하며 구글링을 해보니 정말로 의외의 자료들이 나왔습니다.

엑셀 객체에서 바로 TTS를 호출하여 작동하는 군요.

VBA 코드는 다음과 같습니다.

 

Sub SayHello()
    
    On Error GoTo handler
    Application.Speech.Speak ("Hello")
    
handler:
    If Err.Number = 1004 Then
        MsgBox "This macro requires Text to Speech to be installed."
    End If
End Sub
조금 더 응용을 해보면 바코드 스캐너로 창고에 있는 제품을 스캔하여 목록에 있는지 확인하고자 할때, Lookup 함수를 만들어서 연결하면 재미있을 것 같습니다.

 

Sub SayFoundIt(ByVal strFound As String)
    
    On Error GoTo handler
    
    'Application.Speech.Speak "Found, " + strFound, True
    Application.Speech.Speak strFound + "를 찾았습니다", True
    
    
handler:
    If Err.Number = 1004 Then
        MsgBox "This macro requires Text to Speech to be installed."
    End If
End Sub
        

Function MyLookup(ByVal rng As Range, ByVal strF As String)
Dim C As Range
Dim strFound As String

Set C = rng.Find(strF, Lookat:=xlWhole)
If Not C Is Nothing Then

        
    strFound = C.Offset(0, 0).Value
    
    MyLookup = strFound
    SayFoundIt strFound
    
Else
    MyLookup = ""
End If

End Function
MS Power Point에서 슬라이트 프리젠테이션의 설명을 아나운서가 할수도 있습니다.(http://support.microsoft.com/kb/287120/ko)

 

 

Sub demoTTS()
    
    'Declare and create an Excel object.
    Dim XL As Excel.Application
    Set XL = CreateObject("Excel.Application")
    
    ActivePresentation.SlideShowSettings.Run
 
    With SlideShowWindows(1).View
        'The following is said on the first slide:
        XL.Speech.Speak "Welcome to my presentation."
        'Change to slide 2, and then say the following two sentences:
        .Next
        XL.Speech.Speak "This is an example of how to create an Excel Application object."
        XL.Speech.Speak "We can use Excel's object model to invoke Text to Speech."
        
        'Close the Excel object and set the object to nothing.
        XL.Quit
        Set XL = Nothing
        
        'Exit the slideshow.
        .Exit
    End With
    
End Sub

'Office' 카테고리의 다른 글

[Excel]엑셀 객체를 이용한 TTS(Text-To-Speech) 구현  (0) 2014.05.18




Posted by 금붕어70