vba 코드 리팩터링 - 도움이 되는 도구가 있습니까?
저는 제 VBA 코드를 리팩터링하려고 합니다.저는 수년간 자바 기반 IDE에서 리팩토링을 사용하는 것에 익숙했습니다.VBA 편집기는 리팩토링을 지원합니까? 아니면 추가 기능이 있습니까? MZ Tools에는 이러한 기능이 없습니다.
저는 적어도 다음을 할 수 있기를 원합니다: 1. 변수 이름 바꾸기 2.절차를 하위 절차로 분할하여 코드를 보다 쉽게 읽을 수 있도록 합니다. 3.변수의 범위를 전역에서 프로시저로 변경하고 그 반대로 변경합니다.
고지 사항:저는 이 프로젝트에 깊이 관여하고 있습니다.
고무 오리은 [매우] 활발히 개발 중인 VBA/VB6 IDE용 오픈 소스 애드인으로, 이 기능을 포함하고 있습니다.
버전 1.3에는 이름 바꾸기 리팩터링이 포함되어 있습니다.
버전 2.0(베타 사용 가능, 여전히 안정화)에는 12가지 리팩터링이 포함되어 있습니다.
- 매개 변수 소개는 로컬 변수를 매개 변수로 승격시킵니다.
- 소개 필드에서 모듈 범위에 로컬 변수를 추가합니다.
- Encapsulate 필드는 공용 필드를 속성으로 변환합니다.
- 사용에 가깝게 이동은 한 절차에서만 사용되는 필드를 해당 절차로 이동합니다.또는 로컬 변수를 처음 사용한 바로 위로 이동합니다.
- 인터페이스 추출을 사용하면 인터페이스에 추출할 클래스 멤버를 선택하고, 해당 멤버에 대한 스텁이 있는 새 클래스 모듈을 만들고, 원래 클래스가 추출된 인터페이스를 구현하도록 할 수 있습니다.
Implement Interface는 구현되지 않은 인터페이스의 모든 멤버에 대한 스텁을 생성하므로 코드 창 드롭다운에서 하나씩 선택하여 스텁을 수동으로 생성할 필요가 없습니다.
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에서 확인할 수 있는 프로젝트 로드맵(Extract Method 포함)에 더 많은 리팩터링 도구가 있습니다.
VBA에서 제가 아는 유일한 '리팩터링' 도구는 Ctrl+F와 Ctrl+R입니다.
저는 리팩토링과 같은 작업에 V-Tools를 사용합니다. VBA 코드뿐만 아니라 객체에서도 찾고 교체할 수 있기 때문입니다.http://www.skrol29.com/us/vtools.php
네, 거의... 있습니다.
옛날에는 이것을 사용했습니다.http://www.moshannon.com/speedferret.html
도움이 많이 되었고 3.5" 디스크를 가지고 있는 것 같습니다;)
Excel 코드를 Access 또는 VB6에 복사하고 거기서 리팩터링을 하는 것이 요령입니다.범위 바꾸기: 솔루션은 창의적인 이름 지정 및 대체 절차 사용...글쎄요, 그것은 매뉴얼입니다. 죄송합니다.
당신이 심각한 excel vba 코드를 가지고 있지 않다면 보통 그것은 가치가 없습니다, 저는 그것의 대부분을 c# 또는 VB로 변환하는 것을 추천합니다.리팩터링, 테스트 및 일부 현대적인 마술을 할 수 있고 VBA에서 할 수 있는 만큼만 할 수 있는 Net dll.
언급URL : https://stackoverflow.com/questions/12725195/vba-code-refactoring-are-there-any-tools-to-assist
'programing' 카테고리의 다른 글
스위프트 레퍼런스의 _ 밑줄 대표자는 무엇입니까? (0) | 2023.05.24 |
---|---|
$lookup을 사용한 MongoDB 집계는 쿼리에서 반환할 일부 필드만 포함(또는 프로젝트)합니다. (0) | 2023.05.24 |
터미널에서 내 Git 사용자 이름을 변경하려면 어떻게 해야 합니까? (0) | 2023.05.14 |
Express.js: 원격 클라이언트 주소를 가져오는 방법 (0) | 2023.05.14 |
OK(확인) 및 Cancel(취소)이 표시된 신속한 경고 보기: 어떤 버튼을 눌렀습니까? (0) | 2023.05.14 |