Aracılığıyla paylaş


İzlenecek Yol: NamedRange Denetimi Olaylarına Karşı Programlama

Bu izlenecek yolda, Microsoft Office Excel çalışma kitabına NamedRange denetiminin nasıl ekleneceği ve Visual Studio'daki Office geliştirme aletlerini kullanarak ona karşı nasıl programlama yapılacağı gösterilir.

Uygulama hedefi: Bu konudaki bilgiler, Excel 2013 ve Excel 2010 için belge düzeyi projelere yöneliktir. Daha fazla bilgi edinmek için, bkz. Office Uygulaması ve Proje Türüne Göre Kullanılabilir Özellikler.

Bu gösterimde, aşağıdakilerin nasıl yapıldığı öğretilecektir:

  • Çalışma sayfasına NamedRange denetimi ekleme.

  • NamedRange denetim olaylarına karşı programlama.

  • Projeyi sınama.

[!NOT]

Bilgisayarınız, aşağıdaki yönergelerde yer alan Visual Studio kullanıcı arayüzü öğelerinden bazıları için farklı adlar veya konumlar gösterebilir.Bu öğeleri bilgisayarınızdaki Visual Studio sürümü ve kullandığınız ayarlar belirler.Daha fazla bilgi için bkz. Visual Studio'da Geliştirme Ayarlarını özelleştirme.

Önkoşullar

Bu örneği tamamlamak için aşağıdaki bileşenler gerekmektedir:

Projeyi Oluşturma

Bu adımda, Visual Studio kullanarak bir Excel çalışma kitabı oluşturacaksınız.

Yeni bir proje oluşturmak için

  • My Named Range Events isimli bir Excel Çalışma Kitabı projesi oluşturun.Yeni belge oluştur'u seçtiğinizden emin olun.Daha fazla bilgi için bkz. Nasıl Yapılır: Visual Studio'da Office Projeleri Oluşturma.

    Visual Studio tasarımcıda yeni Excel çalışma kitabını açar ve My Named Range Events projesini ekler Çözüm Gezgini.

Çalışma Sayfasına Metin ve İsimlendirilmiş Aralıklar Ekleme

Konak kontrolleri Office nesnelerine özgü olduğu için, yerel objeleri ekledeğiniz gibi onları da belgenize ekleyebilirsiniz.Örneğin, Ekle menüzüsü açarak, Ad'ı işaret ederek ve Belirle'yi seçerek, Excel NamedRange denetimini çalışma sayfasına ekleyebilirsiniz.Araç Kutusu'ndan çalışma sayfasına NamedRange denetimini sürükleyerek de onu ekleyebilirsiniz.

Bu adımda, Araç Kutusu'nu kullanarak iki tane isimlendirilmiş aralığı çalışma sayfasına ekleyeceksiniz ve sonra çalışma sayfasına bir metin ekleyeceksiniz.

Çalışma sayfanıza bir aralık eklemek için

  1. Doğrulayın My adlandırılmış aralık Events.xlsx Visual Studio tasarımcısında açık çalışma kitabı ile Sheet1 görüntülenir.

  2. Araç kutusunun Excel Denetimleri sekmesinden Sheet1'deki A1 hücresine bir NamedRange denetimi sürükleyin.

    NamedRange Denetimi Ekle iletişim kutusu belirir.

  3. $A$1'un düzenlenebilir metin kutusunda göründüğünü ve A1 hücresinin seçili olduğunu doğrulayın.Seçili değilse, A1 hücresini tıklatarak seçin.

  4. Tamam düğmesini tıklatın.

    A1 hücresi namedRange1 adında bir aralığa dönüşür.Çalışma sayfasında görünür bir gösterge yoktur, fakat A1 hücresi seçili olduğunda namedRange1Ad kutusunda (çalışma sayfasının hemen üstünde sol tarafta olan) belirir.

  5. B3 hücresine başka bir NamedRange denetimi ekleyin.

  6. $B$3'un düzenlenebilir metin kutusunda göründüğünü ve B3 hücresinin seçili olduğunu doğrulayın.Seçili değilse, B3 hücresini tıklatarak seçin.

  7. Tamam düğmesini tıklatın.

    B3 hücresi namedRange2 adında bir aralığa dönüşür.

Çalışma sayfalarına metin eklemek için

  1. A1 hücresine aşağıdaki metni yazın:

    Bu bir NamedRange denetimi örneğidir.

  2. A3 hücresine (namedRange2'in soluna) aşağıdaki metni yazın:

    Olaylar:

Aşağıdaki bölümlerde, namedRange2'e metin ekleyen ve namedRange2 denetimlerinin özelliklerini namedRange1'in BeforeDoubleClick, Change ve SelectionChange olaylarına cevap olarak değiştirir.

BeforeDoubleClick Olayına Yanıt Olarak Kod Ekleme

BeforeDoubleClick olayına bağlı olarak NamedRange2'ye metin eklemek için

  1. Çözüm Gezgini'nde Sheet1.vb veya Sheet1.cs dosyasına sağ tıklayın ve Kodu Göster'i seçin.

  2. Kodu ekleyin, böylelikle namedRange1_BeforeDoubleClick olay işleyicisi aşağıdaki gibi görünür:

    Private Sub NamedRange1_BeforeDoubleClick( _
        ByVal Target As Microsoft.Office.Interop.Excel.Range, ByRef Cancel As Boolean) _
        Handles NamedRange1.BeforeDoubleClick
    
        With Me.NamedRange2
            .Value2 = "The BeforeDoubleClick event occurred."
            .Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red)
            .Font.Italic = True 
        End With 
    End Sub
    
    private void namedRange1_BeforeDoubleClick(
        Microsoft.Office.Interop.Excel.Range Target, ref bool Cancel)
    {
        this.namedRange2.Value2 = "The BeforeDoubleClick event occurred.";
        this.namedRange2.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
        this.namedRange2.Font.Italic = true;
    }
    
  3. C#'ta, aşağıdaki Startup olayında gösterildiği gibi olay işleyicileri eklemelisiniz.Olay işleyicisi oluşturma hakkında daha fazla bilgi için bkz. Nasıl Yapılır: Office Projelerinde Olay İşleyicileri Oluşturma.

    this.namedRange1.BeforeDoubleClick += new Microsoft.Office.Interop.Excel.
        DocEvents_BeforeDoubleClickEventHandler(namedRange1_BeforeDoubleClick);   
    
    this.namedRange1.Change += new Microsoft.Office.Interop.Excel.
        DocEvents_ChangeEventHandler(namedRange1_Change);
    
    this.namedRange1.SelectionChange +=new Microsoft.Office.Interop.Excel.
        DocEvents_SelectionChangeEventHandler(namedRange1_SelectionChange);
    

Change Olayına Yanıt Olarak Kod Ekleme

Change olayına bağlı olarak namedRange2'ye metin eklemek için

  • Kodu ekleyin, böylelikle NamedRange1_Change olay işleyicisi aşağıdaki gibi görünür:

    Private Sub NamedRange1_Change(ByVal Target As Microsoft.Office.Interop.Excel.Range) _
        Handles NamedRange1.Change
    
        With Me.NamedRange2
            .Value2 = "The Change event occurred."
            .Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Blue)
            .Font.Italic = False 
        End With 
    End Sub
    
    private void namedRange1_Change(Microsoft.Office.Interop.Excel.Range Target)
    {
        this.namedRange2.Value2 = "The Change event occurred.";
        this.namedRange2.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Blue);
        this.namedRange2.Font.Italic = false;
    }
    

    [!NOT]

    Excel'de bir hücreyi çift tıklamak düzenleme modunu girdiği için, metinde herhangi bir değişiklik olmasa bile seçim aralığın dışına çıktığı zaman, Change olayı gerçekleşir.

SelectionChange Olayına Yanıt Olarak Kod Ekleme

SelectionChange olayına bağlı olarak namedRange2'ye metin eklemek için

  • Kodu ekleyin, böylece NamedRange1_SelectionChange olay işleyicisi aşağıdaki gibi görünür:

    Private Sub NamedRange1_SelectionChange(ByVal Target As Microsoft.Office.Interop.Excel.Range) _
        Handles NamedRange1.SelectionChange
    
        With Me.NamedRange2
            .Value2 = "The SelectionChange event occurred."
            .AddComment("SelectionChange always occurs before BeforeDoubleClick.")
            .Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Black)
        End With 
    End Sub
    
    private void namedRange1_SelectionChange(Microsoft.Office.Interop.Excel.Range Target)
    {
        this.namedRange2.Value2 = "The SelectionChange event occurred.";
        this.namedRange2.AddComment("SelectionChange always occurs before BeforeDoubleClick.");
        this.namedRange2.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Black);
    }
    

    [!NOT]

    Excel'de bir hücreyi çift tıklamak, seçimin aralığa girmesine neden olduğu için, SelectionChange olayı, BeforeDoubleClick olayından önce gerçekleşir.

Uygulamayı Test Etme

NamedRange denetiminin olaylarını tanıtan metnin, olaylar oluştuğund başka bir isimlendirilmiş aralığa eklendiğini doğrulamak için, çalışma kitabınızı sınayabiliriniz.

Belgenizi test etmek için

  1. F5 tuşuna basarak projeyi çalıştırın.

  2. İmlecinizi namedRange1'e getirin ve SelectionChange olayıyla ilgili metnin eklendiğini ve bir açıklamanın çalışma sayfasına eklendiğini doğrulayın.

  3. namedRange1 içini çift tıklayın ve BeforeDoubleClick olaylarıyla ilgili metnin kırmızı italik metinle birlikte namedRange2'ye eklendiğini doğrulayın.

  4. namedRange1'in dışını tıklayın ve metinde hiçbir değişiklik olmasa bile düzenleme modundan çıktığı zaman change olayının gerçekleştiğini görürsünüz.

  5. namedRange1 içindeki metni değiştirin.

  6. namedRange1 dışını tıklayın ve Change olayıyla ilgili metnin mavi metinle birlikte namedRange2'ye eklendiğini doğrulayın.

Sonraki Adımlar

Bu izlenecek yolda NamedRange denetiminin olaylarına karşı programlamanın temelleri gösterilmektedir.Sonradan gelebilecek bir görev:

Ayrıca bkz.

Görevler

Nasıl yapılır: NamedRange Denetimlerinin Boyutunu Değiştirme

Nasıl yapılır: Çalışma Sayfalarına NamedRange Denetimleri Ekleme

Nasıl Yapılır: Office Projelerinde Olay İşleyicileri Oluşturma

Kavramlar

Ana Bilgisayar Öğelerine ve Denetimlerine Genel Bakış

Genişletilmiş Nesneleri Kullanarak Excel'i Otomatikleştirme

NamedRange Denetimi

Konak Denetimlerinin ve Konak Öğelerinin Programlama Sınırlamaları