2012-12-02 3 views
3

내 직무 중 일부는 Microsoft Office 문서에 동적 기능을 추가하는 것입니다. 내가 이것을 찾은 유일한 방법은 VBA를 통해서이며 따라서 Office 문서에 내장 된 VBA 편집기를 사용합니다.Vim으로 VBA 프로그래밍을 할 수 있습니까?

VBA 편집기는 끔찍합니다. 현대 개발 환경이 지원해야하는 백만 가지 기능이 없습니다. 하지만 최악의 부분은 내가 하드 코어 Vim 애호가이며, VBA 편집기는 메모장보다 간신히 조금 낫다는 것입니다.

So : Vim을 사용하여 VBA 프로그래밍을 효과적으로 수행 할 수 있습니까? 내가 그것을 시도하고 싶을 때 다른 창에서 VBA 편집기에 내 코드를 복사하여 붙이기가 짧다.

+0

나는 대답이 "아니오"라고 확신합니다. 동적 인 기능으로 이벤트를 의미한다면, VSTO 또는 그 라인을 따르는 무언가는 어떨까요? 그런 다음 vim addin을 사용하는 Visual Studio IDE를 사용할 수 있습니다. 나는 그것이 정력을 배우는 것이 좋을 거라 생각하고 그것을 설치했습니다. (나는 실패했다). –

+0

가능한 중복 VBA 개발을위한 IDE가 있습니까?] (http://stackoverflow.com/questions/40741/is-there-an-alternative-ide-for-vba-development) – SeanC

답변

0

흥미로운 의견입니다. 나는 약 15 년 전에 VI를 간단히 사용했고, VBA 편집기가 VI (또는 VIM?)보다 그 목적에 훨씬 더 적합하다고 나는 주장했다. VBA 편집기에서 누락 된 특정 기능 중 특정 목적을 효과적으로 사용하여 VBA를 편집 할 수 없습니까? VBA는 수년 동안 향상되지 않았지만 모든 사람이 사용하기가 쉽기 때문에 VBA가 없어지지는 않습니다.

원하는 경우 COM 개체를 통해 단어 문서를 조작하는 기본 언어로 코드를 작성할 수 있습니다 (지원하는 경우). 그런 다음 Word 문서 내의 간단한 스텁에서 외부 코드를 호출 할 수 있습니다. Word 문서에서 몇 가지 보안 제약 조건을 해결해야합니다.

예를 들어 나는 VBScript 또는 VBA 또는 Powershell 또는. doc이라는 단어를 조작하는 일부 코드를 작성할 수 있습니다.VBA의 작은 조각 (표준 단어 도구 모음의 단추 나 다른 것에 연결될 수도 있음)에서 호출 할 수 있습니다.

+1

나는 사실 동의한다 - 나는 VBA를 사용하기가 매우 쉽다는 것을 발견하고, 내가 필요로하는 모든 것을 확실히한다. 환경이 꽤 오래되었다는 것을 알지만, 그것이 작동하지 않는다는 것을 의미하지는 않습니다. 불만은 VBA 코드를 편집 할 때 Vim을 사용할 수 없다는 것입니다. VBA 코드는 문서 자체에 포함되어 있기 때문입니다. –

+1

최고의 답을 얻었습니다. 저는 정말로 찾고있는 것이 불가능하다고 생각합니다. –

1

나는 VBA 편집기를 사용한 적이 없지만 여기 MS Visual Studio로 수행 한 작업이 있습니다. (MSVS의 편집기에는 멋진 기능이 있지만 편집을 위해 vim을 선호합니다.)

MSVS에서 소스 파일을 열거 나 만들면됩니다. 그런 다음 파일의 전체 경로를 얻습니다 (탭을 마우스 오른쪽 버튼으로 클릭하고 "전체 경로 복사"선택). 그리고 vim에서 같은 파일을 다른 창에서 엽니 다.

저는 alt-tab을 사용하여 vim과 MSVS간에 앞뒤로 튀어 오릅니다. vim에서 변경 작업을 수행 할 때는 :w을 사용하여 변경 사항을 기록한 다음 alt-tab을 MSVS로 다시 작성합니다. MSVS 편집기는 파일이 디스크에서 변경되었음을 알리고 업데이트 된 버전을 읽도록 제안합니다.

또는 MSVS에서 파일을 변경하면 파일 (파일> 저장 ...)을 작성한 다음 alt-tab을 vim에 쓰고 :e!을 사용하여 업데이트 된 파일을 vim 버퍼로 읽습니다.

두 편집기가 모두 동일한 디스크 파일에서 작동하므로 코드를 복사하여 붙여 넣기 할 필요가 없습니다. 난 단지 매우 디스크에 파일을 작성하지 않고 정력과 MSVS에서 변경하지 않도록주의해야합니다.

이것은 추한 사람이 아니지만 모든 사람에게 맞는 것은 아니지만 저에게는 효과적입니다. 어쩌면 그것은 당신을 위해 작동 할 것입니다.

저는 Cygwin을 사용하기 때문에 좀 더 복잡합니다. vim을 포함한 Cygwin 프로그램은 Windows 스타일의 경로를 인식하지 못합니다. 나는이 작업을 수행 할 수 있습니다 WINDOWS_PATH이 전체 경로에서 붙여

vi $(cygpath 'WINDOWS_PATH') 

나는 MSVS에서 얻을. 쉘이 \자를 해석하지 못하게하려면 작은 따옴표가 필요합니다. Windows 네이티브 vim을 사용하는 경우에는이 단계가 필요하지 않습니다.

+4

나는 이것을 고려했습니다. 불행하게도 Office 문서에 대해 작성한 모든 VBA 코드가 포함되어 있습니다. 코드는 디스크의 어느 위치 에나 자신의 파일에 나타나지 않습니다. –

+0

또한 - 실제로 vim 대신 편집을 위해 vi를 사용합니까? 흥미 롭군요 :-) –

+0

@AustinR : 좋습니다. 그러면 약간의 추가 작업없이 적어도이 방법이 효과가 없을 것입니다. 내 시스템에서,'vi' 명령은'vim'을 호출합니다 (GUI가 아닌 텍스트 모드). –

관련 문제