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

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

- ÃÖÃÊ ÀÛ¼ºÀÏ : 2008-07-31
- ÃÖÁ¾ ¼öÁ¤ÀÏ : 2008-07-31
- °­Á ÀÐÀ½¼ö : 7,465ȸ
- ÀÚ·á ÀÛ¼ºÀÚ :


- °­Á Á¦¸ñ : ´Ù¾çÇÑ ¹öư(Button) ÄÁÆ®·Ñ

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

³¯µµ ´õ¿îµ¥ À¯¸Ó Çϳª º¸¸é¼­ ½ÃÀÛÇϵµ·Ï ÇÏÁÒ. ¼­¿ï´ë ½É¸®Çаú ÃÖÀÎö ±³¼öÀÇ <³ª¸¦ ¹Ù²Ù´Â ½É¸®ÇÐÀÇ ÁöÇý ÇÁ·¹ÀÓ> Áß¿¡ ³ª¿À´Â ¾ê±âÀÔ´Ï´Ù.

¾î´À ³¯ ¼¼½Ç°ú ¸ð¸®½º°¡ ¿¹¹è¸¦ µå¸®·¯ °¡´Â ÁßÀ̾ú´Ù. "¸ð¸®½º, ÀÚ³×´Â ±âµµ Áß¿¡ ´ã¹è¸¦ ÇÇ¿öµµ µÈ´Ù°í »ý°¢Çϳª?" "±Û½ê Àß ¸ð¸£°Ú´Âµ¥... ¶øºñ²² Çѹø ¿©Â庸´Â °Ô ¾î¶»°Ú³ª?" ¼¼½ÇÀÌ ¶øºñ¿¡°Ô °¡¼­ ¹°¾ú´Ù.

"¼±»ý´Ô, ±âµµ Áß¿¡ ´ã¹è¸¦ ÇÇ¿öµµ µÇ³ª¿ä?" "(Á¤»öÀ» ÇÏ¸ç ´ë´äÇϱ⸦) ÇüÁ¦¿©, ±×°Ç Àý´ë ¾ÈµÇ³×. ±âµµ´Â ½Å°ú ³ª´©´Â ¾ö¼÷ÇÑ ´ëÈ­Àε¥ ±×·² ¼ø ¾øÁö." ¼¼½Ç·ÎºÎÅÍ ¶øºñÀÇ ´äÀ» µéÀº ¸ð¸®½º°¡ ¸»Çß´Ù. "±×°Ç ÀÚ³×°¡ Áú¹®À» À߸øÇ߱⠶§¹®À̾ß. ³»°¡ °¡¼­ ´Ù½Ã ¿©Â庸°Ú³×" À̹ø¿¡´Â ¸ð¸®½º°¡ ¶øºñ¿¡°Ô °¡¼­ ¹°¾ú´Ù.

"¼±»ý´Ô, ´ã¹è¸¦ ÇÇ¿ì´Â Áß¿¡´Â ±âµµ¸¦ ÇÏ¸é ¾ÈµÇ³ª¿ä?" "(¾ó±¼¿¡ ¿ÂÈ­ÇÑ ¹Ì¼Ò¸¦ ÁöÀ¸¸ç)ÇüÁ¦¿©, ±âµµ´Â ¶§¿Í Àå¼Ò°¡ ÇÊ¿ä¾ø´Ù³×. ´ã¹è¸¦ ÇÇ´Â Áß¿¡µµ ±âµµ´Â ¾ó¸¶µçÁö ÇÒ ¼ö ÀÖ´Â °ÍÀÌÁö."

Á¶»ï¸ð»ç °°Àº ÇൿÀ¸·Î ¼øÁøÇÑ(?) ¶øºñ¸¦ ±â¸¸Çß´Ù°í ¿©±â´Â ºÐµµ ÀÖ°Ú½À´Ï´Ù¸¸, °°Àº ÇൿÀ̶ó ÇÒ Áö¶óµµ ¾î¶»°Ô 'ÇÁ·¹ÀÓ' ÇÏ´À³Ä¿¡ µû¶ó ¿ì¸® »îÀÇ °á°ú¹°ÀÌ ´Þ¶óÁú ¼ö ÀÖÀ½À» º¸¿©ÁÖ´Â »ç·Ê¶ó ÇϰڽÀ´Ï´Ù. ¿©±â¼­ 'ÇÁ·¹ÀÓ'À̶õ, ¼¼»óÀ» ¹Ù¶óº¸´Â ¸¶À½ÀÇ Ã¢ ¶Ç´Â ¹®Á¦¸¦ ¹Ù¶óº¸´Â °üÁ¡À» ÀǹÌÇÕ´Ï´Ù.

