::: 까만콩 빈이네 :::
까만콩 빈이네의 살아가는 이야기를 기록합니다
RSS
  • Home
20150921135544

9월 21 2015

엑셀(EXCEL) – HyperLink를 KeyBoard를 사용해서 화일, 폴더나 웹사이트 열기

 

아질게 질문에 간단하면서도 어려운 질문이 올라왔네요. HyperLink를 마우스로 누르면 바로 이동이나
웹사이트, 폴더, 화일은 바로 열기가 가능한데 Keyboard로 조작해서 열려고 하는데 방법이 궁금하다고
질문이 올라왔습니다.

이 질문을 어떻게 해결할까 고민하다 저번에 Animation Chart 팁에 활용한 함수가 생각이 났습니다.
Application.OnTime라는 것인데 설명하자면 Application내에서 지정된 시각에 함수나 서브루틴을 할당?
하는 것입니다.

http://www.clien.net/cs2/bbs/board.php?bo_table=lecture&wr_id=269998
(엑셀(EXCEL) – 동적이름정의, Timer를 이용하여 Animation Chart 만들기)

그것을 응용한 Application.OnKey라는 함수를 이용하고자 합니다. 이 함수는 기본적으로 할당된 함수에
별도의 키를 할당하여 함수, 서브루틴을 할당할 수 있는 기능입니다. 이 기능을 사용해서 기본적으로 할당된
Ctrl+C, Ctrl+V 같은 것을 무력화 할 수도 있도 특수 키들에 다른 기능을 부여할 수도 있습니다.

자! 시작해 볼까요?

언제나 처럼 VBA Editor 여시고 Module 하나 삽입하시고 아래 코드를 붙여 넣습니다.

Option Explicit

Sub OpenHyperLink()

Dim Target As String

‘ 첨부된 내용에 오류가 있으니 아래 두줄을 대체해 넣으셔야 합니다. ㅠㅠ

Target = Ucase(ActiveCell.Value)

If InStr(Target, “HTTP://”) Then

ActiveWorkbook.FollowHyperlink Address:=Target, NewWindow:=True ‘웹사이트 열기

Else

ActiveWorkbook.FollowHyperlink Address:=Target, NewWindow:=True ‘파일, 폴더 열기

End If

End Sub

간단히 말하면 현재 셀의 값을 이용해서 화일, 폴더 위치를 열거나 웹사이트를 열도록 하는 것입니다.
그리고 ThisWorkBook을 더블 클릭하시고 아래 코드를 붙여넣기 합니다.

Option Explicit

Private Sub Workbook_Activate()

Application.OnKey “+{NUMLOCK}”, “OpenHyperLink”

End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Application.OnKey “+{NUMLOCK}”

End Sub

Private Sub Workbook_Deactivate()

Application.OnKey “+{NUMLOCK}”

End Sub

Private Sub Workbook_Open()

Application.OnKey “+{NUMLOCK}”, “OpenHyperLink”

End Sub

설명하자면 Shift + NumLock 키를 누르면 OpenHyperLink 루틴을 실행하라는 것입니다. 웹에서 OnKey에
대해 검색하시면 특수키의 정의가 나오므로 필요에 따라 바꾸어 사용하시면 됩니다. 전 거의 사용할 일이
없는 Shift + NumLock를 특수키로 정의했습니다.

엑셀을 끝내거나 다른 워크북을 사용하거나 다시 이 워크북을 사용할 때 기능키를 활성, 비활성화 하는
루틴을 넣어둡니다. 그렇지 않으면 다른 프로그램이나 다른 시트에서 오동작?을 할 수 있기 때문입니다.

별 쓸모도 없는 팁이지만? 꼭 필요한 분이 계실거라고 판단해서 올립니다. 잘 사용하시기를…

첨부 화일 :  20150921-Hyperlink-Open-By-Keyboard

By vinipapa • 무른모 • 0 • Tags: HyperLink, keyboard, 엑셀(EXCEL), 키보드, 하이퍼링크

스크린샷 2015-09-19 13.45.07

9월 19 2015

엑셀(EXCEL) – 셀 포멧의 내용을 변형하여 셀 값 대치

 

http://www.clien.net/cs2/bbs/board.php?bo_table=kin&wr_id=3534450

(엑셀 표시형식 셀 데이터에 적용)

 

너무 간단해서 팁으로 올리기는 뭐 하지만 기억을 위해서 올립니다.

VBA Editor 여시고 Module 추가해서 아래 코드 붙여 넣고 실행 한 번 해주시면 됩니다.

Sub Cell_Value_change_By_Format()

    Dim TempStr As String

    Dim RngCel As Range

    Dim RngRef As Range

    Set RngRef = Application.InputBox(“Select Range”, Type:=8) 

    For Each RngCel In RngRef

        TempStr = Mid(RngCel.NumberFormat, 2, Len(RngCel.NumberFormat) – 3)

        TempStr = TempStr + RngCel.Value

        RngCel.NumberFormat = G

        RngCel.Value = TempStr

    Next

End Sub

By vinipapa • 무른모 • 0 • Tags: 값 대치, 셀포멧

20150918124601

9월 18 2015

엑셀(EXCEL) – 가로 세로 서로 다른 방향으로 설정된 두 시트의 교차 양면 출력

 

엑셀 관련 아질게에 올라오는 질문들을 보면 어찌보면 황당한 것도 많고 업무에서 실제로 데이터의
가공에 힘들고 반복적인 수작업으로 시간만 빼앗기고 업무 효율은 떨어지는 악순환에서 합리적인
해결책을 찾고자 지푸라기라도 잡는 심정으로 질문을 올리시는 분이 많으시더군요.

http://www.clien.net/cs2/bbs/board.php?bo_table=kin&wr_id=3532541
(엑셀 2007 sheet1과 sheet2 한꺼번에 양면인쇄 질문입니다.)

어떻게 보면 심플한 해결 방법이 있습니다. 수작업!!! 일단 Sheet1 전체를 출력하고 다시 출력된 종이를
맞추어 트레이에 넣고 그냥 양면인쇄 옵션없이 출력하는 방법입니다. 그런데 한두장이면 문제가 없지만
엑셀이란 프로그램 자체가 대량의 데이터를 다루다보 니 몇십장이 넘어갈 수도 있다는 것이 문제지요.

제가 양면인쇄되는 프린터가 없어서 정확하다고는 말씀드리기가 어려우나 내용으로 판단해보건데
출력시 Sheet1 전체를 출력하고 Sheet2를 출력하다 보니 양면 인쇄 옵션을 선택하게 되면 Sheet1의
1면과 2면이 양면으로 출력되고 Sheet2도 마찬가지 인 것으로 이해가 됩니다.

참 난해한 문제입니다. 머리를 이리 굴리고 저리 굴려봐도 답이 보이질 않는군요. 그러나 궁하면 통하는 법
pdf를 이용하기로 해 봅니다. 엑셀에서 출력 옵션으로 pdf로 출력하는 것이 있는데 이것을 이용하면 해결할
방법이 보입니다.

VBA Editor로 Module 추가하시고 아래 코드를 붙여넣기 합니다.

Option Explicit

Sub Prt_Dbl_Page()

‘ f: 앞면 세로, b : 뒷면 가로 접두어

Dim fp_cnt As Integer, bp_cnt As Integer
Dim i As Integer, prt_cnt As Integer
Dim f_cnt As Integer, b_cnt As Integer

Dim shtFore As Worksheet
Dim shtBack As Worksheet

f_cnt = 1
b_cnt = 1

‘ 출력되는 과정은 굳이 볼 필요가 없어 속도를 위해서 업데이트 중지
Application.DisplayAlerts = False
Application.ScreenUpdating = False

Set shtFore = Sheets(“ForePort”)
Set shtBack = Sheets(“BackLand”)

‘ 앞면을 세로로 출력 설정
shtFore.Activate
shtFore.PageSetup.Orientation = xlPortrait
fp_cnt = ExecuteExcel4Macro(“get.document(50)”)

‘ 뒷면을 가로로 출력 설정
shtBack.Activate
shtBack.PageSetup.Orientation = xlLandscape
bp_cnt = ExecuteExcel4Macro(“get.document(50)”)

If fp_cnt > bp_cnt Then
prt_cnt = fp_cnt

Else
prt_cnt = bp_cnt

End If

‘ 임시로 pdf화일 만들 폴더를 설정, 물론 먼저 만들어 두어야…
ChDir “C:\Temp\”

‘ pdf로 만들어지 각 페이지의 병합을 편하게 하기위해
‘ 문서를 이름순으로 정리하여 병합할 수 있도록 함
For i = 1 To prt_cnt

shtFore.ExportAsFixedFormat _
Type:=xlTypePDF, Filename:=i & “1” & “.pdf”, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, from:=f_cnt, to:=f_cnt, _
OpenAfterPublish:=False

shtBack.ExportAsFixedFormat _
Type:=xlTypePDF, Filename:=i & “2” & “.pdf”, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, from:=b_cnt, to:=b_cnt, _
OpenAfterPublish:=False

‘ 한장 한장 출력하도록 함
f_cnt = f_cnt + 1
b_cnt = b_cnt + 1

Next

Application.ScreenUpdating = True

End Sub

코드는 딱히 어려운 코드가 아닙니다. 세로 출력할 시트와 가로 출력할 시트를 설정하고 그 자료의 페이지
수를 알아내고 제일 큰 페이지 수 만큼 프린터를 하라는 것입니다. 그리고 그 프린터를 할 때에 종이로
직접하지 말고 pdf화일로 만들라는 것인데 세로출력과 가로출력을 한장씩 번갈아 출력해서 각각으로
pdf로 만들어 특정 폴더에 저장하라는 프로시져입니다.

내용 중에 페이지 병합을 위하여 1페이지에 양면으로 들어갈 것을 예상해서 접미사 1,2를 붙여 저장해서
특정 폴더를 이름순으로 정렬해서 Merge(병합)시킬 때 편하게 화일을 선택할 수 있도록 해 두었습니다.

…

여기서 자동으로 pdf로 병합하는 루틴을 구걸해서 찾았는데 이것이 구버전 API라서 사용하기가 번거럽고
해서 무료로 제공되는 pdf Tool을 이용해 병합하기로 해 봅니다. 여기서는 pdftk를 사용하기로 합니다.
다른 Tool들도 인터페이스만 다르지 결과는 똑같으므로 아무거나 사용하셔도 됩니다.

https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/
http://angusj.com/pdftkb/
http://www.vb-helper.com/howto_pdf_merger.html

이제 인쇄 명령을 누르면 자동으로 Sheet1 한페이지, Sheet2 한페이지가 지속적으로 지정된 특정 폴더에
pdf로 저장되고 이 화일들을 pdf Tool로 묶어서 양면인쇄 옵션을 켜시고 출력하시면 됩니다. 힘들군요!

제가 양면인쇄되는 프린터가 없고 경험도 없어서 이 내용이 이론적으로만 만들어진 것이기에 잘 안되면
프린터 없는 제 잘못입니다? … 여하튼 pdf로 각각 만들어 두었으니 프린터 가지신 분께서 이리 저리 병합
해 보시면서 잘 될 수 있도록 하는 것은 사용자 몫으로 돌립니다.

첨부 화일 : 20150918-서로 다른 방향으로 세팅된 2시트의 교차 양면 출력

By vinipapa • 무른모 • 0 • Tags: 가로세로 교차, 양면 출력, 엑셀, 엘, 팁

«< 27 28 29 30 31 >»

카테고리

  • 매킨토시 (261)
    • 굳은모 (73)
    • 무른모 (194)
  • 빈이네 (303)
    • 가족들 (107)
    • 까만콩 (60)
    • 엄마아빠 (131)
  • 잡동사니 (175)
    • 수다떨기 (37)
    • 정 보 (127)
    • 책읽기 (11)

그 밖의 기능

  • 로그인
  • 글 RSS
  • 댓글 RSS
  • WordPress.org

태그

AirPlay AirPrint Apple BootCamp bundle Database Design Dock Dropbox Edit Event Excel free iPad iPhone iTunes Limitted Free Mac Macbook Mac Bundle MacJournal Mac OSX Macupdate MobileMe OCR Pebble safari Sale share Snow Leopard software Tip tweet Twitter Update Windows 구입 나들이 맥 무료 빈이 업데이트 엑셀 엑셀(EXCEL) 팁
  • 2024 윤석열 탄핵 집회 참석
  • 맥 마이그레이션 중…
  • 동백
  • 같은 나무에 다른 색 잎 들
  • 여름 햇살

↑

© ::: 까만콩 빈이네 ::: 2025
Powered by WordPress • Themify WordPress Themes