2009-12-21 3 views
0

통합 문서에서 VBA 코드베이스를 공유하는 솔루션을 찾기 위해 노력 중입니다. 여기에는 공유 모듈 & 클래스 (+ 각각의 해당 팩토리)를 포함하는 .xlam 파일을 작성해야합니다.방법 : 동적 특성이있는 여러 통합 문서 수준의 리본 항목이있는 Excel 리본?

나는 Office 2007의 멋진 RibbonUI를 기꺼이 사용하고 있습니다. .xlam 파일에 사용자 정의 탭을 선언해야합니다. (인수를 위해 MyTab이라고합시다). 사용자가 특정 권한 (VBA를 통해 관리)을 가지고있는 경우에만 일부 요소 만 표시하려면 MyTab이 필요합니다.

그 외에도 다른 통합 문서에 MyTab에 물건을 추가 할 수 있기를 바라고 있습니다.이 요소에는 VBA를 사용하는 동적 요소가 포함될 수도 있습니다.

내가 직면 한 문제는 통합 문서가 AddIn.xlam을 참조하고 동적 리본 요소를 선언 할 때마다 Excel에서 한 번에 모두 새로 고침을 시도하므로 두 개의 별도 스레드에서 VBA 코드가 호출된다는 것입니다. VBA가 Excel에서 단일 스레드로 강제 처리되기 때문에 결국 실패하고 "400"과 "OK"및 "도움말"이라는 두 개의 단추가있는 빈 대화 상자가 생성됩니다.

누군가이 문제를 해결하는 방법에 대한 경험이 있습니까?

+0

잠금을 얻으시겠습니까? 내 경험에 비추어 볼 때 Excel에서 진지하게 개발하고 싶지는 않습니다. 그것은 어떤 의미가없는 방식으로 당신을 바이트. –

+0

나는 엑셀의 나쁜 것을 알고있다. 그러나 나는 그 모든 것들을 비난하려고 노력할 수있는 선택권이 없다. 그러나 자원 제약으로 나는 몇 주 안에 그것을 할 수 없다. 덜 고통스럽게 만들기 위해서. VBA가 어쨌든 (이 문제를 일으키는) 두 개의 개별 기능을 동시에 실행할 수 없다는 것을 알고 있으면 어떻게 잠금을 얻을 수 있습니까? – Romain

답변

0

Application.MultiThreadedCalculation = False 설정을 시도해 보셨습니까?

문제가 해결 될 것으로 믿습니다.

+0

나는 휴일에서 돌아올 때 이것을 시도 할 것이다 : – Romain

+0

그것은 그것을 부분적으로 고쳤다. 그러나 그것은 다른 이슈를 몰아 냈습니다. 나는 VBA의 핵심 디자인이 나의 유스 케이스를 깬다 고 생각한다. 나는 지금 다른 방법을 사용할 것이다. :) – Romain