----VisualBasic5.0은 문법 오류를 자동으로 확인하고 문법 형식에 대한 코더를 프롬프트할 수 있는 강력한 통합 개발 환경입니다. 이러한 기능은 코딩 효율성을 크게 향상시킵니다. 그러나 빠른 개발 도구로서의 특성은 Add-In 기술에서도 부각됩니다. 이를 사용하여 VB 개발 환경을 강화하고 사용자 정의할 수 있습니다. 모든 PProject에 모듈을 자동으로 추가할 수 있고, 각 모듈의 모듈을 다른 모듈로 교체할 수 있으며, 프로그램에서 특정 코드 부분을 찾아 추가할 수 있습니다. 이론적으로는 이 기술을 사용하여 자동 코드 생성기를 만들 수도 있습니다.
----Add-In 기술의 핵심은 VB 프로그래밍 환경 자체가 사용자에게 개체 모델로 노출된다는 것입니다. 모듈이나 코드 조각을 수정하고 최적화할 작업 개체로 사용할 수 있습니다. 아래에서는 Add-In 기술의 활용을 예시를 통해 소개합니다.
----예를 들어, 프로그램에 다음 코드 조각을 포함하려고 합니다.
희미한 인덱스정수
nIndex=cStr(vsFlex.Text)
다음으로 교체:
희미인덱스문자열
sIndex=Spread.text
----Word를 포함한 대부분의 편집 소프트웨어에는 여러 줄 검색 및 바꾸기 기능이 포함되어 있지 않으며 VB5.0 편집기도 예외는 아닙니다.
----1. VB를 열고 프로젝트 유형을 선택할 때 "AddIn"을 선택합니다. 이런 식으로 MyAddin이라는 프로젝트를 열었습니다. 프로젝트 이름을 "Test" 등 원하는 이름으로 변경합니다.
----2. Addin.bas를 열면 AddToIni의 서브루틴을 찾을 수 있습니다.
하위추가INI()
DimErrCodeAsLong
ErrCode=WritePrivateProfileString("Add-Ins32","Myaddin.Connect","0","vbaddin.ini")
EndSub
----Windows 디렉터리에는 vbaddin.ini라는 파일이 있습니다. VB가 시작될 때마다 이 파일의 설정에 따라 사용할 수 있는 AddIn 프로그램이 결정됩니다. AddToIni의 기능은 실제로 현재 프로그램을 vbaddin.ini에 등록하는 것입니다. "Myaddin.Connect"를 "Test.Connect"로 수정하여 현재 프로젝트 이름과 일치하도록 합니다.
----3. 직접 실행 창에서 AddToIni를 실행하면 현재 Addin 등록이 완료됩니다.
----4. 변수 선언 영역에서 Connect.cls를 엽니다. ImplementsIDTExtensibility
----IDTExtensibility는 VB와 AddIn 프로그램 간의 상호 작용을 위한 인터페이스입니다. VB가 Addin 메뉴에서 AddIdManager를 선택하고 현재 Addin 프로그램 "Test"를 참조하면 OnConnect 이벤트가 트리거되고 IDTExtensibility_OnConnection() 프로그램이 실행됩니다. 다음 줄에 중단점을 설정합니다.
----Debug.PrintVBInst.FullName
----현재 프로그램을 실행합니다.
----5. 다른 VB 루틴을 시작하여 Project1이라는 StandardEXE를 생성합니다. Addin 메뉴에서 AddinManager를 선택하면 목록이 표시되고 MyAddin을 선택하고 돌아갑니다. 이때 Test는 시작되고 멈춥니다.
----Debug.PrintVBInst.FullName
----VBInstance(VBInst)는 Addin을 사용하는 VB 통합 개발 환경(VBEObject)을 나타냅니다. 우리는 그것을 객체로 조작할 수 있습니다. VBEObject에는 VBProject가 포함되어 있고, 각 VBProject에는 VbcomComponent가 포함되어 있으며, 각 VBComponent는 모듈, 각 양식, 클래스 또는 모듈에 해당합니다.
----6. 테스트의 즉시 창에서 실행합니다.
----? VBInstance.활성프로젝트.이름
----Project1의 이름을 알 수 있습니다.
----? VBInstance.ActiveProject.VBComponent(0).이름
----Project1의 첫 번째 모듈 Form1의 이름을 얻을 수 있습니다.
----지금까지 AddIn의 기술적 의미에 대해 기본적으로 설명했습니다. 나머지는 이해하기 쉽습니다.
----7. Project1의 AddinManager에서 MyAddin을 제거합니다.
----8. 테스트를 다시 수정하고 frmAddin을 열고 변경합니다.
PrivateSubOKButton_Click()
MsgBoxVBInstance.FullName
EndSub
다음으로 변경:
PrivateSubOKButton_Click()
CallmReplace()
EndSub
PrivateSubmReplace()
DimoProAsVB프로젝트
DimoComAsVBComponent
DimbFindAs부울
DimnFindLineas정수
DimnfindColasinteger
Screen.MousePointer=vb모래시계
OnErrorGoToerrm바꾸기
SetoPro=VBInstance.ActiveVBProject
'프로그램이 저장되었는지 확인하세요.
IfoPro.FileName=""ThenMsgBox"먼저 저장하세요!";ExitSub
ForEachoComInoPro.VBComponents
b찾기=참
DoWhileb찾기
'교체할 코드 세그먼트 찾기
bFind=oCom.CodeModule.Find("dimnIndexasinteger",nFindLine,nfindCol,oCom.CodeModule.CountOfLines,500,True
IfbFindThen
IfoCom.CodeModule.Lines(nFindLine 1,1)="nIndex=cStr(vsFlex.Text)"
'찾은 후 바꾸기
oCom.CodeModule.ReplaceLine
nFindLine,"dimsIndexasstring"
oCom.CodeModule.ReplaceLine
nFindLine 1,"sIndex=Spread.text"
또 다른
b찾기=false
종료
종료
고리
넥스토콤
Screen.MousePointer=vbDefault
ExitSub
오류바꾸기:
삑 하는 소리
Screen.MousePointer=vbDefault
MsgBox"오류!"
EndSub
----9. 테스트를 실행 상태로 전환해 보겠습니다.
----10. 5단계를 반복하면 Project1의 Addin 메뉴에 "MyAddin"이라는 추가 항목이 생깁니다. Project1에 교체할 코드를 일부 추가한 후 MyAddin을 실행하면 교체 작업이 완료됩니다.
----11. 일부 친구는 "MyAddin"이라는 단어가 추가 기능 메뉴에 표시되는 것을 원하지 않지만 "교체"와 같이 더 명확한 의미를 갖는 로고가 표시되는 것을 원합니다. 테스트의 ConnectClass----IDTExtensibility_OnConnection()을 다음으로 변경합니다.
SetmcbMenuCommandBar=AddToAddInCommandBar("MyAddIn")
SetmcbMenuCommandBar=AddToAddInCommandBar("교체")로 변경합니다.
AddinManager에서 MyAddin을 다음으로 변경하려면
"바꾸기", 메모장으로 Connect.cls를 열고 다음과 같이 변경할 수 있습니다: AttributeVB_Description="MyAdd-In"
다음으로 변경: AttributeVB_Description="교체"
----위의 소개는 AddIn 기술의 간단한 응용에 불과합니다. 그 메커니즘을 이해한 후에는 필요에 따라 자신만의 도구를 만들 수 있습니다. 일부 전문 응용 프로그램 소프트웨어 개발자의 경우 AddIn 도구를 더 많이 축적할수록 코딩 효율성이 높아집니다. ->