¿©·¯ºÎ~¿î, ÈÞ°¡¸¦ Áñ±â´Â Áß¿¡´Â (¿¢¼¿) °øºÎ´Â ÇØ¾ß°ÚÁÒ?...¾Æ´ÏÁö... (¿¢¼¿) °øºÎ¸¦ ÇÏ´Â ¿ÍÁß¿¡µµ ÈÞ°¡´Â Áñ°Ü¾ß°ÚÁÒ? ^^


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


¿¢¼¿ÀÇ ¸®º»À» °¡¸¸È÷ µé¿©´Ù º¸¸é ¿©·¯ Á¾·ùÀÇ ÄÁÆ®·Ñ(control)ÀÌ »ç¿ëµÇ¾úÀ½À» ¾Ë ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î 'Ȩ' ÅÇÀ» º¸¸é, '±Û²Ã'À̳ª '±Û²Ã Å©±â'´Â ÄÞº¸ ¹Ú½º ÄÁÆ®·ÑÀ» »ç¿ëÇÑ °ÍÀ̰í, 'ºÙ¿©³Ö±â'´Â À§¿Í ¾Æ·¡°¡ ³ª´¶ 'ºÐÇÒ ¹öư(splitButton)'À» »ç¿ëÇÑ °ÍÀÔ´Ï´Ù. ±×·±°¡ Çϸé '¼­½Ä'À» Ŭ¸¯ÇØ º¸¸é ¶Ç ´Ù¸¥ ¸Þ´º ±¸Á¶°¡ ¾Æ·¡·Î ÆîÃÄÁý´Ï´Ù.

¼ö ¸¹Àº ÄÁÆ®·Ñ Áß¿¡¼­ °¡Àå ÀϹÝÀûÀ¸·Î ¸¹ÀÌ »ç¿ëµÇ´Â ÄÁÆ®·ÑÀº µÎ¸» ÇÒ °Íµµ ¾øÀÌ '¹öư(Button)'ÀÔ´Ï´Ù. ¹öưÀº ¿¢¼¿ 2007 ÀÌÀü¿¡µµ ¸Þ´º³ª µµ±¸ ¸ðÀ½Àº ¹°·Ð, À¯ÀúÆû(UserForm) µî¿¡¼­µµ Æø³Ð°Ô »ç¿ëµÇ¾ú½À´Ï´Ù. ¿¢¼¿ 2007ÀÇ ¸®º»¿¡¼­´Â ´Ù¾çÇÑ ÇüÅÂÀÇ ¹öưÀ» Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù.

ºó Áý ¸¸µé±â

1. 'Office ´ÜÃß-»õ·Î ¸¸µé±â'¸¦ Ŭ¸¯ÇÏ¿© »õ·Î¿î ÆÄÀÏÀ» Çϳª ¸¸µì´Ï´Ù.

2. 'Office ´ÜÃß-´Ù¸¥ À̸§À¸·Î ÀúÀå-Excel ¸ÅÅ©·Î »ç¿ë ÅëÇÕ ¹®¼­'¸¦ ¼±ÅÃÇÑ ´ÙÀ½ Àû´çÇÑ À̸§À¸·Î ÀúÀåÇÏ°í ÆÄÀÏÀ» ´Ý½À´Ï´Ù.

3. 'Office 2007 Custom UI Editor'¸¦ ½ÇÇàÇÏ¿© ¾Õ¿¡¼­ ÀÛ¼ºÇÑ ¸ÅÅ©·Î »ç¿ë ÅëÇÕ ¹®¼­¸¦ ºÒ·¯¿É´Ï´Ù. ¹®ÆÐ¸¦ ´Þ·Á¸é ÁýÀÌ ÀÖ¾î¾ß Çϵí, ¹öưÀ» Ãß°¡ÇÏ·Á¸é 'ÅÇ'ÀÌ ÀÖ¾î¾ß ÇÕ´Ï´Ù. ÅÇÀ» Ãß°¡ÇÏ´Â °ÍÀº ´ÙÀ½°ú °°Àº XMLÀ» »ç¿ëÇÏ¸é µË´Ï´Ù.

<customUI xmlns='http://schemas.microsoft.com/office/2006/01/customui'>
<ribbon>
    <tabs>
      <tab id="MyTab"
        label="Exceller's Tab"
        insertBeforeMso="TabHome">
      </tab>
    </tabs>
</ribbon>
</customUI>

¡¡

¾ÆÁ÷ ÀÌ µµ±¸¸¦ ³»·Á¹ÞÁö ¾ÊÀº ºÐÀº ¾Æ·¡ »çÀÌÆ®¿¡¼­ 'Office 2007 Custom UI Editor¡¯¶ó´Â µµ±¸¸¦ ³»·Á¹Þ¾Æ ¼³Ä¡Çϼ¼¿ä.

http://openxmldeveloper.org/archive/2006/05/26/CustomUIeditor.aspx

