¿¹Á¦ ÆÄÀÏ ³»·Á¹Þ±â
À̹ø °Á´ "<¿¢¼¿ 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 ¹öÀü¿¡¼µµ ¿©ÀüÈ÷
ÇϳªÀÇ
´ë¾ÈÀÌ
µÉ ¼ö
ÀÖÀ» µí ÇÕ´Ï´Ù.
|