1. 아별툴
  2. 아별툴 패밀리
  3. 엑셀 질문하기
  4. 엑셀 강좌
  5. 엑셀 팁
  6. 엑셀 자료실
  7. 엑셀 연구과제
  8. 엑셀 북마크
  9. 관련 프로그램 소개

기본 제공 대화 상자 실행하면 초기 값 설정

기타 조회 수 6539 추천 수 0 2010.08.25 17:22:52

자주 가는 카페에 들렀다가, 재미있는 질문을 봐서 관련 정보를 찾아봤습니다.

관련질문: http://cafe.naver.com/xlsvba/11527

 

VBA로 페이지 설정시 실행 속도를 높이기 위해 고민한 결과라고 하네요.

 

Sub dhPageSetup_V()

Application.SendKeys "{enter}" , False
Application.Dialogs(xlDialogPageSetup).Show _
        arg1:="&R(&P/&N)", _
        arg3:=0.62992125984252, _
        arg4:=0.393700787401575, _
        arg5:=0.590551181102362, _
        arg6:=0.31496062992126
End Sub

 

사실 SendKeys는 멍텅구리 자식이라 잘 사용하지 않습니다.

어떨땐 작동하고 어떨땐 안되거든요..

그래서 대안으로 VK(Virtual Key)를 사용하는데.. 음.. 저 분은 어떻게 하실려는지..

 

 

암튼.. 저는 그것보다..

엑셀의 대화상자를 실행시킬 때 초기값을 설정해주는 방식에 눈길이 갔습니다.

위 코드는 페이지 설정창을 실행시킬때, 머릿글에 오른쪽 정렬해서 (페이지수/전체페이지수)를 넣고,

페이지 여백을 설정해주는 것이네요..

 

 

그래서 관련 정보를 더 찾아봤습니다.

ms에서 제공한 기술 문서가 있더군요..

MS 기술문서 : http://support.microsoft.com/kb/110670

 

그렇습니다.

엑셀에서 기본으로 제공하는 대화상자를 호출할때, 초기값을 설정할 수 있었던 것이었습니다.

 

그래서 저는 예전부터 고민에 휩싸였던 선택하여 붙여넣기를 유저폼을 이용해서 구현해보고자 했습니다.

abyul_20100826_pasteByValue.jpg

 

그나저나.. 저 유저폼의 인수들은 어떻게 되는지 알 수가 없습니다.

젠쟝.. MS 기술 문서.. 차례로 인수를 적으면 된다고 하면서.. 유저폼별로 인수가 뭔지를 알려주지 않습니다.

 

그래서 VBA 도움말을 찾아봤습니다.

엑셀에서 Alt+F11을 눌러 VBA 편집창을 띄우고, F1을 눌러서 VBA 도움말 창을 띄웁니다.

검색란에 "대화 상자 인수"라고 입력하고 검색하면 "기본 제공 대화 상자 인수 목록"을 찾을 수 있습니다.

 

 

제 홈페이지의 아래 게시물에 가시면, 

대화상자와 대화상자별 인수들의 목록을 엑셀 파일로 다운 받을 수 있습니다.

http://www.abyul.com/zbxe/70393

 

 

 

선택하여 붙여넣기 창인 xlDialogPasteSpecial을 찾아보니 아래와 같은 인수로 구성되어 있네요..

대화 상자 상수 인수 목록
xlDialogPasteSpecial paste_num, operation_num, skip_blanks, transpose

 

arg1은 paste_num이고, arg2는 operation_num이었습니다.

 

그럼 우리는 값으로 붙여넣기를 하려면 어떻게 해야할 까요?

arg1인 paste_num에 값(V) 옵션에 해당하는 숫자 3을 할당하면 됩니다.

 

Sub pasteByValue_form()
'# xlDialogPasteSpecial 인수목록 : paste_num, operation_num, skip_blanks, transpose
If Application.CutCopyMode Then  '# copy한게 있을 때만 팝업
    Application.Dialogs(xlDialogPasteSpecial).Show arg1:=3
End If
End Sub

 

위 프로시저를 실행시키면, 우리가 원했던 결과가 나옵니다.

"값(V)"가 선택된 채로 선택하여 붙여넣기 창이 실행되는 것이지요.. +_+)b

 

 

