반응형
추가기능 사용방법
- VSTO를 통해 개발한 엑셀 추가기능이다.
- 많은 워크시트를 별도 엑셀파일로 저장하고 싶을 때 사용하면 좋은 기능이다.
- 현재는 엑셀파일 내의 모든 워크시트를 xlsx 포맷으로 저장한다.
- 매크로사용 통합문서(.xlsm)파일을 저장하는 경우에도 xlsx 포맷으로 저장한다.
- 추후 저장형식을 사용자가 임의로 지정할 수 있도록 보완할 계획이다.
- ※ 참고로 특별한 일이 있지 않는 한 C#으로 개발한 코드를 제공할 예정이다.
- ※ VBA로 추가기능을 개발하면서 혼란스러운 부분이 있어 코딩 언어를 C#으로 변경했다.
- 설치 방법
- 1) 첨부파일의 압축 파일을 압축 해제한다. (아무 곳이듯 상관 없음)
- 2) setup.exe 파일을 (반드시)관리자 권한으로 실행한다. (마우스 오른쪽 클릭 -> 관리자 권한으로 실행)
- 3) 다음, 설치를 클릭하면 설치가 완료된다.
- 사용 방법
- 1) 엑셀 파일을 연다.
- 2) 루아흐뉴마 추가기능 탭의 SaveSheets 단추를 클릭한다.
- 3) 폴더선택 대화창이 열리면 시트가 저장될 폴더를 지정한다.
- 삭제하는 방법
- 1) 시작 -> 제어판 -> 프로그램 및 기능
- 2) 설치 날짜를 기준으로 내림차순 정렬
- 3) 설치된 프로그램을 선택하여 제거
추가기능 실행 동영상
메인 코드(언어: C#)
private void button1_Click(object sender, RibbonControlEventArgs e)
{
Excel.Workbook wb = Globals.ThisAddIn.GetObjWb(); //워크북 개체 설정
MsoFileDialogType folderPicker = MsoFileDialogType.msoFileDialogFolderPicker; //폴더선택 대화창 유형 개체 설정
Globals.ThisAddIn.Application.FileDialog[folderPicker].Show(); //폴더선택 대화창 Open
string myPath = Globals.ThisAddIn.Application.FileDialog[folderPicker].SelectedItems.Item(1).ToString(); //선택된 폴더경로 myPath에 저장
try
{
foreach (Excel.Worksheet ws in wb.Worksheets) //워크북의 각 시트를 순환하면서
{
Excel.Workbook newWb = Globals.ThisAddIn.Application.Workbooks.Add(); //시트를 옮길 워크북 생성
ws.Copy(Before: newWb.Worksheets[1]); //새로 생성된 워크북에 시트 복사
foreach (Excel.Worksheet ws2 in newWb.Worksheets)
{
if (ws2.Index > 1) { ws2.Delete(); } // newWb의 시트1을 제외한 나머지 삭제
}
newWb.SaveAs(Filename: myPath + "/" + ws.Name + ".xlsx"); //newWb을 선택한 경로에 저장하기
newWb.Close(SaveChanges: true); //변경된 사항을 저장하여 닫기
}
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.ToString());
}
}
Copyright (2019) Ruahneuma. All Rights Reserved.
반응형
'MS 추가기능 및 앱 개발' 카테고리의 다른 글
[파워포인트 추가기능 배포] 지정 슬라이드로 이동하기 (0) | 2019.07.30 |
---|---|
[엑셀 추가기능 배포] 빈도수 빠르게 구하기(중복카운트) #2 (0) | 2019.07.21 |
[엑셀 추가기능 배포] 빈도수 빠르게 구하기(중복 카운트) (2) | 2019.06.24 |
[파워포인트 추가기능 배포] 표 셀크기(열) 자동맞춤 VBA (3) | 2018.09.20 |
[엑셀 추가기능 배포] 병합된 셀 해제하고 같은 내용으로 채우기 (0) | 2018.09.06 |