3. ´ÜÃà ¸Þ´º ¸¸µé±â
ÀÚ·á´Ù¿î·Îµå : ¿ÀÆ©°ø±¸ÇÔ003.xls
³¯ÀÌ¸é ³¯¸¶´Ù ¿À´Â °ÍÀº ¾Æ´Ï°í ÀÏÁÖÀϸ¶´Ù ã¾Æ °¡´Â °û½ÂÁÖÀÔ´Ï´Ù.
26ÀÏÀº CIH¹ÙÀÌ·¯½º°¡ È°µ¿ÇÏ´Â ³¯ÀÎ °Å ´Ù ¾Æ½ÃÁÒ? ¿©·¯ºÐµéÀÇ PC´Â ¸ðµÎ ¾È³çÇϽʴϱî? ¿¹Àü¿¡ Àúµµ Á¦ PC°¡ ¹ÌÄ̶õÁ©·Î ¹ÙÀÌ·¯½º¿¡ °¨¿°µÈ ÀûÀÌ Àִµ¥, »ç½Ç ÀÌ°Ô ¹ÙÀÌ·¯½ºÅ¿ÀÎÁö, ±â°è°íÀåÀÎÁö, ¾Æ´Ï¸é ¸¶±¸´Ï(?) °°Àº ÇÁ·Î±×·¥ Å¿ÀÎÁö ¸ô¶ó ´çȲÇß¾ú½À´Ï´Ù. ¾ó¸¶Àü¿¡´Â Loveletter¶óµç°¡ Naked Wife°°Àº VBS½ºÅ©¸³Æ®¹ÙÀÌ·¯½º°¡ Çѵ¿¾È ¿ä¶õÇߴµ¥ ÀÎÅͳÝÀ» ÅëÇØ ¹ÙÀÌ·¯½º¼Ò½º¸¦ ½±°Ô ±¸ÇÒ ¼ö ÀÖ¾î ´õ¿í ¹®Á¦ÁÒ. MS¿ÀÇǽº¸¦ »ç¿ëÇÏ´Â Àú³ª ¿©·¯ºÐµé¿¡°Ô´Â ¸ÅÅ©·Î¹ÙÀÌ·¯½º°¡ ¿äÁÖÀÇ ´ë»óÀÌÁÒ. »ç½Ç Àú´Â ±× ¹ÙÀÌ·¯½º°¡ ³¢Ä¡´Â ÇÇÇغ¸´Ù´Â "´ëü ÀÌ°É ¾î¶»°Ô ¸¸µç °Å¾ß..." ±Ã½Ã··°Å¸®¸é¼ ÇÁ·Î±×·¥ÀÇ ¿ø¸®¸¦ ¸ÕÀú ±Ã±ÝÇØÇÕ´Ï´Ù. ÀÌ Á¤µµ¸é º´À̶ö ¼ö ¹Û¿¡ ¾ø±º¿ä.
¿À´ÃÀº ´ÜÃà¸Þ´º¸¦ ¸¸µå´Â ¹æ¹ýÀ» ¼±º¸ÀÌ·Á ÇÕ´Ï´Ù.
´ÜÃà¸Þ´º´Â ¸¶¿ì½º¿À¸¥ÂÊ ¹öÆ°À» ´©¸£¸é ³ª¿À´Â ¸Þ´º¸¦
¸»ÇÕ´Ï´Ù. ¿À´ÃÀº ÀÌ ´ÜÃà¸Þ´º¿¡ ¿ì¸®ÀÇ ¿ÀÆ©°ø±¸ÇÔ
¸Þ´º¸¦ »ðÀÔÇغ¸°Ú½À´Ï´Ù. ¿·ÀÇ ±×¸²À» º¸½Ã¸é ¿ì¸®°¡
ÀÚÁÖ º¸´ø ´ÜÃà¸Þ´ºÀÔ´Ï´Ù. ±×¸®°í ÀÚ¼¼È÷ º¸½Ã¸é
´ÜÃà¸Þ´ºÀÇ »ó´Ü¿¡ "About OT-Tools"¶ó´Â
¸Þ´º¾ÆÀÌÅÛÀ» º¸½Ç ¼ö ÀÖÀ» °Ì´Ï´Ù. ¿ì¼± ´ÜÃà¸Þ´º¿¡
°ü·ÃÇÑ ¼Ò½º¸¦ ¸ÕÀú º¸½ÃÁÒ.
¡¡
¡¡
¡¡
¸ðµâ:user_menu_short |
Option Explicit
Const USER_SHORTCUT_TAG As String = "UserShortCut"
Sub CreateShortCutMenu()
DeleteShortCutMenu
With Application.CommandBars("cell").Controls _
.Add(Type:=msoControlButton, before:=1,
temporary:=True)
.Caption = "About OT-Tools"
.OnAction = "ShowSplash"
.Tag = USER_SHORTCUT_TAG
End With
End Sub
Sub DeleteShortCutMenu()
Dim cmdShortCut As CommandBarControl
For Each cmdShortCut In Application.CommandBars("cell").Controls
If Not cmdShortCut.BuiltIn Then cmdShortCut.Delete
Next
Set cmdShortCut = Nothing
End Sub
Sub ShowSplash()
frmSplash.Show
End Sub |
ÀÇ¿Ü·Î °£´ÜÇÏÁÒ. »ç¿ëÀÚÁ¤ÀÇ ´ÜÃà¸Þ´º ¿ª½Ã ¾Õ¼ ¸¸µç ¸Þ´º³ª µµ±¸¸ðÀ½Ã³·³ CommandBars Ä÷º¼Ç°³Ã¼¸¦ »ç¿ëÇÏ¿© ¸¸µì´Ï´Ù.
Const USER_SHORTCUT_TAG As String = "UserShortCut"
»ç¿ëÀÚÁ¤ÀÇ ´ÜÃà¸Þ´º¿¡ ´ëÇÑ ²¿¸®Ç¥ÀÔ´Ï´Ù. ÀÌ¹Ì ¾Õ¼ÀÇ Ä÷³¿¡¼µµ ÃæºÐÈ÷ ¼³¸íÇÏ¿´À¸¹Ç·Î »ý·«Çϵµ·Ï ÇÏ°Ú½À´Ï´Ù.
Sub CreateShortCutMenu()
DeleteShortCutMenu
»ç¿ëÀÚÁ¤ÀÇ ´ÜÃà¸Þ´º¸¦ ¸¸µé±â Àü¿¡ »èÁ¦¸¦ Çغ¾´Ï´Ù. Ȥ½Ã ´ÜÃà¸Þ´º°¡ ÀÌ¹Ì ÀÖ´Â »óÅ¿¡¼ Ãß°¡ÇÏ´Â ºÒ»ó»ç¸¦ ¸·±â À§ÇÑ °ÍÀÔ´Ï´Ù.
With Application.CommandBars("cell").Controls _
.Add(Type:=msoControlButton, before:=1, temporary:=True)
CommandBars Ä÷º¼Ç°³Ã¼ÀÇ "CELL" °³Ã¼¿¡ ÄÁÆ®·ÑÀ» Ãß°¡ÇÕ´Ï´Ù, ŸÀÔÀ̳ª À§Ä¡µîÀº ¾Õ¼ÀÇ µµ±¸¸ðÀ½À̳ª ¸Þ´º¿Í °æ¿ì¿Í ´Ù¸£Áö ¾Ê¾Æ ¼³¸íÀº »ý·«ÇÕ´Ï´Ù.
.Caption = "About OT-Tools"
»ç¿ëÀÚÁ¤ÀÇ ´ÜÃà¸Þ´º ¾ÆÀÌÅÛÀÇ À̸§À» Á¤ÇÕ´Ï´Ù. ´ÜÃà¸Þ´º¿¡´Â ¼±ÅÃÇÑ ¼¿¿¡ ´ëÇÑ Á÷Á¢ÀûÀÎ ÀÛ¾÷À» À§ÇÑ ±â´ÉÀ» Ãß°¡ÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù. À§ÀÇ ´ÜÃà¸Þ´º±×¸²À» º¸¸é ¿¢¼¿ÀÌ ±âº»ÀûÀ¸·Î Á¦°øÇÏ´Â À߶󳻱â,º¹»ç,ºÙ¿©³Ö±â,¼¿¼½ÄµîÀº ¸ðµÎ ¼¿°ú °ü·ÃÇÑ ±â´ÉÀÔ´Ï´Ù. ¿ÀÆ©°ø±¸ÇÔ¿¡´Â ÇöÀç ±¸ÇöÇسõÀº ±â´ÉÀÌ ¾ø´Â °ü°è·Î ½ºÇ÷¡½ÃȸéÀ» º¸¿©ÁÖ´Â °ÍÀ¸·Î ±â´É¸¸ ³Ö¾ú½À´Ï´Ù. ³ªÁß¿¡ ¼¿°ú °ü·ÃÇÑ ±â´ÉÀÌ ¸¸µé¾îÁö¸é ´ÜÃà¸Þ´º¿¡ Ãß°¡Çϵµ·Ï ÇÏ°Ú½À´Ï´Ù.
.OnAction = "ShowSplash"
½ºÇ÷¡½ÃȸéÀ» º¸¿©ÁÖ´Â ÇÁ·Î½ÃÁ®ÀÔ´Ï´Ù.
.Tag = USER_SHORTCUT_TAG
End With
End Sub
ÀÌÁ¦ »ç¿ëÀÚÁ¤ÀÇ ´ÜÃà¸Þ´º¸¦ »èÁ¦ÇÏ´Â ºÎºÐÀÔ´Ï´Ù.
Sub DeleteShortCutMenu()
Dim cmdShortCut As CommandBarControl
´ÜÃà¸Þ´ºÀÇ ¾ÆÀÌÅÛÀº ¿ª½Ã °³Ã¼ÀÔ´Ï´Ù. ÀÌ·± °³Ã¼¸¦ µÇµ¹·Á ¹Þ±â À§ÇÑ °³Ã¼º¯¼ö¸¦ ¼±¾ðÇÏ¿´½À´Ï´Ù.
For Each cmdShortCut In Application.CommandBars("cell").Controls
If Not cmdShortCut.BuiltIn Then cmdShortCut.Delete
À̹øÀÇ »èÁ¦¿¡¼´Â FindControl ¸Þ¼Òµå³ª Tag ¼Ó¼º ´ë½Å BuiltinÀ̶ó´Â ¼Ó¼ºÀ» »ç¿ëÇÏ¿© Áö¿ü½À´Ï´Ù. Áö³ Ä÷³¿¡¼µµ Àá±ñ ¾ð±ÞÇÏ¿´Áö¸¸ ¿¢¼¿ÀÇ ³»À尳üÀΰ¡ ¾Æ´Ï¸é »ç¿ëÀÚÁ¤ÀÇ °³Ã¼Àΰ¡¸¦ ¾Ë·ÁÁÝ´Ï´Ù, ±×·¯³ª FindControl ¸Þ¼Òµå³ª Tag ¼Ó¼ºÀ» ÀÌ¿ëÇÏ¿© »èÁ¦ÇÏ´Â °Í°ú Builtin¼Ó¼ºÀ» ÀÌ¿ëÇÏ¿© »èÁ¦ÇÏ´Â °Í¿¡´Â ¾à°£ÀÇ Â÷ÀÌ°¡ ÀÖ½À´Ï´Ù. ÀüÀÚÀÇ °æ¿ì¿¡´Â »ç¿ëÀÚ°¡ ÁöÁ¤ÇÑ Á¶°Ç¿¡ µû¶ó Áö¿ì´Â °æ¿ìÀÌ´Ù. µû¶ó¼ ³»°¡ ¸¸µç ±â´É¸¸ »èÁ¦ÇÒ ¼ö ÀÖÁö¸¸ ÈÄÀÚÀÇ °æ¿ì¿¡´Â ¿¢¼¿¿¡ ³»ÀåµÈ °ÍÀΰ¡ ¾Æ´Ñ°¡¸¸ ±¸º°ÇϹǷΠÀ̸¦ ÆÇ´ÜÇÏ¿© Áö¿ì°Ô µÇ¸é ³»°¡ ¸¸µç °³Ã¼»Ó¸¸ ¾Æ´Ï¶ó ´Ù¸¥ »ç¶÷ÀÌ ¸¸µç ¿¢¼¿ÇÁ·Î±×·¥ÀÇ °³Ã¼±îÁö Áö¿ì°Ô µÈ´Ù.
Next
Set cmdShortCut = Nothing
End Sub
Sub ShowSplash()
frmSplash.Show
End Sub
½ºÇ÷¡½Ã ȸéÀ» º¸¿©ÁÖ´Â ÇÁ·Î½ÃÁ®ÀÔ´Ï´Ù
Áö³ Ä÷³ÀÇ Ã·ºÎÆÄÀÏ¿¡ ¸»µµ ¾øÀÌ ½½±×¸Ó´Ï »ðÀÎÇÑ °ÍÀÌ Àִµ¥ ½ºÇ÷¡½ÃÆûÀÔ´Ï´Ù. ½ºÇ÷¡½ÃÆûÀº º°´Ù¸¥ ±â´ÉÀº ¾ø½À´Ï´Ù. ´Ù¸¸ ÇÁ·Î±×·¥ÀÇ Á¦¸ñ°ú °æ¿ì¿¡ µû¶ó¼´Â ¿¢¼¿Ã³·³ ½Ã½ºÅÛÁ¤º¸¸¦ º¸¿©ÁÙ ¼ö ÀÖÁö¸¸ ¿©±â¼´Â °£´ÜÇÏ°Ô
±¸¼ºÇÏ¿´½À´Ï´Ù.
¡¡
¡¡
À§ÀÇ ¸ðµâ°ú °ü·ÃÇÏ¿© À̸¦ ÂüÁ¶ÇÏ´Â ºÎºÐµµ ¹Ù²î¾î¾ß ÇÒ °ÍÀÔ´Ï´Ù.
ThisWorkbook°³Ã¼ÀÇ ÄÚµù |
Private Sub Workbook_BeforeClose(Cancel As Boolean)
DeleteUserToolbar
DeleteShortCutMenu
DeleteUserMenu
End Sub
Private Sub Workbook_Open()
CreateUserMenu
CreateShortCutMenu
CreateUserToolbar
End Sub |
Sub Workbook_BeforeClose()¿¡´Â »èÁ¦ÇÏ´Â ÇÁ·Î½ÃÁ®°¡, Sub Workbook_Open()¿¡´Â »ç¿ëÀÚÁ¤ÀÇ ´ÜÃà¸Þ´º¸¦ ¸¸µå´Â ÇÁ·Î½ÃÁ®°¡ Ãß°¡µÇ¾ú½À´Ï´Ù.
À§ÀÇ ÇÁ·ÎÁ§Æ®¿Í´Â º°°³ÀÎÁö¸¸ »ç¿ëÀÚÁ¤ÀÇ ´ÜÃà¸Þ´º¿Í °ü·ÃÇÏ¿© »ç¿ëÀÚÁ¤ÀÇ ´ÜÃà¸Þ´º°¡ ƯÁ¤ ¿öÅ©½ÃÆ®¿¡¼¸¸ ³ªÅ¸°Å³ª
¾Æ´Ï¸é ƯÁ¤ÇÑ ¹üÀ§¿¡¼¸¸ ³ªÅ¸³ªµµ·Ï ÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÄÚµùÇÕ´Ï´Ù.
»ç¿ëÀÚÁ¤ÀÇ ´ÜÃà¸Þ´º°¡ ƯÁ¤ ¿öÅ©½ÃÆ®¿¡¼¸¸ »ç¿ëµÇ´Â ¿¹Á¦ |
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Excel.Range, Cancel As Boolean)
Select Case Target.Worksheet
Case "sheet1", "Sheet2"
DeleteShortCutMenu
Exit Sub
Case Else
CreateShortCutMenu
End Select
End Sub |
¡¡
»ç¿ëÀÚÁ¤ÀÇ ´ÜÃà¸Þ´º°¡ ƯÁ¤ ¹üÀ§¿¡¼¸¸ »ç¿ëµÇ´Â ¿¹Á¦ |
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Excel.Range, Cancel As Boolean)
DeleteShortCutMenu
If Not Application.Intersect(Target, Range("A:C")) Is Nothing Then
CreateShortCutMenu
End If
End Sub |
ÀÌ·¯ÇÑ ±â´ÉÀº Sub Workbook_SheetBeforeRightClick() ÇÁ·Î½ÃÁ®¸¦ ÀÌ¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌÇÁ·Î½ÃÁ®´Â ¿öÅ©½ÃÆ®¿¡¼ ¸¶¿ì½º ¿À¸¥ÂʹöÆ°À» Ŭ¸¯ÇÏ¸é ¹ß»ýÇÏ´Â WorkbookÀÇ À̺¥Æ®ÀÔ´Ï´Ù.
ÀÚ¼¼ÇÑ ¼³¸íÀº ¿©·¯ºÐ¿¡°Ô ¸Ã°Ü µÎ°Ú½À´Ï´Ù. Á¦°¡ ÀÏÀÏÀÌ ¼³¸íÇÏ´Â °Íº¸´Ù´Â ¿©·¯ºÐÀÌ °øºÎÇغ¸½Ã´Â °ÍÀÌ ´õ¿í ÇнÀÈ¿°ú°¡ ÁÁÀ» °Í °°±º¿ä. Àú¿¡°Ô Çؼ³À» º¸³»ÁÖ½Ã¸é º¸³»Áֽô ºÐÀÇ ±ÛÀ» ¼Ò°³Çص帮°Ú½À´Ï´Ù.
Ä÷³À» ÁøÇàÇÏ´Ùº¸´Ï ¹®µæ ÇÁ·Î±×·¥À̸§ÀÌ ¿ÀÆ©°ø±¸ÇÔÀε¥ ÇöÀç ±â´É(¸¸µé¾î ÁöÁö ¾Ê¾ÒÁö¸¸)Àº ¿¢¼¿¸¸À» À§ÇÑ °ÍÀÓÀ» ±ú´Þ¾Ò½À´Ï´Ù. Àû¾îµµ ¿ÀÆ©°ø±¸ÇÔÀ̶ó¸é ¿öµå³ª ÆÄ¿öÆ÷ÀÎÆ®¸¦ À§ÇÑ °Íµµ ÀÖ¾î¾ß ÇÏÁö ¾ÊÀ» ±î ½Í±º¿ä. ÇöÀç´Â ¿¢¼¿À» À§ÇÑ °ÍÀ» ÀÛ¼ºÇÏ°í ÀÖÁö¸¸ ³ªÁß¿¡´Â ¿öµå³ª ÆÄ¿öÆ÷ÀÎÆ® µîµî ´Ù¸¥ ¿ÀÇǽºÁ¦Ç°À» À§ÇÑ ¿ÀÆ©°ø±¸ÇÔÀ» ¸¸µé¾î¾ß ÇÒ °Í °°½À´Ï´Ù.
´ÙÀ½ ½Ã°£¿¡´Â ¿öÅ©½ÃÆ® ³» Áߺ¹µÈ µ¥ÀÌÅ͸¦ ó¸®ÇÏ´Â ±â´ÉÀ» ¸ÕÀú ¼Ò°³ ÇÒ±î ÇÕ´Ï´Ù. ¿¢¼¿ÀÇ ÇÊÅ͵îÀ» »ç¿ëÇÏÁö ¾Ê°í ¸¸µé¾î º¸¾Ò½À´Ï´Ù. ±×·³ ´ÙÀ½ ½Ã°£¿¡ ºËÁÒ!
|