2012-10-04 11 views
19

मैं अपने वीबीए कोड को दोबारा करने की कोशिश कर रहा हूं। मुझे जावा-आधारित आईडीई में कई वर्षों तक रिफैक्टरिंग का उपयोग करने के लिए इतना उपयोग किया जाता है। क्या वीबीए संपादक किसी भी रिफैक्टरिंग का समर्थन करता है या क्या कोई ऐड-इन्स है? एमजेड टूल्स में ऐसी कोई कार्यक्षमता नहीं थी।वीबीए कोड रिफैक्टरिंग - क्या सहायता करने के लिए कोई उपकरण हैं?

मैं कम से कम करने के लिए निम्नलिखित में सक्षम होना चाहते: 1. चर कोड अधिक पठनीय 3. बदलें प्रक्रिया के लिए वैश्विक से चर का दायरा बनाने के लिए का नाम बदलें उप प्रक्रियाओं में 2. स्प्लिट प्रक्रियाओं और इसके विपरीत

+0

आज तक इसका उपयोग नहीं किया है। लेकिन इस लिंक के बारे में मदद करता है? http://visualbasic.about.com/od/usingvbnet/a/refact_4.htm –

+13

मैं आपके भविष्य में अल्कोहल देखता हूं। – kingdango

+0

क्या आपने Resharper के Visual Basic संस्करण को आजमाया है? मुझे पता है कि वीबीए अलग है, लेकिन यह आपकी अधिकांश ज़रूरतों के लिए काम कर सकता है। – Pat

उत्तर

2

वीबीए में मुझे पता है कि एकमात्र 'रिफैक्टरिंग' टूल Ctrl + F और Ctrl + R है।

+5

प्रतिस्थापित करने के लिए Ctrl-H को न भूलें। – Lokerim

+3

यह एक उपयोगी उत्तर की तुलना में कटाक्ष की तरह लगता है। – Phrancis

+0

या '.xlsx' xD के रूप में सहेजें। लेकिन गंभीरता से, Ctrl + H प्रतिस्थापन में 'पैटर्न मिलान का उपयोग करें' विकल्प भी है लेकिन यह एक से अधिक पंक्तियों के साथ काम नहीं करता है। – Slai

2

मैं वी-टूल्स का उपयोग रीफैक्टरिंग-जैसे काम के लिए करता हूं क्योंकि यह ऑब्जेक्ट्स में ढूंढ/प्रतिस्थापित होगा, केवल वीबीए कोड नहीं। http://www.skrol29.com/us/vtools.php

2

हाँ वहाँ है .... लगभग

अच्छे पुराने दिनों में मैं इस एक का इस्तेमाल किया। http://www.moshannon.com/speedferret.html

मुझे बहुत मदद की है और मुझे लगता है कि मैं 3.5 "डिस्क somewere है;)

चाल आपके एक्सेल एक्सेस करने के लिए या कोड VB6 कॉपी और आपकी पुनर्रचना करना है की जगह गुंजाइश: समाधान रचनात्मक है। नामकरण और की जगह इस्तेमाल करते हैं। थूकना प्रक्रियाओं ... अच्छी तरह से एक मैनुअल मैं

खेद है। यह आमतौर पर इसके लायक जब तक आप कुछ गंभीर उत्कृष्टता VBA कोड नहीं है, मैं सी # या VB में इसमें से अधिकांश परिवर्तित recoment होगा thats। नेट डीएल जहां आप रिफैक्टरिंग, परीक्षण और कुछ आधुनिक जादू कर सकते हैं और केवल वीबीए में उतना ही कम कर सकते हैं।

+1

हाँ, आईआईआरसी, स्पीड फेरेट अभी भी उपलब्ध है, लेकिन मुझे नहीं लगता कि उसने 10 वर्षों में कोई सार्थक विकास देखा है। मेरा मानना ​​है कि रबरडक वीबीए अधिक वीबीए मेजबानों पर और अधिक सुविधाएं और काम जोड़ता है, और यह नि: शुल्क और सक्रिय विकास के तहत है। – ThunderFrame

20

अस्वीकरण: मैं इस परियोजना के साथ काफी शामिल हूं।


Rubberduck एक खुला स्रोत ऐड-इन VBA आईडीई के लिए [बहुत] सक्रिय विकास, कि यह कार्यक्षमता भी शामिल किया जा रहा है।

extract method refactoring

संस्करण 1.3 एक का नाम बदलें रिफैक्टरिंग में शामिल हैं::

rename refactoring

संस्करण 2

संस्करण 1.2 एक निकालें विधि रिफैक्टरिंग उपकरण भी शामिल है।

Rubberduck 2.0 refactorings

  • पैरामीटर का परिचय एक पैरामीटर के लिए एक स्थानीय चर
  • फील्ड परिचय को बढ़ावा देता है गुंजाइश
  • मॉड्यूल एक स्थानीय चर को बढ़ावा देता है: 0 (बीटा उपलब्ध है, अभी भी स्थिर) एक दर्जन refactorings शामिल
  • Encapsulate फ़ील्ड एक सार्वजनिक क्षेत्र को एक संपत्ति में बदल देता है
  • उपयोग करने के लिए करीब उस क्षेत्र में स्थानांतरित होता है जो उस प्रक्रिया में केवल 1 प्रक्रिया में उपयोग किया जाता है। या अपने पहले उपयोग के ऊपर तुरंत एक स्थानीय चर ले जाता है।
  • निकालें इंटरफ़ेस, आप लेने क्या वर्ग के सदस्यों एक इंटरफ़ेस में निकालने के लिए देता है उनके लिए स्टब्स के साथ एक नया वर्ग मॉड्यूल बनाता है, और मूल वर्ग निकाले इंटरफ़ेस को लागू करता है।
  • लागू इंटरफ़ेस एक लागू नहीं किया गया इंटरफ़ेस के सभी सदस्यों के लिए स्टब्स बनाता है, ताकि आप उन्हें कोड फलक लटकती में एक के बाद उन्हें एक का चयन करके मैन्युअल रूप से बनाने की जरूरत नहीं है:

    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 पर अनुसरण कर सकते हैं।

+9

मैं व्यक्तिगत रूप से रबरडक का उपयोग करता हूं और इसकी उपयोगिता के लिए झुका सकता हूं। –

+0

बहुत बढ़िया! मैं उपकरण के बिना वीबीए कोड लिखना चाहता हूं! – raiserle

+1

@raiserle धन्यवाद! GitHub = पर हमें स्टार करने के लिए स्वतंत्र महसूस करें) –

संबंधित मुद्दे