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

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

ÃÖÃÊ ÀÛ¼ºÀÏ : 2004-12-14
ÃÖÁ¾ ¼öÁ¤ÀÏ : 2004-12-14
°­Á ÀÐÀ½¼ö : 44,513ȸ

ÀÛ¼ºÀÚ : Exceller (±ÇÇö¿í, exceller@amorepacific.com)

°­Á Á¦¸ñ : ·¹ÀÎÁö ¿ÀºêÁ§Æ® - Union, Intersect ¸Þ¼­µå

Áö³­ ½Ã°£¿¡ Àè ´ÏŬ¶ó¿ì½ºÀÇ ¾ê±â¸¦ ¼Ò°³ÇØ µå·È½À´Ï´Ù. ½ºÆæ¼­ Á¸½¼ÀÇ <¼±¹°>À̶ó´Â Ã¥¿¡µµ ÀÌ¿Í ºñ½ÁÇÑ ±¸ÀýÀÌ ³ª¿É´Ï´Ù.
"¸ÚÁø ¹Ì·¡ÀÇ ¸ð½ÀÀº ¾î¶°ÇÑÁö ±×¸²À» ±×·Á¶ó.
Çö½ÇÀûÀÎ °èȹÀ» ¼¼¿ö ±×°ÍÀ» ´Þ¼ºÇÒ ¼ö ÀÖ°Ô Ç϶ó.
°èȹÀ» Áö±Ý ÀÌ ¼ø°£ ÇൿÀ¸·Î ¿Å°Ü¶ó."

Å©¸®½º¸¶½º À̺갡 ¿­Èê ¾ÕÀ¸·Î ´Ù°¡ ¿Ô½À´Ï´Ù. Á» À̸¥ °¨ÀÌ ¾øÁö ¾ÊÁö¸¸, ¹Ì¸® ¸Þ¸® Å©¸®½º¸¶½º!! ÀÔ´Ï´Ù. ^^


VBA ÀÔ¹®°­Á : Áß¿äÇÑ ¿ÀºêÁ§Æ® ¸î °¡Áö


°¡. ¿öÅ©ºÏ ¿ÀºêÁ§Æ®(Workbook Object)

³ª. ¿öÅ©½ÃÆ® ¿ÀºêÁ§Æ®(Worksheet Object)

´Ù. ·¹ÀÎÁö ¿ÀºêÁ§Æ®(Range Object)


·¹ÀÎÁö ¿ÀºêÁ§Æ® ±× ¼¼¹øÂ° ½Ã°£À¸·Î Union ¸Þ¼­µå¿Í Intersect ¸Þ¼­µå¿¡ ´ëÇØ »ìÆìº¸°Ú½À´Ï´Ù.

À̹ø °­Áµµ ExcellerÀÇ Ã¥ <VBA·Î ¿¢¼¿¿¡ ³¯°³´Þ±â>¿¡¼­ ¹ßÃéÇÏ¿© ½Æ½À´Ï´Ù.


Union ¸Þ¼­µå

¼öÇп¡¼­ ÁýÇÕÀ» ¹è¿ï ¶§ ÁýÇÕ¿¡´Â ÇÕÁýÇÕ, ±³ÁýÇÕ, ºÎºÐÁýÇÕ, Â÷ÁýÇÕ, ¿©ÁýÇÕ, °øÁýÇÕ, À¯ÇÑÁýÇÕ, ¹«ÇÑÁýÇÕ µî ¿©·¯ Á¾·ù°¡ ÀÖ´Ù°í µéÀ¸¼ÌÀ» °ÍÀÔ´Ï´Ù(ÂüÀ¸·Î ¸¹±âµµ ÇÏÁö¿ä? ^^). ÀÌ Áß¿¡¼­ Union ¸Þ¼­µå´Â ¼­·Î ¶³¾îÁ® ÀÖ´Â ¿©·¯ ¿µ¿ª(Range ¿ÀºêÁ§Æ®)ÀÇ ÇÕÁýÇÕÀ» ±¸ÇϰíÀÚ ÇÒ ¶§ »ç¿ëÇÕ´Ï´Ù. ´ÙÀ½°ú °°Àº µ¥ÀÌÅͰ¡ ÀÖ´Ù°í ÇÒ °æ¿ì, ÇÕÁýÇÕ¿¡ ÇØ´çÇÏ´Â ¿µ¿ªÀº ¹«¾ùÀϱî¿ä?

