Exceller Home > VBA °­ÁÂ > VBA ÀÔ¹®°­ÁÂ

Exceller's VBA ÀÔ¹®°­ÁÂ

- ÃÖÃÊ ÀÛ¼ºÀÏ : 2008-05-19
- ÃÖÁ¾ ¼öÁ¤ÀÏ : 2008-05-19
- °­Á ÀÐÀ½¼ö : 8,614ȸ
- ÀÚ·á ÀÛ¼ºÀÚ :


- °­Á Á¦¸ñ : ¸®º»¿¡ »õ·Î¿î ÅÇ Ãß°¡Çϱâ

¾ó¸¶ Àü¿¡ ÀÐÀº ±Û Áß¿¡ ÀÌ·± °ÍÀÌ ÀÖ¾ú½À´Ï´Ù(by À̺ñÁî³×Æ®¿öÅ© CEO ÃÖÀ±±Ô).

´ç½ÅÀÌ ¿øÇÏµç ¿øÇÏÁö ¾Êµç °£¿¡
ÀڱⰡ ³»¹ñÀº ¸» ÇѸ¶µð°¡
³² ¾Õ¿¡ ÀÚ½ÅÀÇ ÃÊ»óÈ­¸¦ ±×·Á³õ´Â °ÍÀÌ´Ù.
»ç¶÷µéÀº ±×°¡ ÇÏ´Â ¸»·Î½á ±×¸¦ ÆÇ´ÜÇÑ´Ù.
ºÎÁ¤ÀÇ À̹ÌÁö°¡ ¾Æ´Ï¶ó
±àÁ¤ÀÇ À̹ÌÁö°¡ ¶°¿Ã·ÁÁö´Â »ç¶÷ÀÌ µÅ¶ó.

¿ì¸®´Â ÈçÈ÷ ³²µéÀÌ ³ª¸¦ ¸ô¶óÁØ´Ù°í ¾ß¼ÓÇØ ÇÕ´Ï´Ù. ³ªÀÇ º» ¸ð½ÀÀº ±×°Ô ¾Æ´Ñµ¥ »ç¶÷µé¿¡°Ô À߸ø ÀνĵǾî ÀÖ´Ù¸ç ¸¶À½ ¾ÆÆÄÇÕ´Ï´Ù. ½Çü°¡ ¾øÀ¸¸é ±×¸²ÀÚ ¶ÇÇÑ Á¸ÀçÇÒ ¼ö ¾ø´Â ¹ýÀÔ´Ï´Ù. Æò¼Ò¿¡ ³»°¡ ÇÑ ¸» ÇѸ¶µð, ÀÛÀº Çൿ Çϳª°¡ »ó´ë¹æÀÇ ³ú¸®¿¡ Á¶±Ý¾¿ Á¶±Ý¾¿ ÈçÀûÀ» ³²±â¾î °á±¹¿¡´Â '³ª'¶õ Á¸Àç°¡ °¢ÀεǴ °ÍÀ̰ÚÁö¿ä.


¿¹Á¦ ÆÄÀÏ ³»·Á¹Þ±â


À̹ø °­Á´ "<¿¢¼¿ 2007 ¸ÅÅ©·Î¿Í VBA ³¯°³´Þ±â>(µðÁöÅкϽº)"¿¡¼­ ÆíÁý/ÀοëÇÑ °ÍÀÔ´Ï´Ù.

µé¾î°¡±â Àü¿¡...

¸®º»°ú °ü·ÃµÈ À̹ø °­Á´ VBA ÀÔ¹®°­Á¶ó°í Çϱ⿡´Â Á» ¹«¸®°¡ ÀÖ½À´Ï´Ù¸¸, º°µµÀÇ ¼½¼ÇÀ¸·Î ±¸ºÐÇϱ⵵ ¹¹Çϰí ÇØ¼­ ±×³É ÀÌ ¹üÁÖ¿¡ Æ÷ÇÔ½ÃÄ×½À´Ï´Ù. VBA¸¦ óÀ½ Á¢ÇÏ´Â ºÐÀ̶ó¸é 'ÀÌ·± °Íµµ ÀÖ±º' ÇÏ´Â Á¤µµ·Î ºÎ´ã¾øÀÌ ÀÐ°í ³Ñ¾î°¡¼Åµµ µË´Ï´Ù.

