Giúp code về Âm Thanh trong VBA

Liên hệ QC

minhtuan55

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
23/3/16
Bài viết
705
Được thích
52
Chào cả nhà GPE . Em có cái món này mới TEst chiều giờ sửa loạn lên hết mà chưa làm sao chạy theo ý Mình. Cụ thể Code như sau
Mã:
 Private Declare Function apiPlaySound _
    Lib "winmm.dll" _
      Alias "PlaySoundA" _
       (ByVal lpszName As String, _
        ByVal hModule As Long, _
        ByVal dwFlags As Long) As Boolean
  Private Const SND_ASYNC = &H1
  Private Const SND_NODEFAULT = &H2
  Private Const SND_FILENAME = &H20000

Public Sub PlaySoundFile(ByVal Snd_File_Name As String)
  
  Dim Flags As Long
  Dim Ret As Long
  
    Flags = SND_ASYNC Or SND_FILENAME Or SND_NODEFAULT
    Ret = apiPlaySound(Snd_File_Name, 0&, Flags)
    
End Sub


Sub test()
    PlaySoundFile "D:\Code tao Am Thanh\Music_Note\GA GAY.wav" ' Duong dan den file am thanh *.wav
End Sub

Thứ 1: Khi code chạy thì tiếng gà gáy sẽ gáy lên. Muốn làm nút Stop hoặc nút Mute thì phải làm sao
Thứ 2: Ví dụ em muốn code gà gáy xong thì tự động lặp lại 5 lần em đã sửa code như thế này mà code không chạy được

Mã:
Sub test()
Dim i as long
For i = 1 to 5
    PlaySoundFile "D:\Code tao Am Thanh\Music_Note\GA GAY.wav" ' Duong dan den file am thanh *.wav
Next i
End Sub

Chúc cả nhà Năm mới, Giáng sinh, Noel vui vẽ Rực rỡ
 

File đính kèm

Giống triệu chứng ASYNC nghĩa là apiPlaySound chạy song song chứ không phải tuần tự, thay cái này xem có cải thiện gì không nhé

Private Const SND_ASYNC = &H0 '&H1

Còn mấy câu khác phức tạp vượt khả năng nên dành cho các member năng lực cao.
 
Lần chỉnh sửa cuối:
Upvote 0
Giống triệu chứng ASYNC nghĩa là apiPlaySound chạy song song chứ không phải tuần tự, thay cái này xem có cải thiện gì không nhé

Private Const SND_ASYNC = &H0 '&H1

Còn mấy câu khác phức tạp vượt khả năng nên dành cho các member năng lực cao.

