اكسل سخنگو - Speech in Excel

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • Amir Ghasemiyan

    • 2013/09/20
    • 4598
    • 100.00

    اكسل سخنگو - Speech in Excel

    سلام دوستان


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


    خب بريم سر اصل مطلب:
    قبلا تو يك تاپيك اشاره اي به اين قابليت شده (البته نه در محيط VBA) كه من اينجا فقط لينكشو ميذارم
    اکسل سخنگو


    اما اينجا ميخوام اين قابليت رو در قالب 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
چند لحظه..