Áö³­ °­Á ¸»¹Ì¿¡ ³»µå¸° ¼÷Á¦°Ë»ç(?)ºÎÅÍ ÇÏ°í °­Á ÁøÇàÇϰڽÀ´Ï´Ù. 'Microsoft Office 2007 Custom UI Editor¡¯¿Í Ä£ÇØÁ®¾ßÇÑ´Ù°í Çß¾ú´Âµ¥ ¸¹ÀÌ »ç¿ëÇØ º¸¼Ì³ª¿ä? ±×·¯¼ÌÀ¸¸®¶ó ¹Ï°í...

»õ·Î¿î ÅÇ Ãß°¡Çϱâ

À̹ø¿¡´Â ´ÙÀ½ ±×¸²°ú °°ÀÌ 3°³ÀÇ ±×·ìÀ» °¡Áø ¡®Power Tools¡¯¶ó´Â ÅÇÀ» Ãß°¡ÇØ º¸°Ú½À´Ï´Ù. ¾Õ¿¡¼­ ¼Ò°³ÇØ µå¸° ¡®Office 2007 Custom UI Editor(ÆíÀÇ»ó ¾ÕÀ¸·Î´Â ±×³É UI Editor¶ó°í ÁÙ¿©¼­ ºÎ¸£°Ú½À´Ï´Ù)¡¯¸¦ ÀÌ¿ëÇÏ¿© ÀÛ¼ºÇϵµ·Ï ÇÏÁö¿ä.

(1) »õ·Î¿î ÅëÇÕ¹®¼­¸¦ Çϳª ¸¸µç ´ÙÀ½ '¸®º»X_ÅÇÃß°¡.xlsm'À̶ó´Â À̸§À¸·Î ÀúÀåÇÕ´Ï´Ù. ¹°·Ð ´Ù¸¥ À̸§À¸·Î ÀúÀåÇØµµ »ó°ü¾øÀ¸³ª ÆÄÀÏ Çü½ÄÀº 'Excel ¸ÅÅ©·Î »ç¿ë ÅëÇÕ ¹®¼­(*.xlsm)' ÆÄÀÏ Çü½ÄÀ¸·Î ÁöÁ¤Çϼ¼¿ä.

UI Editor¸¦ ½ÇÇàÇÏ°í ¹æ±Ý ÀúÀåÇÑ ÅëÇÕ ¹®¼­¸¦ ¿±´Ï´Ù. »õ·Î¿î ÅÇÀ» »ý¼ºÇÏ´Â °Í ÀÚü´Â °£´ÜÇÕ´Ï´Ù. ´ÙÀ½°ú °°Àº ¸®º»X Äڵ带 ÀÛ¼ºÇÕ´Ï´Ù. Á÷Á¢ ÀÔ·ÂÇϱ⠾î·Á¿ì¸é ¾Æ·¡ ³»¿ëÀ» ±Ü¾î´Ù ºÙ¿© ³ÖÀ¸¼¼¿ä.

<customUI xmlns='http://schemas.microsoft.com/office/2006/01/customui'>
<ribbon>
<tabs>
<tab id="MyTab" label="Power Tools"> </tab>
</tabs>
</ribbon>
</customUI>

¿¢¼¿·Î °¡¼­ '¸®º»X_ÅÇÃß°¡.xlsm' ÆÄÀÏÀ» ¿­¾îº¸¸é ¡®Power Tools¡¯¶ó´Â ÅÇÀÌ ¸¸µé¾îÁ® ÀÖÀ½À» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·ìÀ̳ª ¾ÆÀÌÄÜÀÌ ºüÁ® ÀÖ±â´Â ÇÏÁö¸¸ ¸»ÀÔ´Ï´Ù.