COde rất chính xác. Thank Bác. Em thấy code bác lúc đang chạy thì con chuột nó xoay xoay không cho bấm nút khác ( Còn code ban đầu gí trị = 1 Ví dụ Gà gáy chưa xong em có thể cho Chó sủa ( click nút khác để chuyển bài ). Và còn Nút Mute hay Stop nữa ( Ví dụ đang gà gáy em muốn Dừng lại hay ngắt âm thanh Mute ), Mong bác giúp cho trót. chúc bác sức khỏe Hạnh phúc năm mới phát tài
 
Upvote 0
COde rất chính xác. Thank Bác. Em thấy code bác lúc đang chạy thì con chuột nó xoay xoay không cho bấm nút khác ( Còn code ban đầu gí trị = 1 Ví dụ Gà gáy chưa xong em có thể cho Chó sủa ( click nút khác để chuyển bài ). Và còn Nút Mute hay Stop nữa ( Ví dụ đang gà gáy em muốn Dừng lại hay ngắt âm thanh Mute ), Mong bác giúp cho trót. chúc bác sức khỏe Hạnh phúc năm mới phát tài
Code trên làm sao mở được file MP3, Midi , .... Có cần code khác thay thế không vậy?
 
Upvote 0
Chào cả nhà GPE . Em có cái món này mới TEst chiều giờ sửa loạn lên hết mà chưa làm sao chạy theo ý Mình. Cụ thể Code như sau
Thứ 1: Khi code chạy thì tiếng gà gáy sẽ gáy lên. Muốn làm nút Stop hoặc nút Mute thì phải làm sao
Thứ 2: Ví dụ em muốn code gà gáy xong thì tự động lặp lại 5 lần em đã sửa code như thế này mà code không chạy được
Mã:
 Private Declare Function apiPlaySound _
    Lib "winmm.dll" _
      Alias "PlaySoundA" _
       (ByVal lpszName As String, _
        ByVal hModule As Long, _
        ByVal dwFlags As Long) As Boolean
  Private Const SND_ASYNC = &H1
  Private Const SND_SYNC As Long = &H0
  Private Const SND_NODEFAULT = &H2
  Private Const SND_FILENAME = &H20000

Public Sub PlaySoundFile(ByVal Snd_File_Name As String)
  
  Dim Flags As Long
  Dim Ret As Long
  
    Flags = SND_ASYNC Or SND_FILENAME Or SND_NODEFAULT
    Ret = apiPlaySound(Snd_File_Name, 0&, Flags)
    
End Sub

Sub test1LAN()
    PlaySoundFile "C:\Users\Administrator\Desktop\Test am thanh\GA GAY.wav"
End Sub

Sub test5LAN()
Dim I As Long
    For I = 1 To 5
        apiPlaySound "C:\Users\Administrator\Desktop\Test am thanh\A.wav", 0, _
                                SND_SYNC Or SND_FILENAME Or SND_NODEFAULT
        DoEvents
    Next I
End Sub

Sub stop_sound()
    apiPlaySound vbNullString, 0, 0
End Sub

PlaySound có nhiều hạn chế, và không chơi với nhiều định dạng.

Nếu muốn chơi nhạc, clip video, chạy, dừng, đi từng bước ... thì dùng mciSendString

avi, wmv, mpg, mp3, wav, mid chơi tuốt.

Tôi đã cho ví dụ ở đây.

https://www.giaiphapexcel.com/diendan/threads/code-mở-phim-wmv.69091/post-424660
 
Upvote 0
Nếu muốn chơi nhạc, clip video, chạy, dừng, đi từng bước ... thì dùng mciSendString
avi, wmv, mpg, mp3, wav, mid chơi tuốt.
Sao Bác không giới thiệu luôn các thuộc tính: Play nhanh chậm, Lập lại , Chuyển bài, Volume lớn nhỏ ...
 
Upvote 0
Code trên làm sao mở được file MP3, Midi , .... Có cần code khác thay thế không vậy?
Đúng rồi bác. Bác giúp cho em code MP3 luôn đi. Chứ mắc công em phải dùng 1 phần mềm phải chuyển lại định dạng đuôi sang WAV
Bài đã được tự động gộp:

Mã:
Private Declare Function apiPlaySound _
    Lib "winmm.dll" _
      Alias "PlaySoundA" _
       (ByVal lpszName As String, _
        ByVal hModule As Long, _
        ByVal dwFlags As Long) As Boolean
  Private Const SND_ASYNC = &H1
  Private Const SND_SYNC As Long = &H0
  Private Const SND_NODEFAULT = &H2
  Private Const SND_FILENAME = &H20000

Public Sub PlaySoundFile(ByVal Snd_File_Name As String)

  Dim Flags As Long
  Dim Ret As Long

    Flags = SND_ASYNC Or SND_FILENAME Or SND_NODEFAULT
    Ret = apiPlaySound(Snd_File_Name, 0&, Flags)
  
End Sub

Sub test1LAN()
    PlaySoundFile "C:\Users\Administrator\Desktop\Test am thanh\GA GAY.wav"
End Sub

Sub test5LAN()
Dim I As Long
    For I = 1 To 5
        apiPlaySound "C:\Users\Administrator\Desktop\Test am thanh\A.wav", 0, _
                                SND_SYNC Or SND_FILENAME Or SND_NODEFAULT
        DoEvents
    Next I
End Sub

Sub stop_sound()
    apiPlaySound vbNullString, 0, 0
End Sub

PlaySound có nhiều hạn chế, và không chơi với nhiều định dạng.

Nếu muốn chơi nhạc, clip video, chạy, dừng, đi từng bước ... thì dùng mciSendString

avi, wmv, mpg, mp3, wav, mid chơi tuốt.

Tôi đã cho ví dụ ở đây.

https://www.giaiphapexcel.com/diendan/threads/code-mở-phim-wmv.69091/post-424660

Thank Bác. Bác có thể giúp em chạy MP3 luôn đi ( để em khỏi phải dùng phần mềm chuyển đuôi nữa ). Code e tạo thêm 1 đường dẫn để linh động cho quá trình chọn bài

1545578114973.png

Mã:
 Private Declare Function apiPlaySound _
    Lib "winmm.dll" _
      Alias "PlaySoundA" _
       (ByVal lpszName As String, _
        ByVal hModule As Long, _
        ByVal dwFlags As Long) As Boolean
  Private Const SND_ASYNC = &H1
  Private Const SND_SYNC As Long = &H0
  Private Const SND_NODEFAULT = &H2
  Private Const SND_FILENAME = &H20000

Public Sub PlaySoundFile(ByVal Snd_File_Name As String)

  Dim Flags As Long
  Dim Ret As Long

    Flags = SND_ASYNC Or SND_FILENAME Or SND_NODEFAULT
    Ret = apiPlaySound(Snd_File_Name, 0&, Flags)
   
End Sub

Sub test1LAN()
Dim i As String
i = Range("a2").Value
PlaySoundFile i
End Sub



Sub stop_sound()
    apiPlaySound vbNullString, 0, 0
End Sub

Sub layduongdanfileaaa()
Dim x As Variant
x = Application.GetOpenFilename(MultiSelect:=True)
If Not IsArray(x) Then Exit Sub
Range("a2") = x
Range("a2").Select
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Đúng rồi bác. Bác giúp cho em code MP3 luôn đi. Chứ mắc công em phải dùng 1 phần mềm phải chuyển lại định dạng đuôi sang WAV
Bài đã được tự động gộp:



Thank Bác. Bác có thể giúp em chạy MP3 luôn đi ( để em khỏi phải dùng phần mềm chuyển đuôi nữa ). Code e tạo thêm 1 đường dẫn để linh động cho quá trình chọn bài

View attachment 209849

Mã:
 Private Declare Function apiPlaySound _
    Lib "winmm.dll" _
      Alias "PlaySoundA" _
       (ByVal lpszName As String, _
        ByVal hModule As Long, _
        ByVal dwFlags As Long) As Boolean
  Private Const SND_ASYNC = &H1
  Private Const SND_SYNC As Long = &H0
  Private Const SND_NODEFAULT = &H2
  Private Const SND_FILENAME = &H20000

Public Sub PlaySoundFile(ByVal Snd_File_Name As String)

  Dim Flags As Long
  Dim Ret As Long

    Flags = SND_ASYNC Or SND_FILENAME Or SND_NODEFAULT
    Ret = apiPlaySound(Snd_File_Name, 0&, Flags)
  
End Sub

Sub test1LAN()
Dim i As String
i = Range("a2").Value
PlaySoundFile i
End Sub



Sub stop_sound()
    apiPlaySound vbNullString, 0, 0
End Sub

Sub layduongdanfileaaa()
Dim x As Variant
x = Application.GetOpenFilename(MultiSelect:=True)
If Not IsArray(x) Then Exit Sub
Range("a2") = x
Range("a2").Select
End Sub
Tôi không hiểu ý.

Tôi đã viết là PlaySound không chơi nhiều định dạng. Theo tôi PlaySound không chơi mp3.

Bạn dùng mciSendString thì chơi thoải mái, chơi cả video. Ví dụ thì như trong link tôi đã đưa - tập tin PlayVideo.xls. Tên tập tin là thế nhưng khi chọn thì bạn có thể chọn các loại như tôi đã liệt kê, trong đó có cả mp3.
 
Upvote 0
Các công việc còn lại là của bạn
Xem code:

PHP:
Option Explicit
#If VBA7 Then 'win64'
  Public Declare PtrSafe Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As Any, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
  Public Declare PtrSafe Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal lBuffer As Long) As Long
  Public Declare PtrSafe Function mciGetErrorString Lib "winmm.dll" Alias "mciGetErrorStringA" (ByVal dwError As Long, ByVal lpstrBuffer As String, ByVal uLength As Long) As Long
#Else
  Public Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal lBuffer As Long) As Long
  Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As Any, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
  Public Declare Function mciGetErrorString Lib "winmm.dll" Alias "mciGetErrorStringA" (ByVal dwError As Long, ByVal lpstrBuffer As String, ByVal uLength As Long) As Long
