2012-10-04 17 views
19

VBA kodumu yeniden düzenlemeye çalışıyorum. Java tabanlı IDE'lerde birkaç yıl boyunca yeniden değerlendirme kullanıyordum. VBA editörü herhangi bir refakatörü destekliyor mu yoksa herhangi bir eklenti var mı? MZ Tools'un böyle bir işlevi yoktu.Vba kodu refactoring - yardımcı olacak araçlar var mı?

aşağıdaki en az yapabilmek istiyorum: 1. 3. Değişim prosedüre küresel dan değişkenin kapsamı kodu daha okunabilir hale getirmek için değişkenler alt prosedürleri içine 2. Bölünmüş Prosedürler yeniden adlandırma ve tersi

+0

Bugüne dek kullanmadık. Ama bu bağlantıya bir bakın yardımcı olur? http://visualbasic.about.com/od/usingvbnet/a/refact_4.htm –

+13

Gelecekte alkol görüyorum. – kingdango

+0

Resharper'ın Visual Basic sürümünü denediniz mi? VBA'nın farklı olduğunu biliyorum, ancak ihtiyaçlarınızın çoğu için işe yarayabilir. – Pat

cevap

2

VBA'da bildiğim tek 'refactoring' aracı Ctrl + F ve Ctrl + R.

+5

Değiştirmek için Ctrl-H'yi unutmayın. – Lokerim

+3

Bu, yararlı bir cevaptan daha çok alay konusu gibidir. – Phrancis

+0

veya Farklı Kaydet .xlsx xD. Ancak Ctrl + H Replace'ın ayrıca “Desen Eşleme Kullan” seçeneği de vardır, ancak birden fazla satırda çalışmaz. – Slai

2

.... neredeyse

Eski güzel günlerde ben bunu kullandı. Solüsyon yaratıcıdır:

hüner senin excel Erişim kodu veya VB6 kopyalayıp orada üstlenmeden yapmaktır) kapsamı değiştirilmesi; http://www.moshannon.com/speedferret.html

çok bana yardımcı oldu ve ben somewere 3.5" diskleri var. adlandırma ve değiştirme yerine tükürme prosedürleri ... peki ben de üzgünüm

Ciddi bir excel vba kodunuz yoksa genelde buna değmez, en çok C# veya VB'ye dönüştürebilirim. Net dll, refactoring, test ve bazı modern sihirleri yapabileceğiniz ve sadece VBA'da yapabileceğiniz en az şeyi yapabileceğiniz Net dll.

+1

Evet, IIRC, hız gelinciği hala mevcut, ancak 10 yılda anlamlı bir gelişme olduğunu düşünmüyorum. Rubberduck VBA'nın daha fazla özellik eklediğine ve daha fazla VBA ana bilgisayarında çalışacağına ve ücretsiz ve etkin geliştirme aşamasında olduğuna inanıyorum. – ThunderFrame

20

Yasal Uyarı: Bu projeye yoğun olarak katılıyorum.


Rubberduck bir açık kaynak eklenti vba IDE bu işlevselliği içerir [çok] etkin geliştirme, altındadır. 1.3 yeniden adlandır yeniden düzenleme içerir

extract method refactoring

Sürüm:

rename refactoring

Versiyon 2

Sürüm 1.2 bir Özü Yöntem yeniden düzenleme aracı içerir.

Rubberduck 2.0 refactorings

  • kapsamı
  • modül için bir yerel değişken teşvik
  • Alan tanıtılması bir parametre için bir yerel değişken teşvik parametre tanıtmak: 0 (p mevcuttur, yine stabilize edici) bir düzine refactorings içerir
  • Encapsulate Field ortak alanı bir tesise döndürüyor
  • Daha Yakına Taşıyın Kullanım sadece 1 işlemde kullanılan bir alanı bu işleme uygular. Veya ilk kullanımının hemen üstünde yerel bir değişken taşır.
  • Arabirim Arabirimi, bir arabirime hangi sınıf üyelerini ayıklayacağınızı seçmenize, bunlar için taslakları olan yeni bir sınıf modülü oluşturmanıza ve özgün sınıfın ayıklanan arabirimi gerçekleştirmesini sağlar.
  • Arayüz bir uygulanmamış arayüzün tüm üyeleri için taslakları oluşturur, bu nedenle kod bölmesi açılır menüsünde teker teker seçerek elle bunları oluşturmak gerekmez Uygulanışı:

    Implements IClass1 
    
    Public Sub IClass1_DoSomething() 
        Err.Raise 5 'TODO implement interface member 
    End Sub 
    
    Public Function IClass1_GetFoo() As Integer 
        Err.Raise 5 'TODO implement interface member 
    End Function 
    
    Sub DoSomething() 
    
    End Sub 
    
    Function GetFoo() As Integer 
    
    End Function 
    

GitHub numaralı telefondan takip edeceğiniz proje yol haritası üzerinde daha fazla refactoring aracı bulunmaktadır.

+9

Ben şahsen Rubberduck kullanın ve onun yararı için kefil olabilir. –

+0

Harika! Araçsız VBA Kodu yazmayı bir daha asla istemiyorum! – raiserle

+1

@raiserle teşekkürler! Bize GitHub'da yıldız vermekten çekinmeyin =) –

İlgili konular