[[20220913163504]]@wVBA‚Å2‚‚̃uƒbƒNŠÔ‚ÅAƒL[‚ð‚à‚Æ‚Ƀf[ƒ^‚ðŽæ“¾xi‚Ü‚«j@ƒy[ƒW‚ÌÅŒã‚É”ò‚Ô

[ ‰‚߂Ă̕û‚Ö | ˆê——(ÅVXV‡) | ‘S•¶ŒŸõ | ‰ß‹ŽƒƒO ]

@

wVBA‚Å2‚‚̃uƒbƒNŠÔ‚ÅAƒL[‚ð‚à‚Æ‚Ƀf[ƒ^‚ðŽæ“¾‚·‚éƒR[ƒh‚ÌC³xi‚Ü‚«j

2‚‚̃uƒbƒNŠÔ‚ÅAƒL[‚ð‚à‚Æ‚Ƀf[ƒ^‚ðŽæ“¾‚·‚éƒR[ƒh‚ɒljÁC³‚ð‚µ‚½‚¢‚Å‚·‚ªA
‰SŽÒ‚Ì‚½‚ßs‚«‹l‚Á‚Ä‚¢‚Ü‚·B
‚ǂȂ½‚©ƒR[ƒh‚ð‹³‚¦‚Ä‚­‚¾‚³‚¢B

ŸŒ»Ý‚̈—“à—e
‘S‘Ì󋵃uƒbƒN‚Ì–¾×ƒV[ƒg‚ÌF—ñi–¼‘Oj‚ðƒ`ƒFƒbƒNƒuƒbƒN‚ÌŠ‘®•”ˆê——ƒV[ƒg‚Ì2s–ÚˆÈ~‚©‚ç’T‚µ‚ÄŠY“–‚ª‚ ‚Á‚½ê‡‚ÉAƒ`ƒFƒbƒNƒuƒbƒN‚̈ê”Ô¶‘¤‚̃V[ƒg‚ÉA1ƒZƒ‹‚©‚ç“]‹L‚·‚éB

Ÿ’ljÁC³‚µ‚½‚¢“à—e
1.‘S‘Ì󋵃uƒbƒN‚Ì–¾×ƒV[ƒg‚ÌF—ñi–¼‘Oj‚ðƒ`ƒFƒbƒNƒuƒbƒN‚ÌŠ‘®•”ˆê——ƒV[ƒg‚Ì2s–ÚˆÈ~‚©‚ç’T‚µ‚ÄŠY“–‚ª‚È‚©‚Á‚½ê‡‚ÍAƒ`ƒFƒbƒNƒuƒbƒN‚̈ê”Ô¶‘¤‚̃V[ƒg‚ÌI2ƒZƒ‹‚©‚çAŠY“–ŽÒ‚µ‚È‚©‚Á‚½•û‚ÌŽ–¼‚ð“]‹L‚µ‚½‚¢
2.ŠY“–ŽÒ‚ª‘½‚¢ê‡c‚É’·‚­‚È‚Á‚Ä‚µ‚Ü‚¤‚½‚ßA•”‚²‚Æ‚É1—ñ‚ɂ‚«4l‚¸‚•\‹L‚É‚È‚é‚æ‚¤‚É‚µ‚½‚¢

yŒŸõŒ³z
‘S‘Ì󋵃uƒbƒN‚Ì–¾×ƒV[ƒg
iA`AH—ñ‚܂Ńf[ƒ^‚ª‚ ‚èAE—ñi]‹Æˆõ”Ô†j•F—ñi–¼‘Oj‚ªd•¡‚µ‚Ä‚¢‚Ü‚·j

¡ƒV[ƒg‚Ìó‘Ô
A`D—ñ c E—ñ @@F—ñ c G`AH—ñ
@@@@@11111 @“c’†‘¾˜Y
@@@@@11111 @“c’†‘¾˜Y
@@@@@22222 @²“¡ŽŸ˜Y
@@@@@33333 @ŽR“cŽO˜Y
@@@@@44444 @‚‹´Žl˜Y
@@@@@55555 @‹g“cŒÜ˜Y
@@@@@66666 @²X–ؘZ˜Y
@@@@@66666 @²X–ؘZ˜Y
@@@@@77777 @“n糎µ˜Y
@@@@@@@@@@E
@@@@@@@@@@E

yŒŸõæz
ƒ`ƒFƒbƒNƒuƒbƒN‚ÌŠ‘®•”ˆê——ƒV[ƒg
iA`G—ñ‚܂Ńf[ƒ^‚ª‚ ‚èA1s–Ú‚Í•”–¼‚Å2s–ÚˆÈ~‚Í]‹Æˆõ‚Ì–¼‘O‚Å‚·B
ƒf[ƒ^‚Ìd•¡‚͂Ȃ¢‚Å‚·j

¡ƒV[ƒg‚Ìó‘Ô
A—ñ B—ñ c F—ñ
ƒVƒXƒeƒ€ˆê•” c ƒVƒXƒeƒ€Žµ•”
“c’†‘¾˜Y @@@“n糎µ˜Y@@
²“¡ŽŸ˜Y
ŽR“cŽO˜Y
‚‹´Žl˜Y
‹g“cŒÜ˜Y@@@@@@E
²X–ؘZ˜Y@@@@@E

¡ƒV[ƒg‚P‚É“]‹LŠó–]‚̃Cƒ[ƒW
A—ñ@@@@@@B—ñ@@@@C—ñ@@c@@I—ñ
ƒVƒXƒeƒ€ˆê•”@“c’†‘¾˜Y@‹g“cŒÜ˜Y@@@ˆÉ“¡”ª˜Y
@@@@@@ @²“¡ŽŸ˜Y@²X–ؘZ˜Y@@’†‘º‹ã˜Y
@@@@@@ @ŽR“cŽO˜Y
@@@@@@ @‚‹´Žl˜Y
ƒVƒXƒeƒ€Žµ•”@“n糎µ˜Y

Sub test1()
Dim mySheet As Worksheet
Dim dicBU As Object, dicNM As Object
Dim keyBU As Variant, keyNM As Variant
Dim myR As Long, myC As Long

Set dicBU = CreateObject("Scripting.Dictionary")

Set mySheet = Workbooks("·•ªƒ`ƒFƒbƒNƒ}ƒNƒ_ver2.6.xlsm").Worksheets("Š‘®•”ˆê——")
With mySheet

    For myC = 1 To .Cells(1, .Columns.Count).End(xlToLeft).Column
        Set dicNM = CreateObject("Scripting.Dictionary")
        For myR = 2 To .Cells(.Rows.Count, myC).End(xlUp).Row
            dicNM(.Cells(myR, myC).Value) = Empty
        Next myR
        Set dicBU(.Cells(1, myC).Value) = dicNM
    Next myC
End With

Set mySheet = Workbooks("ŽÐ“àH”“Š“üó‹µ_‘S‘Ì .xlsx").Worksheets("–¾×")
With mySheet

    For Each keyBU In dicBU.Keys
        Set dicNM = dicBU(keyBU)
        For Each keyNM In dicNM.Keys
            Debug.Print keyNM
            If WorksheetFunction.CountIf(.Columns(6), keyNM) = 0 Then
                dicNM.Remove keyNM
            End If
        Next keyNM
        If dicNM.Count = 0 Then
            dicBU.Remove keyBU
        Else
            Set dicBU(keyBU) = dicNM
        End If
    Next keyBU
End With

With Workbooks("·•ªƒ`ƒFƒbƒNƒ}ƒNƒ_ver2.6.xlsm")

    Set mySheet = Sheets(1)
End With
With mySheet
    myR = 1
    For Each keyBU In dicBU.Keys
        Set dicNM = dicBU(keyBU)
        myC = dicNM.Count
        keyNM = dicNM.Keys
        .Cells(myR, 1).Resize(myC).Value = keyBU
        .Cells(myR, 2).Resize(myC).Value = WorksheetFunction.Transpose(keyNM)
        myR = myR + myC
    Next keyBU
End With

ƒ Žg—p ExcelFOffice365AŽg—p OSFWindows10 „


ŠY“–ŽÒ‚ÍA28–¼ˆÈ“à‚Æ‚¢‚¤‚±‚Ƃłµ‚傤‚©H

iƒ}ƒij 2022/09/13(‰Î) 18:37


“¯©“¯–¼‚Í‚¢‚È‚¢‚Æ‚¢‚¤‚±‚Ƃł悢‚Å‚·‚©B

iƒ}ƒij 2022/09/13(‰Î) 18:56


 Sub test1()
    Dim mySheet As Worksheet    'ì‹Æ—p•Ï”iì‹ÆƒV[ƒg‚ðŽw’èj
    Dim dicBU As Object         '•”—pDictionary
    Dim dicNM As Object         'ì‹Æ—p•Ï”i•”“à‚̃ƒ“ƒo[—pDictionaryj
    Dim keyBU As Variant        'ì‹Æ—p•Ï”i•”j
    Dim keyNM As Variant        'ì‹Æ—p•Ï”iƒƒ“ƒo[j
    Dim myR As Long             'ƒJƒEƒ“ƒ^•Ï”isj
    Dim myC As Long             'ƒJƒEƒ“ƒ^•Ï”i—ñj

    Set dicBU = CreateObject("Scripting.Dictionary")                                        '•”—pDictionary‚ð錾
    Set mySheet = Workbooks("·•ªƒ`ƒFƒbƒNƒ}ƒNƒ_ver2.6.xlsm").Worksheets("Š‘®•”ˆê——")    'ì‹Æƒ[ƒNƒV[ƒg‚P‚ðÝ’è

    With mySheet
        For myC = 1 To .Cells(1, .Columns.Count).End(xlToLeft).Column                       'ƒV[ƒg“à1s–ÚŠe—ñ‚ð„‰ñ
            Set dicNM = CreateObject("Scripting.Dictionary")                                'ƒƒ“ƒo[ãDictionary‚ð‰Šú‰»
            For myR = 2 To .Cells(.Rows.Count, myC).End(xlUp).Row                           '—ñ‚²‚ƂɊes‚ð„‰ñ
                dicNM(.Cells(myR, myC).Value) = Empty                                       'ƒƒ“ƒo[—pDictionary‚ÌKey‚Ƀƒ“ƒo[–¼‚ð“ü‚ê‚éid•¡”ð‚¯j
            Next myR
            Set dicBU(.Cells(1, myC).Value) = dicNM                                         '•”—pDictionary‚ÌItem‚Ƀƒ“ƒo[Dictionary‚ð“ü‚ê‚é
        Next myC
    End With

    Set mySheet = Workbooks("ŽÐ“àH”“Š“üó‹µ_‘S‘Ì .xlsx").Worksheets("–¾×")               'ì‹Æƒ[ƒNƒV[ƒg‚Q‚ðÝ’è

    With mySheet
        For Each keyBU In dicBU.Keys                                                        '•”—pDictionary‚ð„‰ñ
            Set dicNM = dicBU(keyBU)                                                        'ì‹Æ—p•Ï”‚ÉItem‚̃ƒ“ƒo[Dictionary‚ð“ü‚ê‚é
            For Each keyNM In dicNM.Keys                                                    '•”“àƒƒ“ƒo[Dictionary‚ð„‰ñ
                Debug.Print keyNM
                If WorksheetFunction.CountIf(.Columns(6), keyNM) = 0 Then                   'ì‹Æƒ[ƒNƒV[ƒg‚Q‚ÌF—ñ‚Ƀƒ“ƒo[–¼‚ª‚È‚¯‚ê‚Î
                    dicNM.Remove keyNM                                                      'ƒƒ“ƒo[Dictionary‚©‚ç–•Á
                End If
            Next keyNM
            If dicNM.Count = 0 Then                                                         'ƒƒ“ƒo[Dictionary‚̃f[ƒ^”‚ª0‚Ìê‡
                dicBU.Remove keyBU                                                          '•”—pDictionary‚©‚ç•”‚²‚Æ–•Á
            Else                                                                            'ƒf[ƒ^‚ª1ˆÈã‚ ‚éꇂÍ
                Set dicBU(keyBU) = dicNM                                                    '•”—pDictionary‚Ƀƒ“ƒo[Dictionary‚ðĂѓü‚ê‚é
            End If
        Next keyBU
    End With

'ªªªªªªªªªªªªªªªªªªªª@‚±‚±‚܂Ńf[ƒ^ŽûW@ªªªªªªªªªªªªªªªªªªªª

'««««««««««««««««««««@‚±‚±‚©‚ç—v‰üC•”•ª@««««««««««««««««««««

    With Workbooks("·•ªƒ`ƒFƒbƒNƒ}ƒNƒ_ver2.6.xlsm")                                        '«u.v‚ª”²‚¯‚Ä‚¢‚é‚̂ũ‚̃uƒbƒN‚ł͂Ȃ­Activesheet‚È‚±‚ƂɒˆÓ
        Set mySheet = Sheets(1)                                                             'ì‹Æƒ[ƒNƒV[ƒg‚R‚ðÝ’è
    End With

    With mySheet
        myR = 1                                                                             'sƒJƒEƒ“ƒ^‚ð1‚ÉÝ’è
        For Each keyBU In dicBU.Keys                                                        '•”—pDictionary‚ÌKeyi•”ƒŠƒXƒgj‚ð„‰ñ
            Set dicNM = dicBU(keyBU)                                                        'ì‹Æ—p•Ï”‚ÉItem‚̃ƒ“ƒo[Dictionary‚ð“ü‚ê‚é
            myC = dicNM.Count                                                               '—ñƒJƒEƒ“ƒ^‚Ƀƒ“ƒo[Dictionary‚Ì—v‘f”‚ð“ü‚ê‚é
            keyNM = dicNM.Keys                                                              'ì‹Æ—p•Ï”‚Ƀƒ“ƒo[Dictionary‚ÌKeyiƒƒ“ƒo[ƒŠƒXƒgj‚ð“ü‚ê‚é
            .Cells(myR, 1).Resize(myC).Value = keyBU                                        '1—ñ–Ú‚É•”–¼‚ð“ü—Í
            .Cells(myR, 2).Resize(myC).Value = WorksheetFunction.Transpose(keyNM)           '2—ñ–ڂɃƒ“ƒo[ƒŠƒXƒg‚ð“ü—Í
            myR = myR + myC                                                                 '—ñƒJƒEƒ“ƒ^•ªs‚ð‰º‚°‚é
        Next keyBU
    End With

End Sub

—ûK‰Û‘è‚̂‚à‚è‚ł܂¸®—‚¾‚¯‚µ‚Ă݂܂µ‚½B
Œã”¼•”•ª‚¾‚¯’¼‚¹‚Αåä•vH‚©‚Ç‚¤‚©l‚¦‚Ă݂½‚¢‚ÆŽv‚¢‚Ü‚·B
i‰ºŽè‚̉¡D‚«j 2022/09/13(‰Î) 19:17


ƒ}ƒi—l
ŠY“–ŽÒ‚Í–ˆ‰ñƒ‰ƒ“ƒ_ƒ€‚Å‚·B
‘S‘Ì‚Ìl”‚Í3000l‚Ù‚Ç‚ÅAŠY“–ŽÒ‚Í–ˆ‰ñ100–¼‘OŒã‚ɂȂè‚Ü‚·B
‚Ü‚½A“¯©“¯–¼‚ÍŒ»Žž“_‚ł͂¢‚È‚¢‚Å‚·B
i‚Ü‚«j 2022/09/13(‰Î) 19:21

Še•”‚ÅAÅ‘å28–¼•ª‚Ì“]‹L‚µ‚©‚Å‚«‚È‚¢‚̂łÍA‚Æ‚¢‚¤Ž¿–â‚Å‚·B

iƒ}ƒij 2022/09/13(‰Î) 19:38


‰¡‚©‚ç‚Å‚·‚ªAŽ„‚àŠm”FB

¡‚P
‘S‘Ì󋵃uƒbƒN‚Ì–¾×ƒV[ƒg‚Ì•À‚ч‚Íd—v‚Å‚·‚©H

¡‚Q
•”‚²‚Æ‚É1—ñ‚ɂ‚«4l‚¸‚‚Ƃ̂±‚Ƃł·‚ªA4l–¢–ž‚Ì•”‚Ìꇂłà4s‚Æ‚µ‚Ă悢‚Å‚·‚©H
‚Ü‚½A0l‚Ì•”‚Ío—Í‚ðÈ—ª‚µ‚Ă悢‚Å‚·‚©H

i‚à‚±‚È‚Qj 2022/09/13(‰Î) 19:42


B`H—ñ‚É4l‚¸‚‚¾‚Æ4~7=Å‘å28l“]‹L‰Â”\iI—ñ‚©‚çŠY“–‚µ‚È‚©‚Á‚½•û‚Ì–¼‘O‚ð“]‹L‚·‚é—“‚ɂȂéj
‘SˆõŠY“–‚µ‚È‚¢ê‡B`H—ñ‚ð‹ó—“‚É‚µ‚ÄI—ñ‚©‚ç“]‹L

‚±‚ñ‚ÈŽd—l‚Å‚æ‚낵‚¢‚Å‚·‚©

i‰ºŽè‚̉¡D‚«j 2022/09/13(‰Î) 19:55


 Sub test()
    Dim ws’Šo As Worksheet
    Dim wsˆê—— As Worksheet
    Dim ws–¾× As Worksheet
    Dim myList, j As Long, k As Long
    Dim dic1 As Object, dic2 As Object, key
    Dim bu As String, nm As String
    Dim n As Long
    Dim r As Long, c As Long

    Set ws’Šo = Workbooks("·•ªƒ`ƒFƒbƒNƒ}ƒNƒ_ver2.6.xlsm").Worksheets(1)
    Set wsˆê—— = Workbooks("·•ªƒ`ƒFƒbƒNƒ}ƒNƒ_ver2.6.xlsm").Worksheets("Š‘®•”ˆê——")
    Set ws–¾× = Workbooks("ŽÐ“àH”“Š“üó‹µ_‘S‘Ì .xlsx").Worksheets("–¾×")

    ws’Šo.UsedRange.ClearContents
    myList = wsˆê——.Cells(1).CurrentRegion.Value

    Set dic1 = CreateObject("Scripting.Dictionary")
    Set dic2 = CreateObject("Scripting.Dictionary")

    For k = 1 To UBound(myList, 2)
        bu = myList(1, k)
        Set dic1(bu) = CreateObject("system.collections.arraylist")
        Set dic2(bu) = CreateObject("system.collections.arraylist")

        For j = 2 To UBound(myList, 1)
            nm = myList(j, k)
            If nm <> "" Then
                If WorksheetFunction.CountIf(ws–¾×.Columns(6), nm) Then
                    dic1(bu).Add nm
                Else
                    dic2(bu).Add nm
                End If
            End If
        Next
    Next

    r = 1
    For Each key In dic1.Keys
        c = 1
        ws’Šo.Cells(r, c).Value = key
        Do While dic1(key).Count > 0
            c = c + 1
            n = Application.Min(dic1(key).Count, 4)
            ws’Šo.Cells(r, c).Resize(n).Value _
                = Application.Transpose(dic1(key).getrange(0, n).toarray)
            dic1(key).removerange 0, n
        Loop
        c = 8
        Do While dic2(key).Count > 0
            c = c + 1
            n = Application.Min(dic2(key).Count, 4)
            ws’Šo.Cells(r, c).Resize(n).Value _
                = Application.Transpose(dic2(key).getrange(0, n).toarray)
            dic2(key).removerange 0, n
        Loop
        r = r + 4
    Next

 End Sub

iƒ}ƒij 2022/09/13(‰Î) 20:46


ʼn‚ÍAC³‚ðŽŽ‚Ý‚Ü‚µ‚½‚ªA“r’†‚Å–Ê“|‚ɂȂèˆê‚©‚ç‘‚«’¼‚µB
C³‚ÍA‘¼‚̉ñ“šŽÒ‚É‚¨”C‚¹‚µ‚Ü‚·B

iƒ}ƒij 2022/09/13(‰Î) 21:15


 Sub test1()
    Dim mySheet As Worksheet    'ì‹Æ—p•Ï”iì‹ÆƒV[ƒg‚ðŽw’èj
    Dim dicBU As Object         '•”—pDictionary
    Dim dicNM As Object         'ì‹Æ—p•Ï”i•”“à‚̃ƒ“ƒo[—pDictionaryj
    Dim dicBU2 As Object
    Dim dicNM2 As Object
    Dim keyBU As Variant        'ì‹Æ—p•Ï”i•”j
    Dim keyNM As Variant        'ì‹Æ—p•Ï”iƒƒ“ƒo[j
    Dim myR As Long             'ƒJƒEƒ“ƒ^•Ï”isj
    Dim myC As Long             'ƒJƒEƒ“ƒ^•Ï”i—ñj

 '1.ì‹ÆƒV[ƒg‚P‚©‚ç•”‚ƃƒ“ƒo[‚̈ꗗDictionary‚ð쬂·‚é

    Set dicBU = CreateObject("Scripting.Dictionary")                                        '•”—pDictionary‚ð錾
    Set mySheet = Workbooks("·•ªƒ`ƒFƒbƒNƒ}ƒNƒ_ver2.6.xlsm").Worksheets("Š‘®•”ˆê——")    'ì‹Æƒ[ƒNƒV[ƒg‚P‚ðÝ’è
    With mySheet
        For myC = 1 To .Cells(1, .Columns.Count).End(xlToLeft).Column                       'ƒV[ƒg“à1s–ÚŠe—ñ‚ð„‰ñ
            Set dicNM = CreateObject("Scripting.Dictionary")                                'ƒƒ“ƒo[ãDictionary‚ð‰Šú‰»
            For myR = 2 To .Cells(.Rows.Count, myC).End(xlUp).Row                           '—ñ‚²‚ƂɊes‚ð„‰ñ
                dicNM(.Cells(myR, myC).Value) = Empty                                       'ƒƒ“ƒo[—pDictionary‚ÌKey‚Ƀƒ“ƒo[–¼‚ð“ü‚ê‚éid•¡”ð‚¯j
            Next myR
            Set dicBU(.Cells(1, myC).Value) = dicNM                                         '•”—pDictionary‚ÌItem‚Ƀƒ“ƒo[Dictionary‚ð“ü‚ê‚é
        Next myC
    End With

 '2.ì‹ÆƒV[ƒg‚Q‚©‚ç•”‚ƃƒ“ƒo[‚̈ꗗDictionary‚ðŠY“–ŽÒ‚Æ”ñŠY“–ŽÒ‚Ì2‚‚ɕª‚¯‚é

    Set dicBU2 = CreateObject("Scripting.Dictionary")                                       '”ñŠY“–ŽÒ—p‚Ì•”—pDictionary‚ð錾
    Set mySheet = Workbooks("ŽÐ“àH”“Š“üó‹µ_‘S‘Ì .xlsx").Worksheets("–¾×")               'ì‹Æƒ[ƒNƒV[ƒg‚Q‚ðÝ’è
    With mySheet
        For Each keyBU In dicBU.keys                                                        '•”—pDictionary‚ð„‰ñ
            Set dicNM = dicBU(keyBU)                                                        'ì‹Æ—p•Ï”‚ÉItem‚̃ƒ“ƒo[Dictionary‚ð“ü‚ê‚é
            Set dicNM2 = dicNM                                                              '”ñŠY“–ŽÒ—p‚̃ƒ“ƒo[Dictionary‚ð•¡»
            For Each keyNM In dicNM.keys                                                    '•”“àƒƒ“ƒo[Dictionary‚ð„‰ñ
                Debug.Print keyNM
                If WorksheetFunction.CountIf(.Columns(6), keyNM) = 0 Then                   'ì‹Æƒ[ƒNƒV[ƒg‚Q‚ÌF—ñ‚Ƀƒ“ƒo[–¼‚ª‚È‚¯‚ê‚Î
                    dicNM.Remove keyNM                                                      'ƒƒ“ƒo[Dictionary‚©‚ç–•Á
                End If
            Next keyNM

            If dicNM.Count > 0 Then                                                         'ŠY“–ƒƒ“ƒo[Dictionary‚ÌƒŠƒXƒg‚ª‚ ‚éê‡
                For Each keyNM In dicNM.keys                                                'ŠY“–ƒƒ“ƒo[Dictionary‚É‚ ‚郃“ƒo[‚ð
                    dicNM2.Remove keyNM                                                     '”ñŠY“–ŽÒ—p‚̃ƒ“ƒo[Dictionary‚©‚ç–•Á
                Next keyNM
            End If

            Set dicBU(keyBU) = dicNM                                                        '•”—pDictionary‚ÉŠY“–ƒƒ“ƒo[Dictionary‚ð“ü‚ê‚é
            Set dicBU2(keyBU) = dicNM2                                                      '•¡»Dictionary‚É”ñŠY“–ƒƒ“ƒo[Dictionary‚ð“ü‚ê‚é
        Next keyBU
    End With

 '3.ì‹ÆƒV[ƒg‚R‚ÉŠY“–ŽÒiB`H—ñjA”ñŠY“–ŽÒiI`O—ñj‚̃f[ƒ^‚ð“\‚è•t‚¯‚é

    With Workbooks("·•ªƒ`ƒFƒbƒNƒ}ƒNƒ_ver2.6.xlsm")                                        '«u.v‚ª”²‚¯‚Ä‚¢‚é‚̂ũ‚̃uƒbƒN‚ł͂Ȃ­Activesheet‚È‚±‚ƂɒˆÓ
        Set mySheet = Sheets(1)                                                             'ì‹Æƒ[ƒNƒV[ƒg‚R‚ðÝ’è
    End With
    With mySheet
        myR = 1                                                                             'sƒJƒEƒ“ƒ^‚ð1‚ÉÝ’è
        For Each keyBU In dicBU.keys                                                        '•”—pDictionary‚ÌKeyi•”ƒŠƒXƒgj‚ð„‰ñ
            .Cells(myR, 1).Value = keyBU                                                    'A—ñ‚É•”–¼‚ð“ü—Í
            .Cells(myR, 2).Resize(4, 7).Value = SampleFunction(dicBU(keyBU))                'B`H—ñ‚ÉŠY“–ƒƒ“ƒo[ƒŠƒXƒg‚ð“ü—Í
            .Cells(myR, 9).Resize(4, 7).Value = SampleFunction(dicBU2(keyBU))               'I`O—ñ‚É”ñŠY“–ƒƒ“ƒo[ƒŠƒXƒg‚ð“ü—Í
            myR = myR + 4                                                                   'sƒJƒEƒ“ƒ^‚ð4‚Âã‚°‚é
        Next keyBU
    End With
End Sub

4~7‚ÌƒŠƒXƒg‚ð‚‚­‚éSampleFunction‚͂܂½¡“x‚É‚µ‚Ü‚·B
i‰ºŽè‚̉¡D‚«j 2022/09/13(‰Î) 21:30


ƒ}ƒi—lA‰ºŽè‚̉¡D‚«—l
‹Â‚ç‚ê‚Ä‚¢‚邱‚Ƃ̈Ӗ¡‚ª‚â‚Á‚Æ•ª‚©‚è‚Ü‚µ‚½B‚·‚݂܂¹‚ñB
ŠY“––³‚µ‚Ì•û‚Ì‚¨–¼‘O‚ª•ª‚©‚ê‚ÎI2ƒZƒ‹`‚łȂ­‚Ä‚à“]‹L‚·‚éꊂɊó–]‚Í‚²‚´‚¢‚Ü‚¹‚ñB

‚à‚±‚È‚Q—l
¡‚P‘S‘Ì󋵃uƒbƒN‚Ì–¾×ƒV[ƒg‚Ì•À‚ч‚Íd—v‚ł͂Ȃ¢‚Å‚·B
¡4l–¢–ž‚Ì•”‚ÌꇂÌs‚ðŠY“–ŽÒ”‚É‚·‚邱‚Ƃ͂ł«‚Ü‚·‚©B
‚Ü‚½A0l‚Ì•”‚Ío—Í‚ðÈ—ª‚µ‚Ä‘åä•v‚Å‚·B

‚¢‚ë‚¢‚ë’•¶‚ð•t‚¯‚Ä‚µ‚Ü‚¢A‹°k‚Å‚·B
i‚Ü‚«j 2022/09/14(…) 10:35


 Sub test1()
    Const GROUP_ROW As Long = 4 'o—͗̈æ‚Ì’PˆÊs”

    Dim mySheet As Worksheet    'ì‹Æ—p•Ï”iì‹ÆƒV[ƒg‚ðŽw’èj
    Dim dicBU As Object         'ì‹Æ—p•Ï”i•”—pDictionaryj
    Dim dicNM As Object         'ì‹Æ—p•Ï”i•”“à‚̃ƒ“ƒo[—pDictionaryj
    Dim dicBU2 As Object        'ì‹Æ—p•Ï”i”ñŠY“–ŽÒ•”—pDictionaryj
    Dim dicNM2 As Object        'ì‹Æ—p•Ï”i”ñŠY“–ŽÒƒƒ“ƒo[—pDictionaryj
    Dim keyBU As Variant        'ì‹Æ—p•Ï”i•”j
    Dim keyNM As Variant        'ì‹Æ—p•Ï”iƒƒ“ƒo[j
    Dim maxCnt As Long          '•”‚²‚Æ‚Ìő僃“ƒo[”‚ð”cˆ¬‚µ“]‹Læ‚ð’²®‚·‚邽‚߂̕ϔ
    Dim myR As Long             '“]‹Læ‚Ìs
    Dim myC As Long             '“]‹Læ‚ÌAŠY“–ŽÒE”ñŠY“–ŽÒ‚ð•\ަ‚·‚é—ñ”

 '1.ì‹ÆƒV[ƒg‚P‚©‚ç•”‚ƃƒ“ƒo[‚̈ꗗDictionary‚ð쬂·‚é

    Set dicBU = CreateObject("Scripting.Dictionary")                                        '•”—pDictionary‚ð錾
    Set mySheet = Workbooks("·•ªƒ`ƒFƒbƒNƒ}ƒNƒ_ver2.6.xlsm").Worksheets("Š‘®•”ˆê——")    'ì‹Æƒ[ƒNƒV[ƒg‚P‚ðÝ’è
    With mySheet
        For myC = 1 To .Cells(1, .Columns.Count).End(xlToLeft).Column                       'ƒV[ƒg“à1s–ÚŠe—ñ‚ð„‰ñ
            Set dicNM = CreateObject("Scripting.Dictionary")                                'ƒƒ“ƒo[ãDictionary‚ð‰Šú‰»
            For myR = 2 To .Cells(.Rows.Count, myC).End(xlUp).Row                           '—ñ‚²‚ƂɊes‚ð„‰ñ
                dicNM(.Cells(myR, myC).Value) = Empty                                       'ƒƒ“ƒo[—pDictionary‚ÌKey‚Ƀƒ“ƒo[–¼‚ð“ü‚ê‚éid•¡”ð‚¯j
            Next myR
            Set dicBU(.Cells(1, myC).Value) = dicNM                                         '•”—pDictionary‚ÌItem‚Ƀƒ“ƒo[Dictionary‚ð“ü‚ê‚é
            If dicNM.Count > maxCnt Then                                                    'ő僃“ƒo[”‚ª‚»‚ê‚܂łÌÅ‘å’l‚æ‚è‘å‚«‚¢ê‡‚Í
                maxCnt = dicNM.Count                                                        'ő僃“ƒo[”‚ðXV‚·‚é
            End If
        Next myC
    End With

 '2.ì‹ÆƒV[ƒg‚Q‚©‚ç•”‚ƃƒ“ƒo[‚̈ꗗDictionary‚ðŠY“–ŽÒ‚Æ”ñŠY“–ŽÒ‚Ì2‚‚ɕª‚¯‚é

    Set dicBU2 = CreateObject("Scripting.Dictionary")                                       '”ñŠY“–ŽÒ—p‚Ì•”—pDictionary‚ð錾
    Set mySheet = Workbooks("ŽÐ“àH”“Š“üó‹µ_‘S‘Ì .xlsx").Worksheets("–¾×")               'ì‹Æƒ[ƒNƒV[ƒg‚Q‚ðÝ’è
    With mySheet
        For Each keyBU In dicBU.keys                                                        '•”—pDictionary‚ð„‰ñ
            Set dicNM = dicBU(keyBU)                                                        'ì‹Æ—p•Ï”‚ÉItem‚̃ƒ“ƒo[Dictionary‚ð“ü‚ê‚é
            Set dicNM2 = CreateObject("Scripting.Dictionary")                               '”ñŠY“–ƒƒ“ƒo[—pDictionary‚ð錾
            For Each keyNM In dicNM.keys                                                    '•”“àƒƒ“ƒo[Dictionary‚ð„‰ñ
                Debug.Print keyNM
                If WorksheetFunction.CountIf(.Columns(6), keyNM) = 0 Then                   'ì‹Æƒ[ƒNƒV[ƒg‚Q‚ÌF—ñ‚Ƀƒ“ƒo[–¼‚ª‚È‚¯‚ê‚Î
                    dicNM.Remove keyNM                                                      'ƒƒ“ƒo[Dictionary‚©‚ç–•Á
                    dicNM2(keyNM) = Empty                                                   '”ñŠY“–ƒƒ“ƒo[Dictionary‚ÌKey‚ɂɃƒ“ƒo[–¼‚ð“ü‚ê‚é
                End If
            Next keyNM

            Set dicBU(keyBU) = dicNM                                                        '•”—pDictionary‚ÉŠY“–ƒƒ“ƒo[Dictionary‚ð“ü‚ê‚é
            Set dicBU2(keyBU) = dicNM2                                                      '•¡»Dictionary‚É”ñŠY“–ƒƒ“ƒo[Dictionary‚ð“ü‚ê‚é
        Next keyBU
    End With

 '3.ì‹ÆƒV[ƒg‚R‚ÉŠY“–ŽÒiB`H—ñjA”ñŠY“–ŽÒiI`O—ñj‚̃f[ƒ^‚ð“\‚è•t‚¯‚é

    With Workbooks("·•ªƒ`ƒFƒbƒNƒ}ƒNƒ_ver2.6.xlsm")            '«u.v‚ª”²‚¯‚Ä‚¢‚é‚̂ũ‚̃uƒbƒN‚ł͂Ȃ­Activesheet‚È‚±‚ƂɒˆÓ
        Set mySheet = Sheets(1)                                 'ì‹Æƒ[ƒNƒV[ƒg‚R‚ðÝ’è
    End With
    myC = Int(maxCnt / GROUP_ROW) + 1                           'ŠY“–ŽÒE”ñŠY“–ŽÒ‚ð•\ަ‚·‚é—ñ”
    With mySheet
        myR = 1                                                 'sƒJƒEƒ“ƒ^‚ð1‚ÉÝ’è
        For Each keyBU In dicBU.keys                            '•”—pDictionary‚ÌKeyi•”ƒŠƒXƒgj‚ð„‰ñ
            .Cells(myR, 1).Value = keyBU                        'A—ñ‚É•”–¼‚ð“ü—Í
            .Cells(myR, 2).Resize(GROUP_ROW, myC).Value = _
                SampleFunction(dicBU(keyBU), GROUP_ROW, myC)    'ŠY“–ƒƒ“ƒo[ƒŠƒXƒg‚ð“ü—Í
            .Cells(myR, 3).Offset(, myC).Resize(GROUP_ROW, myC).Value = _
                SampleFunction(dicBU2(keyBU), GROUP_ROW, myC)   '”ñŠY“–ƒƒ“ƒo[ƒŠƒXƒg‚ð“ü—Í
            myR = myR + GROUP_ROW                               'sƒJƒEƒ“ƒ^‚ðGROUP_ROW•ªã‚°‚é

        Next keyBU
    End With
End Sub

 Function SampleFunction(objDic As Object, rCnt As Long, cCnt As Long) As Variant()
 'objDic‚ÌKeysƒŠƒXƒg‚ðrCnts~cCnt—ñ‚Ì”z—ñ‚ɕϊ·‚·‚é
    Dim tmp() As Variant
    Dim var   As Variant
    Dim iR    As Long
    Dim iC    As Long
    Dim i     As Long

    ReDim tmp(1 To rCnt, 1 To cCnt)     '‰¼”z—ñ‚ðs~—ñ”‚ÅÄ’è‹`
    If objDic.Count > 0 Then            'ˆø”‚ÌDictionary‚ª‹ó‚łȂ¯‚ê‚Î
        var = objDic.keys               'Keys‚ð”z—ñ‚É“ü‚ê‚Ä
        For i = 0 To UBound(var)        '—v‘f”•ª„‰ñ
            iC = 1 + (i \ rCnt)         '—ñ‚Ì’l‚Ís”‚ÅŠ„‚Á‚½¤
            If iC > cCnt Then Exit For  '—ñ”‚ª”z—ñ‚ÌãŒÀ‚ð’´‚¦‚½‚çI—¹
            iR = 1 + (i Mod rCnt)       's‚Ì’l‚Ís”‚Ìè—]
            tmp(iR, iC) = var(i)        '‰¼”z—ñ‚ÉKey‚ð“ü‚ê‚é
        Next
    End If
    SampleFunction = tmp
End Function

‚©‚Ȃ葂«Š·‚¦‚Ä‚µ‚Ü‚¢‚Ü‚µ‚½B
‚à‚µ‚©‚µ‚½‚ç7—ñŒÅ’è‚Ås”‚ð•Ï“®‚³‚¹‚½•û‚ª‚æ‚©‚Á‚½‚Ì‚©‚à‚µ‚ê‚È‚¢‚ÆŽv‚¢Žn‚߂Ă¢‚Ü‚·B
i‰ºŽè‚̉¡D‚«j 2022/09/14(…) 13:29


‰ºŽè‚̉¡D‚«—l
ƒR[ƒh‚Ì‚²‹³Žö‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B
ŠY“–ŽÒ‚ªŠó–]’Ê‚è‚ÌŒ`Ž®‚É“]‹L‚³‚ê‚Ü‚µ‚½B
—‰ð‚ª’Ç‚¢•t‚«‚Ü‚¹‚ñ‚ª‚·‚²‚¢‚Å‚·‚ËcB

1“_AŽ„‚Ìà–¾‚ª•ª‚©‚è‚É‚­‚­‚Ä‚·‚݂܂¹‚ñB
‚â‚肽‚¢‚±‚Æ1.‚ÌŠY“–ŽÒ‚È‚µ‚ÌŒŸõ•û–@‚ª”½‘΂łµ‚½‚Ì‚ÅA
‰ü‚߂ċLÚ‚µ‚Ü‚·B
‚±‚ê‚Å“`‚í‚è‚Ü‚·‚Å‚µ‚傤‚©B

@ŒŸõŒ³F‘S‘Ì󋵃uƒbƒN‚Ì–¾×ƒV[ƒgAŒŸõKEY‚ÍF—ñi–¼‘Oj
@ŒŸõæFƒ`ƒFƒbƒNƒuƒbƒN‚ÌŠ‘®•”ˆê——ƒV[ƒg‚Ì2s–ÚˆÈ~
@@@@@¨ŠY“–‚ª‚È‚¢ê‡‚ÍAƒ`ƒFƒbƒNƒuƒbƒN‚̃V[ƒg1‚É‘S‘Ì󋵃uƒbƒN‚Ì–¾×ƒV[ƒg‚ÌŠY“–‚µ‚È‚©‚Á‚½•û‚ÌŽ–¼‚ð“]‹L‚µ‚½‚¢

yŒŸõŒ³F‘S‘Ì󋵃uƒbƒN‚Ì–¾×ƒV[ƒgz
A`D—ñ c E—ñ @@F—ñ c G`AH—ñ
@@@@@11111 @“c’†‘¾˜Y
@@@@@11111 @“c’†‘¾˜Y
@@@@@22222 @²“¡ŽŸ˜Y
@@@@@99999 @~ŽR~˜Y

@@@@@@@@@@E
@@@@@@@@@@E

yŒŸõæƒ`ƒFƒbƒNƒuƒbƒN‚ÌŠ‘®•”ˆê——ƒV[ƒgz
A—ñ B—ñ c F—ñ
ƒVƒXƒeƒ€ˆê•” c ƒVƒXƒeƒ€Žµ•”
“c’†‘¾˜Y @@@“n糎µ˜Y@@
²“¡ŽŸ˜Y
@@@@@@@@@@E
@@@@@@@@@@E
¡ƒV[ƒg‚P‚É“]‹LŠó–]‚̃Cƒ[ƒW@¨@"~ŽR~˜Y"‚ª–¾×ƒV[ƒg‚ɂ͂ ‚邪AŠ‘®•”ˆê——ƒV[ƒg‚ɂ͂Ȃ¢ˆ×AŠY“–ŽÒ‚È‚µ‚Æ‚µ‚Ä“]‹L‚µ‚½‚¢
A—ñ@@@@@@B—ñ@@@c@@@X—ñ
ƒVƒXƒeƒ€ˆê•”@“c’†‘¾˜Y@@@@@~ŽR~˜Y
@@@@@@ @²“¡ŽŸ˜Y

i‚Ü‚«j 2022/09/14(…) 14:27


Šm”F‚Å‚·B
‚à‚µ‚©‚·‚邯~ŽR~˜Y‚³‚ñ‚ÍuŠY“–•”‚È‚µv‚Å‚·‚©H
i‰ºŽè‚̉¡D‚«j 2022/09/14(…) 18:48

‚Ü‚½‚Ü‚½—v–]“xŠOŽ‹‚ÅA‘S‚­•ʈĂł·B
iVŠÖ”‚ðŽg‚Á‚Ă݂½‚©‚Á‚½‚¾‚¯j
 Sub test3()
    Dim ws’Šo As Worksheet
    Dim wsˆê—— As Worksheet
    Dim ws–¾× As Worksheet
    Dim wsTemp As Worksheet
    Dim adr1 As String, adr2 As String
    Dim c As Range
    Dim r As Long

    Set ws’Šo = Workbooks("·•ªƒ`ƒFƒbƒNƒ}ƒNƒ_ver2.6.xlsm").Worksheets(1)
    Set wsˆê—— = Workbooks("·•ªƒ`ƒFƒbƒNƒ}ƒNƒ_ver2.6.xlsm").Worksheets("Š‘®•”ˆê——")
    Set ws–¾× = Workbooks("ŽÐ“àH”“Š“üó‹µ_‘S‘Ì .xlsx").Worksheets("–¾×")

    wsˆê——.Copy ws’Šo
    Set wsTemp = ActiveSheet
    wsTemp.UsedRange.Offset(1).ClearContents

    adr1 = wsˆê——.Cells(1).CurrentRegion.Columns(1).Address(0, 0, , -1)
    adr2 = ws–¾×.Cells(1).CurrentRegion.Columns(6).Address(, , , -1)
    wsTemp.Cells(1).CurrentRegion.Rows(2).Formula2 _
        = "=filter(" & adr1 & ",countif(" & adr2 & "," & adr1 & "),"""")"

    ws’Šo.UsedRange.ClearContents

    r = 1
    For Each c In wsTemp.Cells(1).CurrentRegion.Rows(2).Cells
        If c.Value <> "" Then
            ws’Šo.Cells(r, 1).Value = c.Offset(-1).Value
            adr1 = c.Address(, , , -1)
            ws’Šo.Cells(r, 2).Formula2 = "=WRAPCOLS(" & adr1 & "#,4,"""")"
            r = ws’Šo.Cells(Rows.Count, 2).End(xlUp).Offset(1).Row
        End If
    Next

    adr1 = ws–¾×.Cells(1).CurrentRegion.Columns(6).Address(, , , -1)
    adr2 = wsˆê——.Cells(1).CurrentRegion.Offset(1).Address(, , , -1)
    ws’Šo.Cells(1, "X").Formula2 _
        = "=filter(" & adr1 & ",countif(" & adr2 & "," & adr1 & ")=0,"""")"
     ws’Šo.UsedRange.Value = ws’Šo.UsedRange.Value
    ws’Šo.Cells(1, "X").Value = "–¢“o˜^ŽÒ"

     Application.DisplayAlerts = False
     wsTemp.Delete
     Application.DisplayAlerts = True

 End Sub

iƒ}ƒij 2022/09/14(…) 19:29


 Sub test1()
    Const GROUP_ROW As Long = 4 'o—͗̈æ‚Ì’PˆÊs”

    Dim mySheet As Worksheet    'ì‹Æ—p•Ï”iì‹ÆƒV[ƒg‚ðŽw’èj
    Dim dicBU As Object         'ì‹Æ—p•Ï”i•”—pDictionaryj
    Dim dicNM As Object         'ì‹Æ—p•Ï”i•”“à‚̃ƒ“ƒo[—pDictionaryj
    Dim dicNM2 As Object        'ì‹Æ—p•Ï”i”ñŠY“–ŽÒƒƒ“ƒo[—pDictionaryj
    Dim keyBU As Variant        'ì‹Æ—p•Ï”i•”j
    Dim keyNM As Variant        'ì‹Æ—p•Ï”iƒƒ“ƒo[j
    Dim maxCnt As Long          '•”‚²‚Æ‚Ìő僃“ƒo[”‚ð”cˆ¬‚µ“]‹Læ‚ð’²®‚·‚邽‚߂̕ϔ
    Dim myR As Long             '“]‹Læ‚Ìs
    Dim myC As Long             '“]‹Læ‚ÌAŠY“–ŽÒE”ñŠY“–ŽÒ‚ð•\ަ‚·‚é—ñ”

 '1.ì‹ÆƒV[ƒg‚P‚©‚ç•”‚ƃƒ“ƒo[‚̈ꗗDictionary‚ð쬂·‚é

    Set dicBU = CreateObject("Scripting.Dictionary")                                        '•”—pDictionary‚ð錾
    Set mySheet = Workbooks("·•ªƒ`ƒFƒbƒNƒ}ƒNƒ_ver2.6.xlsm").Worksheets("Š‘®•”ˆê——")    'ì‹Æƒ[ƒNƒV[ƒg‚P‚ðÝ’è
    With mySheet
        For myC = 1 To .Cells(1, .Columns.Count).End(xlToLeft).Column                       'ƒV[ƒg“à1s–ÚŠe—ñ‚ð„‰ñ
            Set dicNM = CreateObject("Scripting.Dictionary")                                'ƒƒ“ƒo[ãDictionary‚ð‰Šú‰»
            For myR = 2 To .Cells(.Rows.Count, myC).End(xlUp).Row                           '—ñ‚²‚ƂɊes‚ð„‰ñ
                dicNM(.Cells(myR, myC).Value) = Empty                                       'ƒƒ“ƒo[—pDictionary‚ÌKey‚Ƀƒ“ƒo[–¼‚ð“ü‚ê‚éid•¡”ð‚¯j
            Next myR
            Set dicBU(.Cells(1, myC).Value) = dicNM                                         '•”—pDictionary‚ÌItem‚Ƀƒ“ƒo[Dictionary‚ð“ü‚ê‚é
            If dicNM.Count > maxCnt Then                                                    'ő僃“ƒo[”‚ª‚»‚ê‚܂łÌÅ‘å’l‚æ‚è‘å‚«‚¢ê‡‚Í
                maxCnt = dicNM.Count                                                        'ő僃“ƒo[”‚ðXV‚·‚é
            End If
        Next myC
    End With

 '2.ì‹ÆƒV[ƒg‚Q‚ÌƒŠƒXƒg‚ɂȂ¢ŽÒ‚𕔂ƃƒ“ƒo[‚̈ꗗDictionary‚©‚çÁ‚µA
 '  ƒŠƒXƒg‚É‚ ‚邪•”‚ƃƒ“ƒo[‚̈ꗗDictionary‚É‚¢‚È‚¢ŽÒ‚ð”ñŠY“–ŽÒDictionary‚É“ü‚ê‚é

    Set dicBU2 = CreateObject("Scripting.Dictionary")                                       '”ñŠY“–ŽÒ—p‚Ì•”—pDictionary‚ð錾
    Set mySheet = Workbooks("ŽÐ“àH”“Š“üó‹µ_‘S‘Ì .xlsx").Worksheets("–¾×")               'ì‹Æƒ[ƒNƒV[ƒg‚Q‚ðÝ’è
        Set dicNM2 = CreateObject("Scripting.Dictionary")                                   '”ñŠY“–ŽÒ—pDictionary‚ð‰Šú‰»
        For myR = 2 To .Cells(.Rows.Count, 6).End(xlUp).Row                                 'F—ñŠes‚ð„‰ñ
            dicNM2(.Cells(myR, 6).Value) = Empty                                            '”ñŠY“–ŽÒ—pDictionary‚ÌKey‚Ƀƒ“ƒo[–¼‚ð“ü‚ê‚éid•¡”ð‚¯j
        Next myR
        For Each keyBU In dicBU.keys                                                        '•”—pDictionary‚ð„‰ñ
            Set dicNM = dicBU(keyBU)                                                        'ì‹Æ—p•Ï”‚ÉItem‚̃ƒ“ƒo[Dictionary‚ð“ü‚ê‚é
            For Each keyNM In dicNM.keys                                                    '•”“àƒƒ“ƒo[Dictionary‚ð„‰ñ
                Debug.Print keyNM
                If WorksheetFunction.CountIf(.Columns(6), keyNM) = 0 Then                   'ì‹Æƒ[ƒNƒV[ƒg‚Q‚ÌF—ñ‚Ƀƒ“ƒo[–¼‚ª‚È‚¯‚ê‚Î
                    dicNM.Remove keyNM                                                      'ƒƒ“ƒo[Dictionary‚©‚ç–•Á
                ElseIf dicNM2.Exists(keyNM) Then                                            'iF—ñ‚Ƀƒ“ƒo[–¼‚ª‚ ‚Á‚Äj”ñŠY“–ŽÒ—pDictionary‚É‚àƒƒ“ƒo[–¼‚ª‚ ‚éê‡i•Ê•”“¯©“¯–¼‘Îôj
                    dicNM2.Remove keyNM                                                     '”ñŠY“–ŽÒ—pDictionary‚©‚ç–•Á
                End If
            Next keyNM
            If dicNM.Count = 0 Then                                                         'ƒƒ“ƒo[Dictionary‚̃f[ƒ^”‚ª0‚Ìê‡
                dicBU.Remove keyBU                                                          '•”—pDictionary‚©‚ç•”‚²‚Æ–•Á
            Else                                                                            'ƒf[ƒ^‚ª1ˆÈã‚ ‚éꇂÍ
                Set dicBU(keyBU) = dicNM                                                    '•”—pDictionary‚Ƀƒ“ƒo[Dictionary‚ðĂѓü‚ê‚é
            End If
        Next keyBU
    End With

 '3.ì‹ÆƒV[ƒg‚R‚ÉŠY“–ŽÒA”ñŠY“–ŽÒ‚̃f[ƒ^‚ð“\‚è•t‚¯‚é

    With Workbooks("·•ªƒ`ƒFƒbƒNƒ}ƒNƒ_ver2.6.xlsm")            '«u.v‚ª”²‚¯‚Ä‚¢‚é‚̂ũ‚̃uƒbƒN‚ł͂Ȃ­Activesheet‚È‚±‚ƂɒˆÓ
        Set mySheet = Sheets(1)                                 'ì‹Æƒ[ƒNƒV[ƒg‚R‚ðÝ’è
    End With
    myC = Int(maxCnt / GROUP_ROW) + 1                           'ŠY“–ŽÒE”ñŠY“–ŽÒ‚ð•\ަ‚·‚é—ñ”
    With mySheet
        myR = 1                                                 'sƒJƒEƒ“ƒ^‚ð1‚ÉÝ’è
        For Each keyBU In dicBU.keys                            '•”—pDictionary‚ÌKeyi•”ƒŠƒXƒgj‚ð„‰ñ
            .Cells(myR, 1).Value = keyBU                        'A—ñ‚É•”–¼‚ð“ü—Í
            .Cells(myR, 2).Resize(GROUP_ROW, myC).Value = _
                SampleFunction(dicBU(keyBU), GROUP_ROW, myC)    'ŠY“–ƒƒ“ƒo[ƒŠƒXƒg‚ð“ü—Í
            myR = myR + GROUP_ROW                               'sƒJƒEƒ“ƒ^‚ðGROUP_ROW•ªã‚°‚é
        Next keyBU
        myR = myR - 1
        .Cells(1, 3).Offset(, myC).Resize(myR, myC).Value = _
            SampleFunction(dicNM2, myR, myC)                    'ŠY“–ƒƒ“ƒo[ƒŠƒXƒg‚̉E‘¤‚É”ñŠY“–ƒƒ“ƒo[ƒŠƒXƒg‚ð“ü—Í
    End With
End Sub

 Private Function SampleFunction(objDic As Object, rCnt As Long, cCnt As Long) As Variant()
 'objDic‚ÌKeysƒŠƒXƒg‚ðrCnts~cCnt—ñ‚Ì”z—ñ‚ɕϊ·‚·‚é
    Dim tmp() As Variant
    Dim var   As Variant
    Dim iR    As Long
    Dim iC    As Long
    Dim i     As Long

    ReDim tmp(1 To rCnt, 1 To cCnt)     '‰¼”z—ñ‚ðs~—ñ”‚ÅÄ’è‹`
    If objDic.Count > 0 Then            'ˆø”‚ÌDictionary‚ª‹ó‚łȂ¯‚ê‚Î
        var = objDic.keys               'Keys‚ð”z—ñ‚É“ü‚ê‚Ä
        For i = 0 To UBound(var)        '—v‘f”•ª„‰ñ
            iC = 1 + (i \ rCnt)         '—ñ‚Ì’l‚Ís”‚ÅŠ„‚Á‚½¤
            If iC > cCnt Then Exit For  '—ñ”‚ª”z—ñ‚ÌãŒÀ‚ð’´‚¦‚½‚çI—¹
            iR = 1 + (i Mod rCnt)       's‚Ì’l‚Ís”‚Ìè—]
            tmp(iR, iC) = var(i)        '‰¼”z—ñ‚ÉKey‚ð“ü‚ê‚é
        Next
    End If
    SampleFunction = tmp
End Function

uŠY“–‚È‚µv‚Í•”‚̈ê‚‚Ƃ·‚é‚Ì‚àˆêˆÄ‚Å‚·‚ªEEE
i‰ºŽè‚̉¡D‚«j 2022/09/14(…) 19:56


‰ºŽè‚̉¡D‚«—l
Šm”F‚ª’x‚­‚È‚è‚Ü‚µ‚½A\‚µ–󂲂´‚¢‚Ü‚¹‚ñB
Šó–]’Ê‚è‚É“]‹L‚³‚ê‚Ü‚µ‚½B
‘å•Ï‹°k‚Å‚·‚ªAuŠY“–‚È‚µv‚𕔂̈ê‚‚Ƃ·‚éê‡‚à‚²‹³Žö‚¢‚½‚¾‚¯‚ê‚ÎK‚¢‚Å‚·B
i‚Ü‚«j 2022/09/15(–Ø) 21:06

 myR = myR - 1
 .Cells(1, 3).Offset(, myC).Resize(myR, myC).Value = SampleFunction(dicNM2, myR, myC)

‚±‚±‚ð

 myC = Int(dicNM2.Count / GROUP_ROW) + 1
 .Cells(myR, 1).Value = "ŠY“–‚È‚µ"
 .Cells(myR, 2).Resize(GROUP_ROW, myC).Value = SampleFunction(dicNM2, GROUP_ROW, myC)      

‚±‚¤‚µ‚Ä‚­‚¾‚³‚¢B
i‰ºŽè‚̉¡D‚«j 2022/09/15(–Ø) 21:43


ˆø‚«Œp‚²‚¤‚Æ‚·‚邯‚±‚Ì—l‚Èê‚ÅŽ¿–₵‚Ä•ª‚©‚è‚Ü‚µ‚½‚Ý‚½‚¢‚ÈŠç‚·‚él‚ª‘½‚­‚Ä¢‚é‚ñ‚Å‚·`‚—
‚»‚ê‚Å‚¢‚ĉž—p‚ª—˜‚©‚È‚¢‚Æ‚©ŽžŠÔ‚Ì–³‘Ê‚·‚¬‚ÄiÎj
iƒ`ƒ“ƒ`ƒNƒŠƒ“j 2022/09/28(…) 22:18

ƒRƒƒ“ƒg•ÔMF

[ ˆê——(ÅVXV‡) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.