#End If
'------------------------------------------------------------------------------------------------
'"play lpszDeviceID, lpszPlayFlags, lpszFlags"
'------------------------------------------------------------------------------------------------
'Hướng dẫn nằm ở Link dưới'
'------------------------------------------------------------------------------------------------
'https://docs.microsoft.com/en-us/windows/desktop/multimedia/multimedia-command-strings
'------------------------------------------------------------------------------------------------
Public Const strAlias$ = "soundDevice"
Public Const FileSong$ = "D:\Music\NewRing.mp3"
Public sMusicFile$
Public LoopNumber$
Public sMusicPlay

Sub test_OpenSoundNormal()
  'OpenSoundNormal Flags:="repeat"
  OpenSoundAlias Flags:="repeat notify", LoopNum:=0

End Sub
  Sub OpenSoundAlias(Optional PathSound$ = FileSong, Optional StopToPlay As Boolean = True, _
     Optional Flags$ = "notify", _
     Optional LoopNum& = 0)
    LoopNumber$ = LoopNum: CallCheckSound
    If StopToPlay Then StopSoundAll
    If Dir(PathSound) = "" Then Exit Sub
    sMusicFile = IIf(UBound(Split(PathSound, " ")) > 0, GetShortPath(PathSound), PathSound)
    Call mciSendString("open """ & sMusicFile & """ alias " & strAlias & " notify", 0&, 0, 0)
    Call mciSendString("play " & strAlias & " " & Flags$, 0&, 0, 0)
  End Sub
  Sub OpenSoundNormal(Optional PathSound$ = FileSong, Optional StopToPlay As Boolean = True, _
     Optional Flags$ = "")
    If StopToPlay Then StopSoundNormal
    If Dir(PathSound) = "" Then Exit Sub
    sMusicFile = IIf(UBound(Split(PathSound, " ")) > 0, GetShortPath(PathSound), PathSound)
    sMusicPlay = mciSendString("play " & sMusicFile & IIf(Flags$ <> "", " " & Flags$, ""), 0&, 0, 0)
  End Sub
  Public Sub StopSoundNormal()
      On Error Resume Next
      sMusicPlay = mciSendString("close " & sMusicFile, 0&, 0, 0)
  End Sub
  Public Sub StopSoundAll()
      On Error Resume Next
      mciSendString "close " & IIf(strAlias = "", "all", strAlias) & " notify", vbNullString, 0, 0
  End Sub
  Public Function GetShortPath$(ByVal strFileName$)
      Dim lngRes&, strPath$
      strPath = String$(165, 0)
      lngRes = GetShortPathName(strFileName, strPath, 164)
      GetShortPath = Left$(strPath, lngRes)
  End Function
Sub test_IsFinished()
  Dim lngLength&, lngPosition&
  Debug.Print IsFinished(strAlias, lngLength&, lngPosition&)
  Debug.Print lngLength&, lngPosition&
End Sub
  Public Function IsFinished(ByVal strAlias$, Optional lngLength&, Optional lngPosition&) As Boolean
     Dim strBuffer As String * 128
     mciSendString "status " & strAlias & " length", strBuffer, Len(strBuffer), 0
     lngLength = CLng(Val(Left$(strBuffer, InStr(strBuffer, vbNullChar) - 1)))
     mciSendString "status " & strAlias & " position", strBuffer, Len(strBuffer), 0
     lngPosition = CLng(Val(Left$(strBuffer, InStr(strBuffer, vbNullChar) - 1)))
     IsFinished = IIf(lngPosition = lngLength, True, False)
  End Function
  Sub StartTimer()
    Application.OnTime Now + TimeSerial(0, 0, 1), "CallCheckSound", , True
  End Sub
  Sub CallCheckSound()
    Dim bool As Boolean, lngLength&, lngPosition&
    bool = IsFinished(strAlias, lngLength&, lngPosition&)
    If lngLength& <> 0 And lngPosition& > lngLength& - 1000 Then _
      LoopNumber = LoopNumber - 1
    If LoopNumber < 0 Then StopSoundAll: Exit Sub
    Call StartTimer
  End Sub
 
Upvote 0
Bài kiểu con gà gáy ò o ó, chó sua gâu gâu ... vui nhỉ...
nhưng chủ topic ứng dụng vào đâu vậy?
Nếu để chơi nhạc thì đầy các ứng dụng opensource đâu cần VBA qua excel chi cho phức tạp mà cuối cùng vẫn phải dựa vào API hay nhân code từ ứng dụng khác..
 
Upvote 0
Bài kiểu con gà gáy ò o ó, chó sua gâu gâu ... vui nhỉ...
nhưng chủ topic ứng dụng vào đâu vậy?
Nếu để chơi nhạc thì đầy các ứng dụng opensource đâu cần VBA qua excel chi cho phức tạp mà cuối cùng vẫn phải dựa vào API hay nhân code từ ứng dụng khác..

Cái này áp dụng cho ứng dung lấy số thứ tự trong khu vui chơi. Ví dụ nhan viên muốn gọi số 2345 thì nhập số vào textbox nhấn play là nó nói ( mời quý khách mang số thứ tự 2345 đến quầy để nhận vé ) tất nhiên là những từ cố định em ghi âm hết rồi .
 
Upvote 0
Cái này áp dụng cho ứng dung lấy số thứ tự trong khu vui chơi. Ví dụ nhan viên muốn gọi số 2345 thì nhập số vào textbox nhấn play là nó nói ( mời quý khách mang số thứ tự 2345 đến quầy để nhận vé ) tất nhiên là những từ cố định em ghi âm hết rồi .
Có cần phải như vậy không. Tải TTS Tiếng Việt về Chạy SapiVoice VBA hoặc Dùng Python - Xlwings - VBA dùng dụng đọc Google.
Tư duy của bạn đi chậm thời đại rồi
 
Upvote 0
Các công việc còn lại là của bạn
Xem code:

PHP:
Option Explicit
#If VBA7 Then 'win64'
  Public Declare PtrSafe Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As Any, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
  Public Declare PtrSafe Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal lBuffer As Long) As Long
  Public Declare PtrSafe Function mciGetErrorString Lib "winmm.dll" Alias "mciGetErrorStringA" (ByVal dwError As Long, ByVal lpstrBuffer As String, ByVal uLength As Long) As Long
#Else
  Public Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal lBuffer As Long) As Long
  Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As Any, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
  Public Declare Function mciGetErrorString Lib "winmm.dll" Alias "mciGetErrorStringA" (ByVal dwError As Long, ByVal lpstrBuffer As String, ByVal uLength As Long) As Long
#End If
'------------------------------------------------------------------------------------------------
'"play lpszDeviceID, lpszPlayFlags, lpszFlags"
'------------------------------------------------------------------------------------------------
'Hướng dẫn nằm ở Link dưới'
'------------------------------------------------------------------------------------------------
'https://docs.microsoft.com/en-us/windows/desktop/multimedia/multimedia-command-strings
'------------------------------------------------------------------------------------------------
Public Const strAlias$ = "soundDevice"
Public Const FileSong$ = "D:\Music\NewRing.mp3"
Public sMusicFile$
Public LoopNumber$
Public sMusicPlay

Sub test_OpenSoundNormal()
  'OpenSoundNormal Flags:="repeat"
  OpenSoundAlias Flags:="repeat notify", LoopNum:=0

End Sub
  Sub OpenSoundAlias(Optional PathSound$ = FileSong, Optional StopToPlay As Boolean = True, _
     Optional Flags$ = "notify", _
     Optional LoopNum& = 0)
    LoopNumber$ = LoopNum: CallCheckSound
    If StopToPlay Then StopSoundAll
    If Dir(PathSound) = "" Then Exit Sub
    sMusicFile = IIf(UBound(Split(PathSound, " ")) > 0, GetShortPath(PathSound), PathSound)
    Call mciSendString("open """ & sMusicFile & """ alias " & strAlias & " notify", 0&, 0, 0)
    Call mciSendString("play " & strAlias & " " & Flags$, 0&, 0, 0)
  End Sub
  Sub OpenSoundNormal(Optional PathSound$ = FileSong, Optional StopToPlay As Boolean = True, _
     Optional Flags$ = "")
    If StopToPlay Then StopSoundNormal
    If Dir(PathSound) = "" Then Exit Sub
    sMusicFile = IIf(UBound(Split(PathSound, " ")) > 0, GetShortPath(PathSound), PathSound)
    sMusicPlay = mciSendString("play " & sMusicFile & IIf(Flags$ <> "", " " & Flags$, ""), 0&, 0, 0)
  End Sub
  Public Sub StopSoundNormal()
      On Error Resume Next
      sMusicPlay = mciSendString("close " & sMusicFile, 0&, 0, 0)
  End Sub
  Public Sub StopSoundAll()
      On Error Resume Next
      mciSendString "close " & IIf(strAlias = "", "all", strAlias) & " notify", vbNullString, 0, 0
  End Sub
  Public Function GetShortPath$(ByVal strFileName$)
      Dim lngRes&, strPath$
      strPath = String$(165, 0)
      lngRes = GetShortPathName(strFileName, strPath, 164)
      GetShortPath = Left$(strPath, lngRes)
  End Function
Sub test_IsFinished()
  Dim lngLength&, lngPosition&
  Debug.Print IsFinished(strAlias, lngLength&, lngPosition&)
  Debug.Print lngLength&, lngPosition&
End Sub
  Public Function IsFinished(ByVal strAlias$, Optional lngLength&, Optional lngPosition&) As Boolean
     Dim strBuffer As String * 128
     mciSendString "status " & strAlias & " length", strBuffer, Len(strBuffer), 0
     lngLength = CLng(Val(Left$(strBuffer, InStr(strBuffer, vbNullChar) - 1)))
     mciSendString "status " & strAlias & " position", strBuffer, Len(strBuffer), 0
     lngPosition = CLng(Val(Left$(strBuffer, InStr(strBuffer, vbNullChar) - 1)))
     IsFinished = IIf(lngPosition = lngLength, True, False)
  End Function
  Sub StartTimer()
    Application.OnTime Now + TimeSerial(0, 0, 1), "CallCheckSound", , True
  End Sub
  Sub CallCheckSound()
    Dim bool As Boolean, lngLength&, lngPosition&
    bool = IsFinished(strAlias, lngLength&, lngPosition&)
    If lngLength& <> 0 And lngPosition& > lngLength& - 1000 Then _
      LoopNumber = LoopNumber - 1
    If LoopNumber < 0 Then StopSoundAll: Exit Sub
    Call StartTimer
  End Sub

Cảm ơn bác code chạy rất ok. Nhưng làm sao để cho âm thanh chạy nối tiếp ( vị dụ bác ra ngân hàng viêtcombank bốc số stt là 1234 thì cai loa nó đọc là “ mời quý khách mang số một hai ba bốn đến quầy số 1 “ , tức nhiên em sẻ ghi âm những từ cố định ( từ 0 đến 9, mời quý khách , đến quầy số, ...)
Bài đã được tự động gộp:

Có cần phải như vậy không. Tải TTS Tiếng Việt về Chạy SapiVoice VBA hoặc Dùng Python - Xlwings - VBA dùng dụng đọc Google.
Tư duy của bạn đi chậm thời đại rồi
Các bác nói em hiểu, nhưng em muốn cho Một em xinh đẹp tiếng nói dể thương dể ghi âm cho nó hay. Chứ như bác nói thì google nó đọc nghe dể lắm
 
Upvote 0
Từ code trên, bạn bỏ chút tư duy suy nghĩ xem làm sao nó đọc nối tiếp, Tôi không thể viết cả một chương trình cho bạn được
 
Upvote 0
Từ code trên, bạn bỏ chút tư duy suy nghĩ xem làm sao nó đọc nối tiếp, Tôi không thể viết cả một chương trình cho bạn được

Từ duy ra rồi. mà khổ nối code của bác nó chạy Song Song. Thay đổi chổ nào để chạy nối tiếp bác chỉ em thì mới biết

Sub test1LAN()
PlaySoundFile "C:\Users\Administrator\Desktop\Test am thanh\GA GAY.wav"
PlaySoundFile "C:\Users\Administrator\Desktop\Test am thanh\CHO SUA.wav"
End Sub


Khi code em muốn gà gáy xong mới cho sủa. mà code của bác nó chạy chó sủa luôn bỏ qua gà gáy
 
Upvote 0
Bạn vui lòng xem đúng # mà người khác trả lời, để hỏi cho đúng người hướng dẫn Code, biết code đó ai hướng dẫn.
 
Upvote 0
Code trên làm sao mở được file MP3, Midi , .... Có cần code khác thay thế không vậy?
Có cần phải như vậy không. Tải TTS Tiếng Việt về Chạy SapiVoice VBA hoặc Dùng Python - Xlwings - VBA dùng dụng đọc Google.
Tư duy của bạn đi chậm thời đại rồi
Tư duy hoàn toàn không phải là vấn đề. Chính bạn mới là chậm ở đây.
Bạn quên rằng chính người này đã tuyên bố có những sáng kiến đặc biệt mà ai cũng cho là điên khùng lại là cái mấu chốt kiếm tiền.
Vì thế, đừng mong hiểu người ta sử dụng cái gì và như thế nào.

Bạn chỉ cần biết hỏi gì code nấy thôi. Việc ứng dụng như thế nào và moi tiền ra sao là trên trình độ của bạn.
 
Upvote 0
VetMini
"Thời thế" sinh tiền tài
Nếu tôi ở trên núi thì không thể so thành phố, đất núi cũng không thể so đất thành phố
 
Upvote 0
Thời thế chỉ là một trong nhiều yếu tố.
Tôi thì đã nhìn nhận thớt là có tài.
Rõ ràng là thớt có đầu óc rất nhiều sáng kiến. Điểm tuyệt diệu nhất là cách thí nghiệm và áp dụng những sáng kiến đều miễn phí. Cái nào không xài được thì bỏ, có mất gì mà sợ?
Như vậy không "sinh tiền tài" [sic] mới là lạ. Núi hay thành phố gì cũng như nhau.
 
Upvote 0
"Ở Mỹ nhiều tỉ phú hơn ở Việt Nam"
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom