2016-03-20 36 views
0

Bir Word belgesinde, genel bir ada sahip bir ActiveX radyo düğmesi oluşturacak ve daha sonra belirli bir numaraya sahip olmasını sağlamak için oluşturulan radyo düğmesini yeniden adlandıracak dinamik bir kullanıcı formu geliştirmeye çalışıyorum. formdaki yerine.Word'de Dinamik Olarak ActiveX Bileşen Adı Özelliklerini Değiştirme

Şimdiye kadar, kodu oluşturmak için tüm bileşenlere sahip olduğuma inanıyorum çünkü düğmeyi oluşturabiliyorum. Tanımlanmış bir radioButtonX adı ile radyo düğmesine sahip olan hızlı bir parçayı içe aktarmak için VBA'yi kullanarak düğmeyi yaratıyorum ve söz konusu radyo düğmesinin name özelliğini örneğin radioButton1 olarak değiştirebiliyorum. İçinde bulunduğum sorun, kodumun hızlı kısmı jenerik radioButtonX adıyla ekleyeceğidir ve daha sonra radioButtonX'in mevcut olmadığını söylediği için radyo düğmesi adını değiştirememektedir. Ancak, radioButtonX yerleştirildikten sonra kodun ikinci bölümünü manuel olarak çalıştırabilir ve iki farklı adımda aradığım son sonucu veren radyo düğmesi adını başarılı bir şekilde değiştirebilirim.

Geçen seneki bir VBA yazımcısıyım, bu yüzden kodlama uzmanından çok uzaktayım. Öyle almış stratejilerinin Birkaç uzaktı için: (senaryoyu duraklatma komut dizisini yeni radyo düğmesini tanımak için zaman vereceğini düşünerek) bir bekleme süresine

  • koyun
  • farklı denizaltılar içine kodunu Ayrılmış bir sub'a sahip olmak radyo düğmesini yaratır ve ardından adı değiştirmek için bir alt çağırır (bu, VBA'yı güncellerdi) umuyoruz
  • Bir modüle sahip olan farklı modüllerdeki kodu ayırarak radyo modülünü oluşturun ve ardından adı değiştirmek için modülleri çağırın (umuyoruz) bu, VBA)

VBA'nın, kod çalışırken eklediğim yeni radyo düğmesini tanıması için kullanabileceğim bazı önerileri, stratejileri veya örnek kodları umuyordum. Başka bir düşüncem de VBA'nın değişkenler hakkındaki bilgisini yenileyecek bir komut var, fakat web'de bu noktaya benzer bir şey bulma şansım olmadı.

+2

Kodunuzu görmeden bunu cevaplamak çok zor olacak. Sorunuzu içerecek şekilde düzenler misiniz (özellikle, radyo düğmesini oluşturduğunuz ve eklediğiniz kısım). – Ambie

cevap

0

Üzerinde çalıştığım kodu basitleştirmeye çalıştım ve istediğim işlevi yerine getirecek kodu çıkardım. Daha basit kodu çalıştırmak başarılı oldu ve aşağıda listelendi. Bu komut dosyası için

Private Sub AddRadioButton() 
    Selection.TypeText Text:="TestRadioButton" 
    Selection.Range.InsertAutoText 
    ActiveWindow.View.ShowXMLMarkup = wdToggle 

    ChangeButtonName 
End Sub 

Private Sub ChangeButtonName() 
    ThisDocument.radioButtonX.Name = "radioButton1" 
End Sub 

hızlı bir kısmı veya TestRadioButton adlı bir radyo düğmesi oluşturmak gerekir çalışmak. Şimdi asıl mesele, bu kodun geldiği komut dosyasıyla uğraşmak zorunda kaldığı zamanlama ile uğraşmak zorunda olduğunu düşünüyorum, çünkü bu kodun içinde birden çok genel radyo düğmesi bulunan hızlı bir bölüm kullanıyor, böylece betiğin yürütülmesi yeni radyo düğmelerini tanımıyor koşarken.