(2) Çã¿ì´ë »ÓÀÎ Power Tools ÅÇ¿¡ Áö´ÉÀ» ½É¾î º¼±î¿ä? UI Editor¸¦ ½ÇÇàÇÑ ´ÙÀ½ ±×·ì°ú ÄÁÆ®·ÑÀ» Ãß°¡ÇÏ´Â ¸®º»X Äڵ带 ÀÔ·ÂÇÕ´Ï´Ù. óÀ½ º¸´Â ºÐÀ̶ó¸é, '¾Æ´Ï, ¹¹°¡ ÀÌ·¸°Ôµµ º¹ÀâÇÑ °ÍÀÌ ´Ù ÀÖ³ª??' Çϸç Çö±âÁõÀÌ ³¯ ¹ýµµ ÇÕ´Ï´Ù¸¸, ÄÚµåÀÇ ¼¼¼¼ÇÑ ºÎºÐ±îÁö´Â ¾Ë Çʿ䰡 ¾ø½À´Ï´Ù. ¿©±â¼­´Â ±×Àú ¹Ýº¹µÇ´Â ÆÐÅϸ¸ ´«À¸·Î ÀÍÇôµÎ´Â °ÍÀ¸·Î ÃæºÐÇϴϱî ÄÚµå´Â ºÙ¿©³Ö±â¸¸ Çϼ¼¿ä.

ÄÚµå ÀÛ¼ºÀÌ ³¡³µÀ¸¸é UI EditorÀÇ ¡®Validate¡¯ ¾ÆÀÌÄÜÀ» Ŭ¸¯ÇØ º¸¼¼¿ä. XML ÆÄÀÏÀÌ Á¦´ë·Î ÀÛ¼ºµÇ¾ú´Ù¸é 'Custom UI XML is well formed!'¶ó´Â ´ëÈ­»óÀÚ°¡ ³ªÅ¸³³´Ï´Ù.

(3) ¸®º»X Äڵ忡¼­ È£ÃâÇÏ´Â Äݹé ÇÁ·Î½ÃÀú¸¦ ÀÛ¼ºÇÒ Â÷·ÊÀÔ´Ï´Ù. ¡®Generate Callbacks¡¯ ¾ÆÀÌÄÜÀ» Ŭ¸¯Çϸé Äݹé ÇÁ·Î½ÃÀú¸íÀÌ ³ªÅ¸³ª´Âµ¥ ¹üÀ§¸¦ ÁöÁ¤ÇÑ ´ÙÀ½ ¸¶¿ì½º ¿À¸¥ÂÊ ¹öưÀ» Ŭ¸¯Çϰí 'Copy' ¸Þ´º¸¦ ¼±ÅÃÇÕ´Ï´Ù.

¿¢¼¿·Î µÇµ¹¾Æ¿Í¼­ ÇØ´ç ÆÄÀÏÀ» ¿±´Ï´Ù. ¡®°³¹ß µµ±¸¡¯ ÅÇÀÇ ¡®Visual Basic¡¯ ÄÁÆ®·ÑÀ» Ŭ¸¯ÇÑ ´ÙÀ½ ¸ðµâÀ» ÇÑ Àå »ðÀÔÇϰí, ¾Õ¿¡¼­ º¹»çÇÑ Äݹé ÇÁ·Î½ÃÀúµéÀ» ºÙ¿©³Ö½À´Ï´Ù.

¸®º»ÀÇ ÅÇÀ» Ãß°¡ÇÏ´Â Àüü È帧À» ÀÌÇØÇÏ´Â °ÍÀÌ Áß¿äÇϹǷΠÄݹé ÇÁ·Î½ÃÀúÀÇ ÄÚµå ³»¿ëÀº µÞºÎºÐ¿¡¼­ ÇѲ¨¹ø¿¡ ¼³¸í µå¸®°Ú½À´Ï´Ù.

(4) ´ÙÀ½ ±×¸²À» Âü°í·Î MyBtn4 ÇÁ·Î½ÃÀú¿¡¼­ È£ÃâÇÏ´Â »ç¿ëÀÚ Á¤ÀÇ ÆûÀ» ÀÛ¼ºÇÕ´Ï´Ù.

(5) ¡®Power Tool¡¯ ±×·ì¿¡ ÀÖ´Â 4°³ÀÇ ÄÁÆ®·Ñ¿¡ ¿¬°áµÈ Äݹé ÇÁ·Î½ÃÀú ¹× Äݹé ÇÁ·Î½ÃÀú¿¡¼­ È£ÃâÇÏ´Â ¿ÜºÎ ÇÁ·Î½ÃÀúµéÀ» ÀÛ¼ºÇÕ´Ï´Ù.

