2014-05-20 1 views
1

이것은 오랫동안 두려운 질문이 될 것입니다.XSLX 문서에서 Excel 매크로 사용

고객에게 일부 클라이언트 데이터가 포함 된 Excel 문서를 작성하도록 요청합니다. 이 데이터는 열 (ID, 이름, 전화 번호 등)으로 구분됩니다. 이러한 열 머리글이 우리 데이터베이스에서 사용하는 필드에 매핑되는 숨겨진 워크 시트가 있습니다. 보안상의 이유로이 파일을 매크로 사용 가능 문서로 배포하고 싶지는 않습니다. 그러나 그들이 파일을 다시 보낼 때이 파일을 DBV로 가져올 수 있도록이 파일에 매크로를 실행하여 CSV에 내용을 저장합니다.

나는 반환 된 XSLX 파일에서 사용할 수 있도록 PERSONAL.XSLB 파일에서 매크로를 생성 할 생각을하고있었습니다.

이렇게하면 어떻게 처리 할 수 ​​있습니까? 아니면 다른 접근법을 사용해야합니까? 이미 이것에 대한 답변이 있다면 그런데 어떤 도움

[편집] 에 대한

덕분에, 나는 그것을 찾을 수 없습니다. 어쩌면 나는 정확한 수색 기간을 사용하지 않았다.

답변

1

이 제품은 Add-in위한 좋은 기회 같은 소리 - 나는 여기에 대한 게시물을 작성 :

(1) xlsm 또는 xlsb 파일을 저장 : 여기

How to make a reusable button from a macro?가 짧은 VBA의 요약 추가 기능의 버전을 쉽게 늘릴 수있는 이름이 있습니다.

(2)와 통합 문서가 활성화 될 때 통합 문서를 열 때 메뉴 막대를 만들 수 있도록에서 ThisWorkbook에 다음 스크립트를 추가

Private Sub Workbook_Open() 
    Call CreateMenuBar 
End Sub 

Private Sub Workbook_Activate() 
    Call CreateMenuBar 
End Sub 

(3) 새 모듈을 만들고 추가

Option Explicit 
Sub CreateMenuBar() 

    Dim MenuObject As CommandBarPopup 
    Dim MenuItem As Object 
    Dim SubMenuItem As Object 

    'clear the old menu bar 
    Call DeleteMenuBar("&MyMenuBar") 

    'create the menu bar and drop down options 
    Set MenuObject = Application.CommandBars(1).Controls.Add(Type:=msoControlPopup, _ 
     before:=10, Temporary:=True) 
    MenuObject.Caption = "&MyMenuBar" 
    MenuObject.OnAction = "UpdateMenuBar" 

    'first level menu option 
    Set MenuItem = MenuObject.Controls.Add(Type:=msoControlPopup) 
    MenuItem.Caption = "&First Menu Stuff" 

     'link to first script 
     Set SubMenuItem = MenuItem.Controls.Add(Type:=msoControlButton) 
     SubMenuItem.Caption = "&First Script" 
     SubMenuItem.OnAction = "Script1" 

     'link to second script 
     Set SubMenuItem = MenuItem.Controls.Add(Type:=msoControlButton) 
     SubMenuItem.Caption = "&Second Script" 
     SubMenuItem.OnAction = "Script2" 

    'first level menu option 
    Set MenuItem = MenuObject.Controls.Add(Type:=msoControlPopup) 
    MenuItem.Caption = "&Second Menu Stuff" 

     'link to third script 
     Set SubMenuItem = MenuItem.Controls.Add(Type:=msoControlButton) 
     SubMenuItem.Caption = "&Third Script" 
     SubMenuItem.OnAction = "Script3" 

End Sub 

Sub DeleteMenuBar(MenuName As String) 
    On Error Resume Next 
    Application.CommandBars(1).Controls(MenuName).Delete 
    On Error GoTo 0 
End Sub 

Sub UpdateMenuBar() 
    'do special checks, like verifying sheets, in this routine 
End Sub 

(4) 스크립트가 작동 확인하고 파일을 저장, 생성, 삭제 및 메뉴 표시 줄을 업데이트하는 코드를 다음과 같습니다.

(5) 파일을 xlam 또는 xla 파일로 다시 저장하면 스크립트를 편리하게 사용할 수 있습니다!

+0

감사합니다. Dan, 시도해 보겠습니다. – Stephan

관련 문제