자.. 그럼.. 아별툴에서 제공하는 선택하여 붙여넣기 단축키(Ctrl+Shift+V)에 저 프로시저를 할당해야겠습니다.

왜냐구요? 기존의 아별툴의 기능은 엑셀의 실행취소 기록(Undo History)를 없애는 단점이 있었기 때문이죠..

 

유저폼을 이용해서 값으로 붙여넣기를 하면 히스토리를 파괴하지 않을 것이라고 생각했습니다.

흥분했었죠..

 

말투를 보면 아시겠지만.. (과거형이죠..ㅠ_ㅠ)

 

이 짓 또한 헛지꺼리였습니다. =_=;;

 

대화상자를 호출하는 것만으로도 실행취소 히스토리는 파괴되었습니다. 젠쟝.. MS

 

또 다시.. 연구입니다. =_=;;

 

 


문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
공지 기타 엑셀 VBA 간단한 팁 모아놓기.. +_+ [레벨:30]아별 2007-01-24 34221

기타 [ VBA Tip ] 엑셀 VBA로 사진(JPG)의 EXIF 정보(GPS 포함) 불러 들이기.. imagefile [6]

  • [레벨:30]아별
  • 2012-02-27
  • 조회 수 8142

기타 엑셀 기본 제공 대화 상자 인수 목록 file

  • [레벨:30]아별
  • 2009-11-04
  • 조회 수 8099

[VBA팁] 화일이 존재하는지 확인하기

  • [레벨:30]아별
  • 2009-07-31
  • 조회 수 8060

기타 [VBA] 엑셀 파일을 PDF로 저장(EXPORT) 시키기 [1]

  • [레벨:30]아별
  • 2015-01-21
  • 조회 수 7629

기타 엑셀 2013에서 웹 브라우저 컨트롤(ActiveX, web browser)을 시트에 삽입할 수 없는 문제.. imagefile

  • [레벨:30]아별
  • 2014-01-19
  • 조회 수 7597

기타 엑셀에서 소리 내기(재생) _ sound play file [1]

  • [레벨:30]아별
  • 2010-12-13
  • 조회 수 7586

엑셀VBA 텍스트 박스에서 여러줄 입력하기

  • [레벨:30]a☆
  • 2004-11-15
  • 조회 수 7492

Excel에서 메뉴 및 메뉴 모음을 사용자 지정하는 방법 image

  • [레벨:30]아별
  • 2009-11-04
  • 조회 수 7476

[엑셀VBA] ERROR CODE file

  • [레벨:30]아별
  • 2008-08-28
  • 조회 수 7429

엑셀 추가 기능 만들기

  • [레벨:30]a☆
  • 2006-01-19
  • 조회 수 7410

현재 엑셀 파일의 색상표(Color Chart) 확인용 코드

  • [레벨:30]아별
  • 2009-12-24
  • 조회 수 7299

엑셀의 사용자 정의 날짜/시간 형식(Format 함수)

  • [레벨:30]a☆
  • 2004-11-12
  • 조회 수 7213

[엑셀VBA] 메시지 박스 활용하기

  • [레벨:30]아별
  • 2004-12-22
  • 조회 수 7137

기타 헷갈리기 쉬운 워크시트 함수와 VBA함수 비교표 imagefile

  • [레벨:30]아별
  • 2010-10-05
  • 조회 수 6876

기타 VBE에서 휠마우스 사용가능하게 하기SpeedVB4 file

  • [레벨:30]아별
  • 2005-07-22
  • 조회 수 6825

[펌] Excel Macro(VBA) 입문자를 위한 소개자료 image

  • [레벨:30]아별
  • 2008-12-19
  • 조회 수 6686

엑셀에서 서식 지정하기.. 숫자를 한글로 표시하기 등.. [1]

  • [레벨:30]a☆
  • 2004-09-24
  • 조회 수 6660

기타 기본 제공 대화 상자 실행하면 초기 값 설정 imagefile

  • [레벨:30]아별
  • 2010-08-25
  • 조회 수 6539

엑셀에서 매개변수의 전달과 외부함수 호출

  • [레벨:30]a☆
  • 2004-10-27
  • 조회 수 6508

엑셀에서 날짜 함수 컨트롤 하기

  • [레벨:30]a☆
  • 2004-10-29
  • 조회 수 6323