PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : اكسل سخنگو - Speech in Excel



Amir Ghasemiyan
2014/07/12, 18:19
سلام دوستان


امروز ميخوام يه قابليتي رو در اكسل بهتون معرفي كنم البته شايد قبلا اينو شنيده باشيد.
اكسل اين قابليت رو داره كه كلمات انگليسي كه شما مينويسيد رو براتون بخونه
از اين قابليت براي خيلي كارها ميتونين استفاده كنيد. مثلا ميتونين يك پيام خوش آمدگويي بذارين يا پيام هايي كه ميخواين سيستم به كاربر بده بصورت صوتي بده يا ...


خب بريم سر اصل مطلب:
قبلا تو يك تاپيك اشاره اي به اين قابليت شده (البته نه در محيط VBA) كه من اينجا فقط لينكشو ميذارم
اکسل سخنگو (http://forum.exceliran.com/showthread.php/3229)


اما اينجا ميخوام اين قابليت رو در قالب VBA براتون توضيح بدم:
ساختار به صورت Application.Speech هست كه شامل يك متود (speak) و دو مشخصه (properties) يكي Direction و يكي ديگر SpeakCellOnEnter كه به تفصيل توضيح ميدم
ابتدا متود speak:
با استفاده از اين متود شما ميتونيد كلمات و يا عبارات مورد نظر خود را پخش كنيد:
مثال:



Sub sayhello()
Application.Speech.Speak "Hello ExcelIran"
End Sub



شما ميتونين بجاي اينكه متن بدين يك سلول رو مشخص كنيد تا براتون بخونه. مثلا اينطوري:



Application.Speech.Speak Range("A1")


مثلا اگه بخواين براتون ساعت رو اعلام كنه اونم با فرمتي كه دوست دارين اينطوري عمل كنيد:



Sub saytime()
Application.Speech.Speak Format(Time, "hh mm ss")
End Sub



خب حالا اگه ميخواين به محض ورود يك متن اجرا بشه كافيه كدي كه گفتم رو در ايونت Workbook_Open بذارين. ميشه اينطوري:



Private Sub Workbook_Open()
Application.Speech.Speak "Hello ExcelIran"
End Sub



خب حالا بريم سراغ مشخصه ها:
Direction:
اين مشخصه دو حالت داره:
1- xlSpeakByColumns
2- xlSpeakByRows
كاربردش اينه كه وقتي شما چند سلول رو ميخواين براتون بخونه تعيين ميكنين اول سطرها خونده بشه يا اول ستون ها
مثال:



Sub setdirection()
Application.Speech.Direction = xlSpeakByRows
End Sub



SpeakCellonEnter:
اين مشخصه هم دو حالت داره:
1- True
2- False
در صورتي كه حالت True باشه هر چيزي كه در هر سلولي بنويسيد براتون ميخونه.كافيه يك بار ماكروي زير رو اجرا كنيد بعد ديگه فقط كافيه تو يك سلول بنويسين.
مثال:



Sub speakcell()
Application.Speech.SpeakCellOnEnter = True
End Sub