Custom UI Editor¿¡ ÀÌ Äڵ带 ÀÛ¼ºÇϰí 'Save' ¾ÆÀÌÄÜÀ» ´­·¯ ÀúÀåÇÕ´Ï´Ù. ¿¢¼¿¿¡¼­ ÀÌ ÆÄÀÏÀ» ´Ù½Ã ºÒ·¯¿À¸é ±×¸²°ú °°ÀÌ ¹®ÆÐ¸¦ ´Þ ÁýÀÌ ¸¶·ÃµÇ¾î ÀÖÀ½À» ¾Ë ¼ö ÀÖ½À´Ï´Ù.

¿ä±â±îÁö´Â ÀÌÀü¿¡ ¾Ë·Áµå¸° °­Á¿¡ ´ëÇÑ º¹½ÀÀ̾ú½À´Ï´Ù. À̹ø ½Ã°£¿¡´Â ¿©·¯ °¡Áö Á¾·ùÀÇ ¹öư ÄÁÆ®·Ñ·Î ÀÌ·ç¾îÁø ÅÇÀ» ¸¸µé¾îº¼±î ÇÕ´Ï´Ù. À§ÀÇ ½ä··ÇÏ´ø ÅÇÀÌ ÀÌ·¸°Ô ¹Ù²ò´Ï´Ù. §~~

<¿Ï¼º ¿¹>

¼¼ °³ÀÇ ±×·ìÀÌ Ãß°¡µÇ¾ú½À´Ï´Ù. 'Built-in' ±×·ìÀº ¿¢¼¿¿¡¼­ ÀÚüÀûÀ¸·Î Á¦°øÇÏ´Â ¹öưµéÀ» ¸ð¾Æ³õÀº °ÍÀ̰í, 'Menu' ±×·ìÀº ¹öưÀ» Ŭ¸¯ÇÏ¸é ¾Æ·¡¿¡ ÇÏÀ§ ¸Þ´º°¡ ÆîÃÄÁö´Â ¹öưÀÔ´Ï´Ù. ¸¶Áö¸·À¸·Î 'Split' ±×·ìÀº 'Çǹþ Å×À̺í' ÄÁÆ®·Ñ°ú ºñ½ÁÇÑ ÇüÅÂÀÇ ¹öưÀÌ µÇ°Ú½À´Ï´Ù.

¸®º»X ÄÚµå ÀÛ¼ºÇϱâ

1. ¾Õ¿¡¼­ ÀÛ¼ºÇÑ ºó '¸ÅÅ©·Î »ç¿ë ÅëÇÕ ¹®¼­'¸¦ UI Editor¿¡¼­ ºÒ·¯¿Â ´ÙÀ½ XML·Î ¸®º»X Äڵ带 ÀÛ¼ºÇÕ´Ï´Ù.

Àüü XML ÄÚµåÀÇ ³»¿ëÀº ¾Æ·¡¿Í °°½À´Ï´Ù. Äڵ尡 ±æ´Ù°í Àý´ë ±â°¡ Á×À» ÇÊ¿ä´Â ¾ø°í... ±×³É º¹»çÇØ¼­ ºÙ¿© ³ÖÀ¸¼¼¿ä. ÀÌ Äڵ带 º¸°íµµ ¾ÆÁ÷ Á¤½ÅÀ» ³õÁö(?) ¾ÊÀ¸¼Ì´Ù¸é... ¹«¾ù°ú ¹«¾ùÀÌ ´ëĪÀ» ÀÌ·ç°í ÀÖ´ÂÁö ¿¬ÇÊ·Î(ȤÀº ´«À¸·Î) È®ÀÎÇØ º¸¼¼¿ä. ÇöÀç ´Ü°è¿¡¼­´Â ±× Á¤µµ¸¸À¸·Î ÃæºÐÇÕ´Ï´Ù.