¸¶Áö¸·À¸·Î ¡®Versatile Print Manager¡¯ ÄÁÆ®·Ñ¿¡ ¿¬°áµÇ¾î ÀÖ´Â 2°³ÀÇ ÇÁ·Î½ÃÀú¸¦ ÀÛ¼ºÇÕ´Ï´Ù.

Sub ReverseOrderPrint(ByVal OK As Boolean, Optional ByVal EvenOrOdd As Byte)

ÇÁ·Î½ÃÀú¸¦ ½ÃÀÛÇÒ ¶§ºÎÅÍ ¿¹»ç·ÓÁö ¾Ê°Ô ½ÃÀÛÇÏ¿´½À´Ï´Ù. ByValÀ̶ó´Â °ÍÀº Àμö¸¦ Àü´ÞÇÒ ¶§ ÂüÁ¶ ¹æ½ÄÀÌ ¾Æ´Ñ °ª¿¡ ÀÇÇØ Àü´ÞµÊÀ» ÀǹÌÇÕ´Ï´Ù. OptionalÀ̶ó´Â °ÍÀº ¡®¼±ÅÃÀû º¯¼ö¡¯¶ó´Â °ÍÀ¸·Î, »ç¿ëÀ» ÇÒ ¼öµµ ÀÖ°í ÇÏÁö ¾ÊÀ» ¼öµµ ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. Çʼö »ç¾çÀÌ ¾Æ´Ï¶ó ¿É¼Ç »ç¾çÀ̶ó´Â ÀǹÌÀÔ´Ï´Ù. Optional Àμö¿¡ ´ëÇØ¼­´Â ´ÙÀ½ °­ÁÂÀÇ '(3) ¼±ÅÃÀû ÀμöOptional argument¸¦ °¡Áö´Â »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö' ºÎºÐÀ» Àо½Ã±â ¹Ù¶ø´Ï´Ù.

http://www.iexceller.com/MyXls/VBA_Beginner/VBA_Beginner10.asp

    Dim intTotalPage As Integer
    Dim i As Integer
    intTotalPage = ExecuteExcel4Macro("get.document(50)")

Excel4Macro¿¡ ´ëÇÏ¿©