±×¸²¿¡¼­ ¼±ÅÃÇÑ ¿µ¿ª, Áï A1:E16 ±×¸®°í G11:J16 ¿µ¿ªÀÌ µÇ°ÚÁö¿ä.

À̰ÍÀ» ¾î¶»°Ô ±¸ÇÏ´À³Ä Çϸé... ¹Ù·Î Union ¸Þ¼­µå¸¦ ÀÌ¿ëÇÏ¸é µÈ´Ù´Â °ÍÀÔ´Ï´Ù.

Sub Union_Method()

    Dim shtSheet As Worksheet
    Dim rngFirst As Range
    Dim rngSecond As Range
    Dim rngUnion As Range

    Set shtSheet = Sheets("Sheet6")
    Set rngFirst = shtSheet.Range("A1").CurrentRegion
    Set rngSecond = shtSheet.Range("G11").CurrentRegion
    Set rngUnion = Application.Union(rngFirst, rngSecond)

    rngUnion.Select
    MsgBox "µÎ ¿µ¿ªÀÇ ÇÕÁýÇÕ : " & Selection.Address(rowabsolute:=False, _
                columnabsolute:=False)

End Sub

¾Æ! »ó´çÈ÷ º¹ÀâÇØ º¸ÀÔ´Ï´Ù. ÇÏÁö¸¸ ¿¢¼¿À̳ª VBA °­Á ½Ã°£¿¡ ¿©·¯ Â÷·Ê ¸»¾¸µå¸° °Íó·³ º¹ÀâÇÑ °Í°ú º¹ÀâÇØ º¸ÀÌ´Â °Í°ú´Â Â÷À̰¡ ÀÖ½À´Ï´Ù. À§ÀÇ ÄÚµå´Â Áö±Ý²¯ ¿ì¸®°¡ VBA ±âÃʰ­Á ½Ã°£¿¡ º¸¾Æ¿Ô´ø °Í¿¡ ºñÇØ ±æÀ̰¡ Á¶±Ý ±æ¾î º¹ÀâÇØ º¸ÀÌ´Â °ÍÀÏ »Ó ½ÇÁ¦·Î º¹ÀâÇÑ °ÍÀº ¾Æ´Õ´Ï´Ù. ½ÇÁ¦·Î º¹ÀâÇÑ °ÍÀÇ Áø¼ö(?)¸¦ º¸¿© µå¸±±î¿ä?

"±×°¡ »ý°¢ÇÏ´Â °ÍÀ» ³ªµµ »ý°¢ÇÑ´Ù°í ±×°¡ »ý°¢Çϸ®¶ó´Â °ÍÀ» ³ª´Â »ý°¢ÇÑ´Ù."John F. Nash Jr.

ÁöÁ¤ÇÑ ¿µ¿ª(A1 ¼¿°ú G11 ¼¿)ÀÇ CurrentRegion °ªÀ» rngFirst¿Í rngSecond º¯¼ö¿¡ ´ã¾Æ µÐ ´ÙÀ½, À̰ÍÀ» Union ¸Þ¼­µå¸¦ ÀÌ¿ëÇÏ¿© ÇÕÄ¡´Â °ÍÀÔ´Ï´Ù.

Ȳ¸ð±º : ±×·¸´Ù¸é... Áú¹®ÀÌ Çϳª Àִµ¥¿ä... À̵ý°Å´Â ¹è¿ö¼­ ¾îµð´Ù ½á ¸Ô³ª¿ä?

ÁÁÀº Áú¹®ÀÔ´Ï´Ù. À̰ÍÀ» Á¶±Ý ÀÀ¿ëÇØ º¸µµ·Ï ÇÏÁö¿ä. A1:A100 ¿µ¿ª Áß¿¡¼­ ¦¼ö Çà µ¥ÀÌÅ͸¸À» ¼±ÅÃÇÑ ´ÙÀ½ ³ì»öÀ¸·Î Ä¥ÇÏ´Â ¿¹Á¦¸¦ ¸¸µé¾î º¸µµ·Ï ÇÏÁö¿ä.

´ë»ó ¿µ¿ªÀÌ A1:A100 ¿µ¿ª Á¤µµ¹Û¿¡ µÇÁö ¾ÊÀ¸´Ï ´ÙÇàÀÌÁö A1:A1000 ȤÀº A1:A10000 ¿µ¿ªÂë µÈ´Ù°í »ý°¢ÇØ º¸¼¼¿ä. Ctrl ۸¦ ´©¸¥ ä ¸¶¿ì½º¸¦ ´­·¯´ë·Á¸é... ¼Õ°¡¶ô¿¡ Áã°¡ ³³´Ï´Ù. ÇÏÁö¸¸ ¿ì¸®´Â ´ÙÀ½°ú °°Àº °£´ÜÇÑ ÄÚµå ¸î ÁÙ·Î ÇØ°áÇÒ ¼ö ÀÖ½À´Ï´Ù(ÀÌ·¡µµ VBA ¾È ¹è¿î´Ù°í ¹öÆÃ±â´Â ºÐÀÌ °è½Ç·¡³ª...).

Sub Union_Method_2()

    Dim i As Integer
    Dim rngUnion As Range
    Set rngUnion = Cells(2, 1)

    For i = 2 To 100 Step 2
        Set rngUnion = Union(rngUnion, Cells(i, 1))
    Next i
    rngUnion.Select
    Selection.Interior.ColorIndex = 10

    MsgBox "¦¼ö Çà ¼¿¿¡¸¸ ³ì»öÀ» Ä¥ÇÏ¿´½À´Ï´Ù", , "www.iExceller.com"

End Sub

Ȳ¸ð±º : ¿¡ÀÌ~~ ±×°Íµµ ±×´ÙÁö ½Ç¿ëÀûÀÌÁö ¸øÇÑ °Í °°Àºµ¥¿ä...

Exceller : (Á¤»öÀ» ÇÏ°í °¡±îÀÌ ´Ù°¡¼­¸ç) °ú¿¬ ±×·²±î¿ä?

Ȳ¸ð±º : (¶æ¹ÛÀÇ °­ÇÑ ¹ÝÀÀ¿¡ ¼ø°£ ¿òÂñÇÏ´Ù ´Ù½Ã µûÁöµí) ±×°Ô ¾Æ´Ï¶ó... ½Ç¹«¿¡¼­ ±×·¸°Ô µö´Ù »öÄ¥¸¸ ÇÏ´Â °æ¿ì°¡ ¾îµð ÀÖ¾î¿ä!

Ȳ¸ð±ºÃ³·³ ¾ÕÀÇ ¿¹Á¦µµ ÀüÇô ½Ç¿ë¼ºÀÌ ¾ø´Ù°í »ý°¢ÇÏ´Â ºÐµéÀ» À§ÇØ ÇÑ °¡Áö ¿¹¸¦ ´õ º¸¿©µå¸®µµ·Ï ÇÏÁö¿ä. ´ÙÀ½°ú °°Àº ¼ºÀûÇ¥°¡ ÀÖ´Ù°í ÇÒ ¶§ µî±ÞÀÌ 'ÇÕ°Ý'ÀÎ »ç¶÷¸¸ ³ì»öÀ¸·Î Ç¥½ÃÇÏ´Â ¿¹Á¦ÀÔ´Ï´Ù.

Sub Union_Method_3()

    Dim rngCell As Range
    Dim rngAverage As Range
    Dim rngSource As Range
    Dim rngUnion As Range
   

    Set rngAverage = Range("Æò±Õ")
    Set rngSource = Range("Source")

    With rngSource
        .Interior.ColorIndex = xlNone
        .Font.ColorIndex = 1
    End With
    MsgBox "±âÁ¸ ¼­½ÄÀ» Áö¿ü½À´Ï´Ù. ÀÌÁ¦ ÇÕ°ÝÀڵ鿡 ´ëÇØ Ç¥½Ã¸¦ ÇÕ´Ï´Ù."

    For Each rngCell In rngAverage
        With rngCell
            If .Offset(0, 1) = "ÇÕ°Ý" Then
                If rngUnion Is Nothing Then
                    Set rngUnion = Range(.Offset(0, -4), .Offset(0, 1))
                Else
                    Set rngUnion = Union(rngUnion, Range(.Offset(0, -4), .Offset(0, 1)))
                End If
            End If
        End With
    Next rngCell
    rngUnion.Select

    With Selection
        .Interior.ColorIndex = 10
        .Font.ColorIndex = 2
    End With

End Sub

¡¡


Intersect ¸Þ¼­µå

Intersect ¸Þ¼­µå¿Í´Â ¹Ý´ë·Î Intersect ¸Þ¼­µå¸¦ »ç¿ëÇÏ¸é µÎ °³ ÀÌ»óÀÇ ¿µ¿ª Áß¿¡¼­ ¼­·Î °ãÃÄÁöÁö ¾Ê´Â ¿µ¿ªÀÇ ÁÖ¼Ò¸¦ ¾Ë¾Æ³¾ ¼ö ÀÖ½À´Ï´Ù. ¼öÇÐÀ¸·Î Ä¡¸é ±³ÁýÇÕ¿¡ ÇØ´çÇÏ´Â ¿µ¿ªÀ» ±¸ÇØÁÖ´Â °ÍÀÔ´Ï´Ù.

Sub Intersect_Method()

    Dim rngFirst As Range
    Dim rngSecond As Range
    Dim rngIntersect As Range
    Dim i As Integer
   

    Set rngFirst = ActiveSheet.Range("A1:D8")
    Set rngSecond = ActiveSheet.Range("C5:G12")

    rngFirst.Select
    MsgBox "ù¹øÂ° ¿µ¿ªÀÔ´Ï´Ù", , "www.iExceller.com"

    rngSecond.Select
    MsgBox "µÎ¹øÂ° ¿µ¿ªÀÔ´Ï´Ù. ÀÌÁ¦ ±³Â÷¿µ¿ªÀ» Ç¥½ÃÇÕ´Ï´Ù.", , "www.iExceller.com"

    Set rngIntersect = Application.Intersect(rngFirst, rngSecond)
    rngIntersect.Select

    For i = 1 To 1000
        rngIntersect.Interior.ColorIndex = Rnd * 56
    Next i

End Sub
¡¡

¾î´À °÷¿¡ ¾î¶»°Ô Ȱ¿ëÇÒ °ÍÀΰ¡ ÇÏ´Â °ÍÀº °á±¹Àº ÀÀ¿ë·ÂÀÇ ¹®Á¦À̸ç, ÀÀ¿ë·ÂÀº Æò¼Ò¿¡ (ÀÚ½ÅÀÇ ¹®Á¦¸¦) ¾ó¸¶³ª ¹®Á¦ÀǽÄÀ» °®°í ±íÀÌ ÀÖ°Ô °í¹ÎÇØ º¸¾Ò´À³Ä¿¡ µû¶ó °áÁ¤µË´Ï´Ù. ±×·¡¼­ VBA ÇÁ·Î±×·¡¹ÖÀÇ °æ¿ì, ½ÅÀÔ»ç¿øÀ̳ª ¾÷¹«¿¡ Àͼ÷ÇÏÁö ¾ÊÀº ºÐµéº¸´Ù ÇØ´ç ¾÷¹«¿¡ ³ë·ÃÇÑ ºÐµéÀÌ ´ëü·Î »¡¸® ½ÀµæÇϽôõ±º¿ä. ¾î¶»°Ô ÀÀ¿ëÇÒ °ÍÀÎÁö¿¡ ´ëÇØ ¸¹ÀÌ °í¹ÎÇØ º¸¼¼¿ä.


Previous

Next

Creative Commons License