Wauconda'dan Dan, bu haftanın Excel sorusunu sordu.
Bir değer hesaplayan bir Excel çalışma sayfam var. Hücre değeri> 100 ise oynatılacak bir midi dosyasına ihtiyacım var.

Bu ipucu, 23 Aralık'ta burada tartışılan olay işleyicilerinden yararlanıyor. Olay işleyicilerine aşina değilseniz, lütfen önce bu ipucunu inceleyin.
İlk adım, MIDI dosyasının bir kopyasını çalışma sayfanızdaki kullanım dışı bir noktaya yapıştırmaktır.
- WIN95 medya oynatıcıyı açın. Programlar> Aksesuarlar> Multimedya
- Medya oynatıcıda seçilen midi dosyasını açın.
- Medya oynatıcıda Düzenle'yi ve ardından Nesneyi kopyala'yı seçin.
- Excel'de, kullanım dışı bir konum bulun. Bu örnekte, Sheet1 Cell Z99'u seçiyorum. Buraya tıklayın ve ardından Düzenle> Yapıştır'a basın
- Excel'deki ad kutusuna bakın. İsim kutusunda, midi dosyasına bir isim verecektir. Benimki Nesne 1 olarak adlandırılıyor.
Bu midi dosyasını oynatmak için VBA makrosu:
Sub Playit() ActiveSheet.Shapes("Object 1").Select Selection.Verb Verb:=xlPrimary End Sub
Excel 97 veya Excel 95 / 7.0'a sahip olup olmadığınıza bağlı olarak, yukarıdaki kodu çağırmak için uygun olay işleyicisini kullanırsınız. İşte Excel 97 için bir örnek. A1 hücresine yeni bir değer girilirse, A2'deki hesaplanan hücrenin> 100 olup olmadığını kontrol etmek istediğinizi varsayın. Olay işleyicisi aşağıdaki gibidir:
Visual Basic Düzenleyicisi'ni açın. Sol pencerede, Sayfa1'e sağ tıklayın ve Kodu Görüntüle'yi seçin. Book1 - Sheet1 Code iletişim kutusunun üstünde iki açılır menü vardır. Soldaki açılır menüden Çalışma Sayfası'nı seçin. Sağdaki açılır menüden Değiştir'i seçin. Aşağıdaki kod satırlarını girin:
Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Address = "$A$1" Then If Range("A2")> 100 Then ActiveSheet.Shapes("Object 1").Select Selection.Verb Verb:=xlPrimary End If End If End Sub