<customUI xmlns='http://schemas.microsoft.com/office/2006/01/customui'>
<ribbon>
  <tabs>
    <tab id="MyTab"
      label="Exceller's Tab"
        insertBeforeMso="TabHome">
        <group id="grpBuint-in"
          label="Built-in">
          <box id="boxFontStyle"
            boxStyle="horizontal"
            visible="true">
            <toggleButton idMso="Bold"/>
            <toggleButton idMso="Italic"/>
            <toggleButton idMso="Underline"/>
            <toggleButton idMso="UnderlineDouble"/>
        </box>
        <box id="boxFormatStyle"
          boxStyle="horizontal"
          visible="true">
          <button idMso="PercentStyle"/>
          <button idMso="CommaStyle"/>
          <button idMso="DecimalsIncrease"/>
          <button idMso="DecimalsDecrease"/>
        </box>
      </group>
      <group id="grpFileSaveAs"
        label="Menu">
        <menu id="ChangeFormats"
          label="Save As"
          size="large"
          imageMso="FileSaveAsOtherFormats">
          <menuSeparator id="Separator01"
            title="Save as 2007 formats"/>
          <button idMso="FileSaveAsExcelXlsx"/>
          <button idMso="FileSaveAsExcelXlsxMacro"/>
          <button idMso="FileSaveAsExcelXlsb"/>
          <menuSeparator id="Separator02"
            title="Save as 97-2003 formats"/>
          <button idMso="FileSaveAsExcel97_2003"/>
          <menuSeparator id="Separator03"
            title="Save as other formats"/>
          <button idMso="FileSaveAsOtherFormats"/>
        </menu>
      </group>
      <group id="grpSplitButton"
        label="Split">
        <splitButton id="InsertSheet"
          size="large">
        <button id="btnInsertSheet"
          label="Insert Sheets"
          imageMso="PropertySheet"/>
        <menu id="mnuInsertSheet">
          <button id="Worksheet"
            label="Insert Worksheet"
           imageMso="SheetInsert"
            onAction="InsertSheet_click"/>
          <button id="Chartsheet"
            label="Insert Chart Sheet"
            imageMso="PivotChartType"
            onAction="InsertSheet_click"/>
        </menu>
      </splitButton>
    </group>
  </tab>
</tabs>
</ribbon>
</customUI>

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


¡¡

Äݹé(CallBack) ÇÁ·Î½ÃÀú ¸¸µé±â

1. 'Generate Callbacks' ¾ÆÀÌÄÜÀ» Ŭ¸¯ÇÏ¸é ¸®º»X ÄÚµåÀÇ onAction ¼Ó¼º¿¡ ÀÇÇØ È£ÃâµÇ´Â ¿ÜºÎ ÇÁ·Î½ÃÀúµéÀÌ »ý¼ºµË´Ï´Ù(¹°·Ð ºó²®µ¥±â »ÓÀ̱ä ÇÏÁö¸¸...).

2. ¹üÀ§¸¦ ÁöÁ¤ÇÑ ´ÙÀ½ ¸¶¿ì½º ¿À¸¥ÂÊ ¹öưÀ» Ŭ¸¯Çϰí 'Copy' ¸Þ´º¸¦ ¼±ÅÃÇÕ´Ï´Ù(ȤÀº <Ctrl+C> ۸¦ ´­·¯µµ µË´Ï´Ù).

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

4. InsertSheet_click ÇÁ·Î½ÃÀú¸¦ ÀÛ¼ºÇÕ´Ï´Ù. À̰ÍÀº ¿¢¼¿ÀÇ ¿µ¿ªÀ̰í ÄÚµå ¶ÇÇÑ ±æÁö ¾ÊÀ¸¹Ç·Î Á÷Á¢ ÀÔ·ÂÇØ º¸¼¼¿ä. ¿ì¸®¿¡°Ô ¾ÆÁÖ Ä£¼÷ÇÑ Select~Case ±¸¹®ÀÏ µû¸§ÀÔ´Ï´Ù.

ÀÌÁ¦ ÆÄÀÏÀ» ÀúÀåÇß´Ù°¡ ´Ù½Ã ¿­¾îº¸½Ã¸é ¾ÕÀÇ <¿Ï¼º ¿¹>¿¡¼­ º¸½Å °¢Á¾ ¹öư ÄÁÆ®·ÑµéÀÌ ³ªÅ¸³³´Ï´Ù.

¸®º»XÀÇ ¼¼ºÎÀûÀÎ ÄÚµù ³»¿ë¿¡ ´ëÇØ¼­´Â ³Ê¹« ºÎ´ã°®Áö ¸¶½Ã°í, ÀÛ¼º ¼ø¼­¿Í ÀüüÀûÀÎ È帧°ú ÁøÇà¼ø¼­¸¸ Àß ÀÌÇØÇÏ½Ã¸é µÇ°Ú½À´Ï´Ù.

º»°ÝÀûÀÎ ÈÞ°¡Ã¶ÀÌ ½ÃÀ۵Ǿú½À´Ï´Ù. 'µ¿½ÃÆÐ¼Ç ¹®È­'ÀÇ ¿µÇâÀ¸·Î, À̸¾ ¶§´Â ¾îµð¸¦ °¡µç Èûµé±â ¸¶·ÃÀÔ´Ï´Ù. '¾îµð¼­'°¡ ¾Æ´Ñ '´©±¸¿Í'¿¡ ÃÊÁ¡À» ¸ÂÃ߸é Á¶±ÝÀº ´õ ¿©À¯·Î¿öÁöÁö ¾ÊÀ»±î »ý°¢ÇØ º¾´Ï´Ù.

¸ðµÎµé ÇູÇÑ ÈÞ°¡ º¸³»½Ã±â ¹Ù·¡¿ä~~


Previous

Next

Creative Commons License

¡¡