ÃʱâÀÇ ¿¢¼¿((Excel 95 ÀÌÀü ¹öÀü)¿¡¼­ ¸ÅÅ©·Î´Â XLMÀ̶ó´Â È®ÀåÀÚ¸íÀ» °®´Â º°µµÀÇ ÆÄÀÏ¿¡ Äڵ带 µû·Î ÀúÀåÇß¾ú´Âµ¥ À̰ÍÀ» XLM ¸ÅÅ©·Î ¶Ç´Â Excel4Macro¶ó°í ºÒ·¶½À´Ï´Ù. XLM ¸ÅÅ©·Î´Â ÇÔ¼öÀÇ Á¾·ù°¡ ¸¹¾Ò´ø ¹Ý¸é ¹è¿ì±â°¡ ¾î·Á¿ü½À´Ï´Ù. ¿öÅ©½ÃÆ®ÀÇ Àüü ÆäÀÌÁö¼ö¸¦ ±¸ÇÏ´Â °æ¿ì¿Í °°ÀÌ ¾ÆÁ÷µµ Excel4MacroÀÇ µµ¿òÀ» ¹Þ¾Æ¾ß ÇÏ´Â °ÍÀÌ ÀÖ½À´Ï´Ù.

    If intTotalPage Mod 2 = 0 Then intTotalPage = intTotalPage - 1
    If EvenOrOdd = 1 Then
        For i = intTotalPage To 1 Step -2
            ActiveSheet.PrintOut from:=i, To:=i, preview:=OK
        Next i
    ElseIf EvenOrOdd = 2 Then
        For i = intTotalPage + 1 To 1 Step -2
            ActiveSheet.PrintOut from:=i, To:=i, preview:=OK
        Next i
    Else
        For i = intTotalPage + 1 To 1 Step -1
            ActiveSheet.PrintOut from:=i, To:=i, preview:=OK
        Next i
    End If

End Sub

Sub GeneralOrderPrint(ByVal OK As Boolean, Optional ByVal EvenOrOdd As Byte)

    Dim intTotalPage As Integer
    Dim i As Integer
    intTotalPage = ExecuteExcel4Macro("get.document(50)")
   
    If EvenOrOdd = 1 Then
        For i = 1 To intTotalPage Step 2
            ActiveSheet.PrintOut from:=i, To:=i, preview:=OK
        Next i
    ElseIf EvenOrOdd = 2 Then
        For i = 2 To intTotalPage Step 2
            ActiveSheet.PrintOut from:=i, To:=i, preview:=OK
        Next i
    Else
        For i = 1 To intTotalPage
            ActiveSheet.PrintOut from:=i, To:=i, preview:=OK
        Next i
    End If

End Sub

ÀÌ°Í ¸»°íµµ ¸î °³ÀÇ ÇÁ·Î½ÃÀú°¡ ´õ ÀÖ½À´Ï´Ù. ÀÌ¿Í °ü·ÃÇØ¼­´Â ¿¹Á¦ ÆÄÀÏÀ» ¿­¾î Á÷Á¢ »ìÆìº¸½Ã±â ¹Ù¶ø´Ï´Ù.

À̻󿡼­ »ìÆìº» °Íó·³, ¿¢¼¿ 2007¿¡¼­ ¸®º»À» »ç¿ëÀÚÈ­ ÇÏ´Â ÀÛ¾÷Àº ÀÌÀü ¹öÀü¿¡¼­ Ä¿¸Çµå ¹Ù ¿ÀºêÁ§Æ®¸¦ ÀÌ¿ëÇÏ´ø °Í°ú ºñ±³ÇÏ¸é »ó´çÈ÷ ±î´Ù·Ó½À´Ï´Ù. µû¶ó¼­ Ưº°ÇÑ °æ¿ì°¡ ¾Æ´Ï¶ó¸é Ä¿¸Çµå ¹Ù ¿ÀºêÁ§Æ®¸¦ ÀÌ¿ëÇÏ´Â °ÍÀÌ ´õ¿í Æí¸®ÇÒ ¼ö ÀÖ´Ù´Â Á¡À» ¿°µÎ¿¡ µÎ½Ã±â ¹Ù¶ø´Ï´Ù. Ä¿¸Çµå ¹Ù ¿ÀºêÁ§Æ®¿¡ ´ëÇÑ »çÇ×Àº ¿¹Àü¿¡ ¼Ò°³ÇØ µå¸° VBA °­ÁµéÀ» Âü°íÇϼ¼¿ä. ´Ü Ä¿¸Çµå ¹Ù ¿ÀºêÁ§Æ®¸¦ »ç¿ëÇÏ°Ô µÇ¸é ´ÙÀ½°ú °°Àº ´ÜÁ¡Àº ÀÖ½À´Ï´Ù(¼ÓµÈ ¸»·Î '»Ç´ë'´Â Á» ´ú ³³´Ï´Ù ^^).

  • ¸ðµç ÄÁÆ®·ÑÀ̳ª ¸í·ÉÀÌ ¡®Ãß°¡ ±â´É¡¯ ÅÇ ¾Æ·¡¿¡ Ç¥½ÃµÈ´Ù.

  • 'µµ±¸ ¸ðÀ½'À» ¸¸µé ¼ö ¾ø´Ù(À̰ÍÀº ¸®º»X Äڵ带 ÀÛ¼ºÇÏ´õ¶óµµ ¸¶Âù°¡Áö).

  • ½ÇÇàµÇÁö ¾Ê°í ¹«½ÃµÇ´Â ÇÁ·ÎÆÛƼ³ª ¸Þ¼­µå°¡ ÀÖÀ» ¼ö ÀÖ´Ù.

ÀÌ·¯ÇÑ »çÇ×µéÀ» ¿°µÎ¿¡ µÎ°í »çÀü¿¡ Å×½ºÆ®¸¦ ÅëÇØ È®ÀÎÀ» ÇÑ´Ù¸é Ä¿¸Çµå ¹Ù ¿ÀºêÁ§Æ®´Â ¿¢¼¿ 2007 ¹öÀü¿¡¼­µµ ¿©ÀüÈ÷ ÇϳªÀÇ ´ë¾ÈÀÌ µÉ ¼ö ÀÖÀ» µí ÇÕ´Ï´Ù.


Previous

Next

Copyright ¨Ï 2008 ¾ÆÀÌ¿¢¼¿·¯ ´åÄÄ. All rights reserved.