[ ‰‚߂Ă̕û‚Ö | ˆê——(ÅVXV‡) | ‘S•¶ŒŸõ | ‰ß‹ŽƒƒO ]
@
w“ü‰×“ú‚Ü‚½‚ÍŽg—pŠúŒÀ‚̌¢‚à‚Ì‚ð’ŠoxiႾ‚é‚Üj
Excel2007‚Å‚·B
‚ ‚éH•iw“üŽÒŒü‚¯ƒ_ƒCƒŒƒNƒgƒ[ƒ‹‚âƒpƒ“ƒtƒŒƒbƒg‚Ȃǂ̃Zƒbƒgì‹Æ‚ð‚·‚é‚½‚߂̎wަ‘‚ð쬂·‚鋯–±‚ª‚ ‚è‚Ü‚·B
‚Ü‚¸‰º‹L‚̂悤‚È“ü‰×ƒ}ƒXƒ^[‚ª‚ ‚è‚Ü‚·B
@@@A@@@B@@@C@@@@D@@@@E@@@@@F@@@@@G@@@@@@@H@@@@@@@I@@@ 1 “ü‰×ID@“ü‰×“ú@ÝŒÉID@@•i–¼@“ü‰×—\’è”@“ü‰×ŽÀ”@Žg—pŠúŒÀi”Nj@Žg—pŠúŒÀiŒŽj@Žg—pŠúŒÀi“új
“ü‰×ID‚̓†ƒj[ƒN‚Å‚·‚ªAÝŒÉID‚Íd•¡‚µ‚Ä‚¢‚é‚à‚Ì‚ª‘½”‚ ‚è‚Ü‚·B ‚Ü‚½‚±‚̃}ƒXƒ^[‚Í“ü‰×ID‚̸‡‚ɂȂç‚ñ‚Å‚¢‚ÄAŽg—pŠúŒÀ‚̓oƒ‰ƒoƒ‰‚Å‚·B Žg—pŠúŒÀ‚ª–³‚¢‚à‚Ì‚à‚ ‚èA‚̤•i‚ɂ͎g—pŠúŒÀ—“‚Éu*v‚ª“ü‚Á‚Ä‚¢‚Ü‚·B
‚»‚±‚Ɍڋq‚©‚çuÝŒÉIDFAAA01‚ð1–‡AAAA02‚ð1–‡ABBB01‚ð1–‡‚ð1ƒZƒbƒg‚Æ‚µ‚½ƒ_ƒCƒŒƒNƒgƒ[ƒ‹‚ð2–œƒZƒbƒgì‚Á‚Ä‚‚êv‚Æ‚¢‚¤ˆË—Š‚ª—ˆ‚Ü‚·B
‚»‚ê‚ðŽó‚¯‚Ä‚±‚¿‚炪‰º‹L‚̂悤‚Èì‹ÆŽwަ‘‚ð쬂µ‚Äì‹Æê‚É“n‚µ‚Ü‚·B
u“Š“ü•\v
@@A@@@@@B@@@@C@@@@@D@` 1 ‹Æ–±NoF›› 2 ƒZƒbƒg”F20000 : 11 ì‹Æê@@@‡@@@@@‡A@@@@ ‡B @`@ 12 •ª—Þ@@@«•@@ •”•i@@@@•”•i@@` 13 •i–¼@@@••“›A@@‚¨Î•éƒrƒ‰@ƒJƒ^ƒƒOA@` 14 ÝŒÉID@@AAA01@@@AAA02@@@BBB01@@` 15 “ü‰×“ú @11/11/1@11/11/20 11/11/10@` 16 Žg—pŠúŒÀ@12/3/20@12/1/10@@ 12/2/20@` F@@F@@@@F@@@@F@@@@@F
1s–Ú‚©‚ç14s–ڂ܂ł͎è“ü—͂ł·B ‰½‚ª‚µ‚½‚¢‚©‚Æ‚¢‚¤‚ÆA14s–Ú‚ÌuÝŒÉIDv‚ð“ü—Í‚µ‚½ŽžA15s–ÚE16s–Ú‚Ìu“ü‰×“úvuŽg—pŠúŒÀv‚ªƒ}ƒXƒ^[‚©‚玩“®“I‚Éo‚邿‚¤‚É‚µ‚½‚¢‚̂ł·B Žg—pŠúŒÀ‚ª“ü‚Á‚Ä‚¢‚é‚à‚͎̂g—pŠúŒÀ‚̌¢‚à‚Ì‚ð’ŠoA“ü‚Á‚Ä‚¢‚È‚¢‚à‚͓̂ü‰×“ú‚̌¢‚à‚Ì‚ð’ŠoA ‚à‚µƒZƒbƒg”‚É•K—v‚È”‚ªF—ñ‚Ìu“ü‰×ŽÀ”v‚Å‘«‚è‚È‚‚È‚Á‚½ê‡A“¯‚¶ÝŒÉID‚ÅŽŸ‚ÉŽg—pŠúŒÀ‚Ü‚½‚Í“ü‰×“ú‚ªŒÃ‚¢‚à‚Ì‚©‚çŽg‚¤A‚Æ‚¢‚¤Š´‚¶‚Å‚·B i‚»‚ÌꇂÍ17s–ÚˆÈ~‚ÉŽŸ‚̤•i‚Ì“ü‰×“ú‚ÆŽg—pŠúŒÀ‚ð’ljÁj Žg—pŠúŒÀ‚Ì‚ ‚é‚à‚̂ƂȂ¢‚à‚̂Ń}ƒXƒ^[‚𕪂¯‚Ä‚à‚¢‚¢‚Ƃ̂±‚Ƃł·
“–•ûƒ}ƒNƒ‚Ì’mޝ‚ª‚Ù‚Æ‚ñ‚Ç‚ ‚è‚Ü‚¹‚ñB ‚±‚̂悤‚È‚±‚Æ‚ðŠÖ”‚ł͂ł«‚Ü‚¹‚ñ‚Å‚µ‚傤‚©H
ŠÖ”‚¶‚á–³—‚»‚¤‚Ȃ̂ł±‚±‚⑼‚̃TƒCƒg‚ðŽQl‚ÉVBA‚Ìl‚¦•û‚¾‚¯‚ð‘‚¢‚Ă݂܂µ‚½B Žg—pŠúŒÀ‚Ì‚ ‚é‚à‚̂ƂȂ¢‚à‚̂Ƀ}ƒXƒ^[‚ð‚킯‚½‚Æ‚µ‚ÄAŽg—pŠúŒÀ‚Ì‚ ‚é‚à‚Ì‚©‚ç‚Ì’Šo‚Ìê‡ ƒ}ƒXƒ^[‚ÌJ—ñ‚ÉuŽg—pŠúŒÀ”NŒŽ“úviG`I—ñj‚ðŒ‹‡‚µ‚½ƒZƒ‹‚ðì¬
Dim i 'ƒJƒEƒ“ƒ^•Ï” Dim j 'ƒJƒEƒ“ƒ^•Ï” Dim s1 'Žg—pŠúŒÀ‚ðŠi”[‚·‚é•Ï”1 Dim s2 'Žg—pŠúŒÀ‚ðŠi”[‚·‚é•Ï”2 Dim kigen 'ÅI“I‚Éo—Í‚³‚ê‚éŽg—pŠúŒÀ
For i = A2 To A—ñ‚ÌÅŒã‚Ü‚Å
@For j = A2 To A—ñ‚ÌÅŒã‚Ü‚Å
@@If u“Š“ü•\vB14 = Range("C" & j) Then
@@@@s1 = ("J" & j)
@@End If
Next j
@@If u“Š“ü•\vB14 = Range("C" & i) Then
@@@@s2 = ("J" & i)
@@@@If s1 <= s2
@@@@@kigen = s1
@@@@Else
@@@@@kigen = s2
@@@@End If
@@End If
Next i
‹Lq‚ÌŽd•û‚ª•ª‚©‚ç‚È‚‚Ä‚ ‚¿‚±‚¿•ςł·‚ª‚±‚ñ‚Èl‚¦•û‚ł͂â‚Á‚ς肨‚©‚µ‚¢‚Å‚·‚©H
¡“ú1“ú‚©‚©‚Á‚Ä‚±‚ꂾ‚¯‚µ‚©l‚¦‚‚«‚Ü‚¹‚ñ‚Å‚µ‚½c
iႾ‚é‚Üj
ãŽè‚s‚‚©‚ÈH
>Žg—pŠúŒÀ‚Ì‚ ‚é‚à‚̂ƂȂ¢‚à‚̂Ń}ƒXƒ^[‚𕪂¯‚Ä‚à‚¢‚¢‚Ƃ̂±‚Ƃł· ƒ}ƒXƒ^‚Í•ª‚¸‚ÉŽg—p‚µ‚Ü‚·
>1s–Ú‚©‚ç14s–ڂ܂ł͎è“ü—͂ł·B ‘S‚Ä“ü—Í‚µ‚Ä‚©‚çAƒ}ƒNƒ‚ðŽÀs‚µ‚ĉº‚³‚¢
ˆÈ‰º‚ð•W€ƒ‚ƒWƒ…[ƒ‹‚É‹Lq‚µ‚ĉº‚³‚¢
Option Explicit
Public Sub Sample()
Dim i As Long
Dim j As Long
Dim k As Long
Dim lngRows As Long
Dim lngColumns As Long
Dim rngList As Range
Dim rngResult As Range
Dim vntData As Variant
Dim vntSets As Variant
Dim lngCount As Long
Dim vntStockID As Variant
Dim vntResult As Variant
Dim lngMax As Long
Dim strProm As String
'“ü‰×ƒ}ƒXƒ^[List‚Ìæ“ªƒZƒ‹ˆÊ’u‚ðŠî€‚Æ‚·‚éi擪—ñ‚Ì—ñŒ©o‚µ‚̃Zƒ‹ˆÊ’uj
Set rngList = Worksheets("“ü‰×ƒ}ƒXƒ^[").Range("A1")
'“Š“ü•\‚ÌÝŒÉIDƒZƒ‹ˆÊ’u‚ðŠî€‚Æ‚·‚éisŒ©o‚µ‚̃Zƒ‹ˆÊ’uj
Set rngResult = Worksheets("“Š“ü•\").Range("A14")
'‰æ–ÊXV‚ð’âŽ~
Application.ScreenUpdating = False
'“ü‰×ƒ}ƒXƒ^[‚ÉA‚¢‚Ä
With rngList
's”‚̎擾
lngRows = .Offset(Rows.Count - .Row).End(xlUp).Row - .Row
If lngRows <= 0 Then
strProm = .Parent.Name & "‚Ƀf[ƒ^‚ª—L‚è‚Ü‚¹‚ñ"
GoTo Wayout
End If
'ÝŒÉID‡‚ÌŽg—pŠúŒÀi”NAŒŽA“új‡‚Ì“ü‰×“ú‡‚ÅList‚ð®—ñ
'A—ñ‚©‚ç®—ñ‚·‚é—ñ‚Ì—ñOffset‚ðŽw’è,‘S‚ĸ‡‚Å
DataSort .Offset(1).Resize(lngRows, 9), Array(2, 6, 7, 8, 1), _
Array(xlAscending, xlAscending, xlAscending, _
xlAscending, xlAscending)
'‘S—ñƒf[ƒ^‚ð”z—ñ‚Ɏ擾
vntData = .Offset(1).Resize(lngRows + 1, 9).Value
End With
'“Š“ü•\‚ÉA‚¢‚Ä
With rngResult
'—ñ”‚̎擾
lngColumns = .Offset(, Columns.Count - .Column).End(xlToLeft).Column - .Column
If lngColumns <= 0 Then
strProm = .Parent.Name & "‚Ƀf[ƒ^‚ª—L‚è‚Ü‚¹‚ñ"
GoTo Wayout
End If
'Set”‚ðŽæ“¾
vntSets = .Offset(-12, 1).Value
'ÝŒÉID‚ðŽæ“¾
vntStockID = .Offset(, 1).Resize(, lngColumns).Value
End With
'“Š“ü•\‚ÌÝŒÉID‚ð‰¡‚ÉŒ©‚Äs‚Á‚Ä
For i = 1 To lngColumns
'o—ÍsˆÊ’u‚ð‰Šú‰»
k = 0
'“ü‰×ƒ}ƒXƒ^‚ÌÝŒÉID‚ðã‚©‚猩‚Äs‚Á‚Ä
For j = 1 To lngRows
'ÝŒÉID‚ª“™‚µ‚¢‚È‚ç
If vntStockID(1, i) = vntData(j, 3) Then
'For‚𔲂¯‚é
Exit For
End If
Next j
'o—Ís‚ðXV
k = k + 1
'o—Í—p”z—ñ‚ðŠm•Û
ReDim vntResult(1 To k * 2)
'ÝŒÉID‚ª“™‚µ‚¢‚È‚ç
If j <= lngRows Then
'•K—v”‚ð“]‹L
lngCount = vntSets
'“ü‰×“ú‚ð“]‹L
vntResult(k) = vntData(j, 2)
'Žg—pŠúŒÀi”N&ŒŽ&“új‚ª“ú•t‚Æ”F‚ß‚ç‚ê‚é‚È‚ç
If IsDate(vntData(j, 7) & "/" & vntData(j, 8) _
& "/" & vntData(j, 9)) Then
'Žg—pŠúŒÀ‚ð“]‹L
vntResult(k + 1) = DateSerial(vntData(j, 7), _
vntData(j, 8), vntData(j, 9))
Else
'Žg—pŠúŒÀ‚É*‚ð‹L“ü
vntResult(k * 2) = "*"
End If
'•K—v”‚©‚ç݌ɔ‚ðƒ}ƒCƒiƒX
lngCount = lngCount - vntData(j, 6)
'݌ɂª•K—v”‚ð–ž‚½‚·–˜ŒJ‚è•Ô‚µ
Do Until lngCount < 0
'“ü‰×ƒ}ƒXƒ^‚ðŒ©‚és‚ðXV
j = j + 1
'o—Ís‚ðXV
k = k + 1
'o—Í—p”z—ñ‚ðŠg’£
ReDim Preserve vntResult(1 To k * 2)
'ÝŒÉID‚ª“™‚µ‚¢‚È‚ç
If vntStockID(1, i) = vntData(j, 3) Then
'“ü‰×“ú‚ð“]‹L
vntResult(k * 2 - 1) = vntData(j, 2)
'Žg—pŠúŒÀi”N&ŒŽ&“új‚ª“ú•t‚Æ”F‚ß‚ç‚ê‚é‚È‚ç
If IsDate(vntData(j, 7) & "/" & vntData(j, 8) _
& "/" & vntData(j, 9)) Then
'Žg—pŠúŒÀ‚ð“]‹L
vntResult(k * 2) = DateSerial(vntData(j, 7), _
vntData(j, 8), vntData(j, 9))
Else
'Žg—pŠúŒÀ‚É*‚ð‹L“ü
vntResult(k * 2) = "*"
End If
'•K—v”‚©‚ç݌ɔ‚ðŒ¸ŽZ
lngCount = lngCount - vntData(j, 6)
Else
vntResult(k * 2 - 1) = "݌ɕs‘«"
Exit Do
End If
Loop
Else
vntResult(k * 2 - 1) = "݌ɕs‘«"
End If
'Œ‹‰Ê‚ðo—Í
rngResult.Offset(1, i).Resize(k * 2).Value _
= WorksheetFunction.Transpose(vntResult)
'o—Í‚ÌÅ‘ås”‚ð•Û‘¶
If lngMax < k Then
lngMax = k
End If
Next i
'“ü‰×“úAŽg—pŠúŒÀ‚ð‘‚«ž‚Þ
ReDim vntResult(1 To 2, 1 To 1)
vntResult(1, 1) = "“ü‰×“ú"
vntResult(2, 1) = "Žg—pŠúŒÀ"
For i = 0 To lngMax - 1
rngResult.Offset(i * 2 + 1).Resize(2).Value = vntResult
Next i
'“ü‰×ƒ}ƒXƒ^[‚ÉA‚¢‚ăf[ƒ^‚ðŒ³‚É–ß‚·
DataSort rngList.Offset(1).Resize(lngRows, 9), Array(0), Array(xlAscending)
strProm = "ˆ—‚ªŠ®—¹‚µ‚Ü‚µ‚½"
Wayout:
'‰æ–ÊXV‚ðÄŠJ
Application.ScreenUpdating = True
Set rngList = Nothing
Set rngResult = Nothing
MsgBox strProm, vbInformation
End Sub
Private Sub DataSort(rngScope As Range, _
vntKeys As Variant, _
vntOrders As Variant, _
Optional lngOrientation As Long = xlTopToBottom)
' vntKeys‚Å—^‚¦‚ç‚ꂽ’l‚ðKey‚Æ‚µ‚Ä®—ñ
Dim i As Long
Dim rngTop As Range
Set rngTop = rngScope.Cells(1, 1)
With rngTop.Parent
.Sort.SortFields.Clear
For i = 0 To UBound(vntKeys, 1)
.Sort.SortFields.Add Key:=rngTop.Offset(, vntKeys(i)) _
, SortOn:=xlSortOnValues, Order:=vntOrders(i) _
, DataOption:=xlSortNormal
Next i
With .Sort
.SetRange rngScope
.Header = xlNo
.MatchCase = False
.Orientation = lngOrientation
.SortMethod = xlStroke
.Apply
End With
End With
Set rngTop = Nothing
End Sub
(Bun)
‚²‚ß‚ñA•K—v”‚ÌŒvŽZ‚ªŠÔˆá‚¦‚Ä‚¢‚Ü‚µ‚½ šˆó‚Ì—l‚ÉC³‚µ‚ĉº‚³‚¢
'݌ɂª•K—v”‚ð–ž‚½‚·–˜ŒJ‚è•Ô‚µ
' Do Until lngCount < 0
Do Until lngCount <= 0 'šã‹L‚ðC³
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·I ƒRƒƒ“ƒg‚܂Œš”J‚É“ü‚ê‚Ä‚‚¾‚³‚Á‚½‚̂ł悂킩‚è‚Ü‚µ‚½I
ˆê‚‚¾‚¯‚¨•·‚«‚µ‚½‚¢‚̂ł·‚ªAu“Š“ü•\v‚ª‚¢‚‚‚©‚ ‚Á‚ÄAu“Š“ü•\ƒAvu“Š“ü•\ƒCv‚̂悤‚É u“Š“ü•\v‚ª“ª‚ɂ‚¢‚½ƒV[ƒg‚ª‚ ‚è‚Ü‚·B
‚±‚Ìê‡A‚»‚Ì“Š“ü•\‚²‚ƂɃ}ƒNƒ‚ðŽÀs‚·‚é‚ɂ͂ǂ¤‚µ‚½‚ç‚æ‚¢‚Å‚µ‚傤‚©H igƒAhgƒCh‚Ì•”•ª‚Í‚»‚Ì“s“x•Ï‚í‚è‚Ü‚·j
iႾ‚é‚Üj
>ˆê‚‚¾‚¯‚¨•·‚«‚µ‚½‚¢‚̂ł·‚ªAu“Š“ü•\v‚ª‚¢‚‚‚©‚ ‚Á‚ÄAu“Š“ü•\ƒAvu“Š“ü•\ƒCv‚̂悤‚É >u“Š“ü•\v‚ª“ª‚ɂ‚¢‚½ƒV[ƒg‚ª‚ ‚è‚Ü‚·B > > >‚±‚Ìê‡A‚»‚Ì“Š“ü•\‚²‚ƂɃ}ƒNƒ‚ðŽÀs‚·‚é‚ɂ͂ǂ¤‚µ‚½‚ç‚æ‚¢‚Å‚µ‚傤‚©H >igƒAhgƒCh‚Ì•”•ª‚Í‚»‚Ì“s“x•Ï‚í‚è‚Ü‚·j >
ˆê”Ô’Pƒ‚È•û–@‚Ì1‚‚ÍA
'“Š“ü•\‚ÌÝŒÉIDƒZƒ‹ˆÊ’u‚ðŠî€‚Æ‚·‚éisŒ©o‚µ‚̃Zƒ‹ˆÊ’uj
Set rngResult = Worksheets("“Š“ü•\").Range("A14")
‚ð
'“Š“ü•\‚ÌÝŒÉIDƒZƒ‹ˆÊ’u‚ðŠî€‚Æ‚·‚éisŒ©o‚µ‚̃Zƒ‹ˆÊ’uj
Set rngResult = ActiveSheet.Range("A14")
‚Æ•ÏX‚µ‚Ü‚· ‚»‚µ‚ă}ƒNƒ‚ðŽÀs‚·‚éê‡Au“Š“ü•\ƒAv¬‚èAu“Š“ü•\ƒCv¬‚è‚ðActivei‚±‚̃V[ƒg‚ªŒ©‚¦‚Ä‚¢‚éó‘Ôj ‚É‚µ‚ÄAuSub Samplev‚ðŽÀs‚µ‚Ü‚· ‚»‚¤‚·‚ê‚ÎAŒ‹‰ÊActive‚É‚µ‚½ƒV[ƒg‚É”½‰f‚³‚ê‚Ü‚·
•ʈĂƂµ‚Ä‚Í
'“Š“ü•\‚ÌÝŒÉIDƒZƒ‹ˆÊ’u‚ðŠî€‚Æ‚·‚éisŒ©o‚µ‚̃Zƒ‹ˆÊ’uj
Set rngResult = Worksheets("“Š“ü•\").Range("A14")
‚ðuSub Samplev‚̈ø”‚Æ‚µ‚ÄŠO‚Éo‚µ‚Ü‚· ‹l‚Ü‚èA
Public Sub Sample(wksResult As Worksheet)
‚Æ‚µ‚Ü‚· ŽŸ‚É
'“Š“ü•\‚ÌÝŒÉIDƒZƒ‹ˆÊ’u‚ðŠî€‚Æ‚·‚éisŒ©o‚µ‚̃Zƒ‹ˆÊ’uj
Set rngResult = wksResult.Range("A14")
‚Æ‚µ‚Ü‚·A‚»‚µ‚ÄŸ‚ê‚ðŒÄ‚Ño‚·ƒvƒƒV[ƒWƒƒ‚ðì‚è‚Ü‚· —Ⴆ‚Îu“Š“ü•\ƒAv‚ÉŒ‹‰Ê‚ð‹‚ß‚é‚È‚ç
Public Sub “Š“ü•\ƒA()
Sample Worksheets("“Š“ü•\ƒA")
End Sub
‚ÆŒ¾‚¤ƒvƒƒV[ƒWƒƒ‚𓊓ü•\•ªì‚èAŒ‹‰Ê‚ð‹‚ß‚½‚¢“Š“ü•\‚̃vƒƒV[ƒWƒƒ‚ðŽÀs‚µ‚Ü‚·
ˆÈã
PSF¡‰ñŽd—l‚Æ‚µ‚Ä–³‚©‚Á‚½‚̂ł·‚ªAˆÈ‰º‚Ì—l‚É‚·‚ê‚Î݌ɕs‘«‚ªo‚éꇑ´‚Ì–‡”‚ðo‚·Ž–‚ào—ˆ‚Ü‚·
(Bun)
ˆÈ‰º‚ð‘‚«–Y‚ê‚Ü‚µ‚½
'•K—v”‚©‚ç݌ɔ‚ðŒ¸ŽZ
lngCount = lngCount - vntData(j, 6)
Else
' vntResult(k * 2 - 1) = "݌ɕs‘«"
vntResult(k * 2 - 1) = lngCount & "–‡•s‘«" 'š•ÏX
Exit Do
End If
Loop
Else
' vntResult(k * 2 - 1) = "݌ɕs‘«"
vntResult(k * 2 - 1) = vntSets & "–‡•s‘«" 'š•ÏX
End If
'Œ‹‰Ê‚ðo—Í
rngResult.Offset(1, i).Resize(k * 2).Value _
= WorksheetFunction.Transpose(vntResult)
'š•s‘«‚Ìꇂ̈—
If Not IsDate(vntResult(k * 2 - 1)) Then
rngResult.Offset(k * 2 - 1, i).Font.Color = vbRed
End If
'o—Í‚ÌÅ‘ås”‚ð•Û‘¶
If lngMax < k Then
lngMax = k
End If
Next i
(Bun)
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·I ’ljÁ‚̈—‚à•‚©‚è‚Ü‚µ‚½B
‚·‚݂܂¹‚ñA‚à‚¤ˆê‚ÂðŒ•ªŠò‚Ì•û–@‚ð‚¨‹³‚¦‚‚¾‚³‚¢B
¤•i‚ðƒZƒbƒg‚·‚éÛ‚Éu"‘qŒÉA“Œ"‚Ì"’IB-1"‚©‚ço‚·v‚Æ‚¢‚¤Žwަ‚ª‚ ‚è‚Ü‚·B ƒ}ƒXƒ^[‚Ì’†‚Å‚Í
@M@@N@@O@@P ‘qŒÉ@“@@’I@”Ô† @A@ “Œ@@B@@1
‚±‚̂悤‚É4—ñ‚É•ª‚©‚ê‚Ä‚¢‚é‚Ì‚ÅA‰E’[‚ÌAL—ñ‚ÉuM—ñ•N—ñ•O—ñ•P—ñv‚ÌŒ‹‡‚µ‚½ì‹Æ—ñ‚ðì‚èA“Š“ü•\‚ÌB7ƒZƒ‹‚É
AL—ñ‚ÌðŒi‚Ç‚±‚©‚ço‚·‚©j‚ð‹L“ü‚µ‚悤‚ÆŽv‚¢‚Ü‚·
iŽè“ü—͂ł̓~ƒX‚ªo‚邯Žv‚¤‚Ì‚ÅƒŠƒXƒgƒ{ƒbƒNƒX‚©‰½‚©‚ð’u‚¢‚Äcj
ˆê‚Â‚Ì“Š“ü•\‚Å‚ÍAL—ñ‚ÌðŒ‚Í‘S•”“¯‚¶‚Å‚·B
‚Ȃ̂ŠIF B7 = "“ü‰×ƒ}ƒXƒ^["AL—ñ
‚Æ‚¢‚¤‚悤‚ÈðŒ‚ð“ü‚ꂽ‚¢‚̂ł·‚ªA‚ǂ̂悤‚È‹Lq‚ð‚·‚ê‚΂悢‚Å‚µ‚傤‚©c
Œã‚©‚ç‚·‚݂܂¹‚ñcã‚©‚炳‚«‚Ù‚Ç‚±‚ÌðŒ‚ð“ü‚ê‚ë‚ÆŒ¾‚í‚ê‚Ü‚µ‚Äc
‚æ‚낵‚‚¨Šè‚¢‚µ‚Ü‚·<(__)>
iႾ‚é‚Üj
‚¤[‚ñHHH Œ¾‚Á‚Ä‚¢‚éˆÓ–¡‚ª¡ˆê‚—‰ðo—ˆ‚È‚¢‚̂ł·‚ªH
‚±‚¿‚ç‚̎󂯎æ‚è•û‚ÍA 1Au“Š“ü•\v‚ÌB7ƒZƒ‹‚ɗႦ‚ÎuA“ŒB1v‚Æ“ü‚ê‚Ü‚· @‚±‚̈Ӗ¡‚ÍAu"‘qŒÉA“Œ"‚Ì"’IB-1"‚©‚ço‚·v‚ÆŒ¾‚¤oŒÉꊎwަ‚Å‚· 2A‚±‚Ì’l‚ÍA“ü‰×ƒ}ƒXƒ^[‚ÌM—ñAN—ñAO—ñAP—ñ‚É•ªŠ„‚µ‚Ä“o˜^‚µ‚Ä—L‚è‚Ü‚· 3Au“Š“ü•\v쬎ži“ü‰×ƒ}ƒXƒ^[‚©‚çÝŒÉID‚ð’T‚·Žžj‚ÉA @u“Š“ü•\vB7ƒZƒ‹‚Ì’l‚ÆŠY“–uÝŒÉIDvs‚ÌM—ñAN—ñAO—ñAP—ñ‚Ì’l‚ªˆê’v‚µ‚½•¨‚¾‚¯‚ð @u“Š“ü•\v‚Ì15s–ÚˆÈ~‚É‹L“ü‚·‚é
‚ÆŒ¾‚¤Ž–‚Å‚µ‚傤‚©H
‹^–â
‚à‚µA݌ɂ͗L‚邪B7ƒZƒ‹‚Ì’l‚ƈê’v‚µ‚È‚¢ê‡‚͂ǂ¤‚·‚é‚ÌH
–{“–‚Í“ü‰×ƒ}ƒXƒ^[‚ÌÅI—ñ‚͉½ˆ‚Ü‚ÅÝ‚é‚ÌH
iƒR[ƒhã‚Å®—ñ‚·‚é‚̂Ŗ{“–‚ÌÅI—ñ‚ª‰ð‚ç‚È‚¢‚ÆAList‚Ì‘O”¼‚¾‚¯®—ñ‚³‚ê‚Ă߂¿‚á‚‚¿‚á‚ɬ‚鎖‚à
–³‚¢‚Ƃ͌¾‚¦‚È‚¢‚©‚àHj
®Ah‰E’[‚ÌAL—ñ‚ÉuM—ñ•N—ñ•O—ñ•P—ñv‚ÌŒ‹‡‚µ‚½ì‹Æ—ñ‚ðì‚èh‚Æ—L‚è‚Ü‚·‚ª ƒR[ƒhã‚Å•¶Žš—ñ‚̘AŒ‹‚Ío—ˆ‚Ü‚·‚Ì‚ÅAì‹Æ—ñ‚ðì‚é•K—v‚Í–³‚¢‚ÆŽv‚¢‚Ü‚· ‰ºŽè‚Éì‹Æ—ñ‚ðì‚è‚»‚±‚֔ޮ“™‚ð“ü‚ê‚ç‚ê‚邯”Ž®‚ªFX‚Ǝז‚‚ð‚·‚é‰Â”\«‚à—L‚è‚Ü‚·
(Bun)
à–¾‚ª‰ºŽè‚Å‚·‚݂܂¹‚ñc
“ü‰×ƒ}ƒXƒ^[‚ÍAK—ñ‚܂ł ‚è‚Ü‚·B
> u“Š“ü•\v쬎ži“ü‰×ƒ}ƒXƒ^[‚©‚çÝŒÉID‚ð’T‚·Žžj‚ÉA > u“Š“ü•\vB7ƒZƒ‹‚Ì’l‚ÆŠY“–uÝŒÉIDvs‚ÌM—ñAN—ñAO—ñAP—ñ‚Ì’l‚ªˆê’v‚µ‚½•¨‚¾‚¯‚ð > u“Š“ü•\v‚Ì15s–ÚˆÈ~‚É‹L“ü‚·‚é
‚Í‚¢A‚»‚¤‚Å‚·B
>@‚à‚µA݌ɂ͗L‚邪B7ƒZƒ‹‚Ì’l‚ƈê’v‚µ‚È‚¢ê‡‚͂ǂ¤‚·‚é‚ÌH
‘¼‚Ì‘qŒÉ“™‚É݌ɂª‚ ‚Á‚Ä‚àAŽwަ‚µ‚½‘qŒÉ‚É݌ɂª‚È‚¯‚ê‚Îu݌ɕs‘«v‚ɂȂè‚Ü‚·B ŒÚ‹q‚©‚çu‚±‚±‚Ì‘qŒÉ‚Ì‚±‚Ì’I‚Ì•ª‚ðŽg‚Á‚Ä‚‚êv‚Æ‚¢‚¤Žw’肪‚ ‚è‚Ü‚·‚Ì‚Åc ‚±‚Ì4‚‚̑g‚݇‚킹‚ª‚¢‚‚Â‚à‚ ‚èA¡Œã‚à‘‚¦‚é—\’肪‚ ‚é‚Ì‚ÅID‚̂悤‚È‚à‚Ì‚ªì‚ê‚È‚‚Äc
ì‹Æ—ñ‚ÌŒ‚Í—¹‰ð‚¢‚½‚µ‚Ü‚µ‚½B
‚ ‚Æ‚·‚݂܂¹‚ñA‘qŒÉ“™‚ÌêŠuM`P—ñv‚Æ‘‚¢‚Ă܂µ‚½‚ªÅV‚̃}ƒXƒ^[‚Å J—ñEK—ñEL—ñEM—ñ‚ɕςí‚Á‚Ă܂µ‚½B
‚»‚ê‚Æ“ü‰×“ú‚ðAI—ñ‚É‚ ‚éu“ü‰×Žó•t”Ô†v‚Æ‚¢‚¤‚Æ‚±‚ë‚É•ÏX‚·‚邿‚¤‚ÉŒ¾‚í‚ê‚Ü‚µ‚½B ‚±‚Ìu“ü‰×Žó•t”Ô†v‚Íã‚É‘‚¢‚½u“ü‰×“úv‚ðŒ³‚É쬂³‚ê‚Ä‚¢‚é”Ô†‚ÅAŽæ‚舵‚¢‚Í“ü‰×“ú‚ƕςí‚ç‚È‚¢‚̂ł·‚ªA AI—ñ‚ɂ͑¼‚Ì—ñ‚R‚Â‚ðŒ‹‡‚·‚锎®‚ª“ü‚Á‚Ä‚¢‚Ü‚·B
‹ï‘Ì“I‚É‚ÍA
@@@AA@@@@AB@@@AC@@@`@@@@AI 1 “ü‰×“ú”Ô†@Ž}”Ô1@@Ž}”Ô2@@`@“ü‰×Žó•t”Ô† 2 111208 0000@@@00@@@`@@111208000000 3@111208@@ 0001@@@00@@@`@@111208000100 4@111208@@ 0001@@@01@@@`@@111208000101
‚Æ‚È‚é‚æ‚¤‚ÉAAI—ñ‚É =$AA2&$AB2&$AC2 ‚Æ‚¢‚¤”Ž®‚ª“ü‚Á‚Ä‚¢‚Ü‚· (AI—ñ‚͕ʂ̃V[ƒg‚ŕʂ̒ •[‚ðì‚é‚̂Ɏg—p‚µ‚Ü‚·B)
‚±‚Ì”Ž®‚ªŽ×–‚‚ɂȂ邱‚Ƃ͂ ‚è‚Ü‚·‚©H
‰½‚©–{“–‚É‚à‚¤‚·‚݂܂¹‚ñ„ƒ
iႾ‚é‚Üj
>‚±‚Ì”Ž®‚ªŽ×–‚‚ɂȂ邱‚Ƃ͂ ‚è‚Ü‚·‚©H
‘¼‚àŠÜ‚ߌŸ“¢‚µ‚ÄŒ©‚Ü‚· ‚µŽžŠÔ‚ð‰º‚³‚¢
(Bun)
>‚±‚Ì”Ž®‚ªŽ×–‚‚ɂȂ邱‚Ƃ͂ ‚è‚Ü‚·‚©H ˆê‰žA–â‘è‚Ío‚È‚¢—l‚Å‚·
¡‰ñAoŒÉꊂ̌‚àŠÜ‚ß’¼Úu“ü‰×ƒ}ƒXƒ^[v‚É®—ñ‚ðŠ|‚¯‘´ˆ‚©‚瓊“üŽwަ‚ðŒvŽZ‚·‚é•û–@•ÏX‚µ‚Ü‚· oŒÉꊂ̌Aƒ}ƒXƒ^‚̕یìAƒf[ƒ^‚̃Rƒ“ƒpƒNƒg‰»‚Ìˆ× ì‹Æ—p‚̃V[ƒg‚ð—\‚ß쬂µA‘´ˆ‚É•K—v‚Ƭ‚éƒf[ƒ^‚ðƒtƒBƒ‹ƒ^ƒIƒvƒVƒ‡ƒ“iAdvancedFilterj‚ðŽg‚Á‚Ä ’Šo‚µŸ‚ê‚ð®—ñ‚µ‚ÄŽg—p‚µ‚Ü‚·
悸A“Š“ü•\‚ÌB7‚ÉoŒÉꊂð“ü‚ê‚Ü‚·A‚±‚Ì‘Ž®‚͈ꉞAu‘qŒÉvˆê•¶ŽšAu“vˆê•¶ŽšA u’Ivˆê•¶ŽšA”Ô†Šô‚Â‚Å‚à‚Æl‚¦uA“ŒB1v‚Æ‚µ‚ăR[ƒh‚ð‘‚«‚Ü‚·
ŽŸ‚ÉAƒ}ƒNƒ‚Ì—L‚éBook‚ɃV[ƒg‚ð’ljÁ‚µ‚ăV[ƒg–¼‚ðuì‹Æ—pv‚Æ‚µ‚Ü‚· ‚»‚̃V[ƒg‚Ì1s–ڂɈȉº‚ÌŒ©o‚µ‚ðì‚è‚Ü‚· iAdvancedFilter‚ÍŒ©o‚µ‚É_ŒoŽ¿‚Ì—l‚Ȃ̂œü‰×ƒ}ƒXƒ^[‚©‚ç•K‚¸ƒRƒs[‚µ‚Äì‚Á‚ĉº‚³‚¢j
uì‹Æ—pvƒV[ƒg‚Ì’Šo”͈͂Ƃµ‚Ä
‚`@@@‚a@@@@@@‚b@@@‚c@@@@‚d@@@@@@@‚e@@@@@@@‚f “ü‰×ID@“ü‰×Žó•t”Ô†@ÝŒÉID@“ü‰×ŽÀ”@Žg—pŠúŒÀi”Nj@Žg—pŠúŒÀiŒŽj@Žg—pŠúŒÀi“új
‚g@@‚h@‚i@‚j ‘qŒÉ@“@’I@”Ô†
uì‹Æ—pv‚ÌðŒ”͈͂Ƃµ‚Ä
‚m@@@‚n@@‚o@‚p@‚q ÝŒÉID@‘qŒÉ@“@’I@”Ô†
‚Æ‚µ‚ĉº‚³‚¢AŸˆ‚ÉðŒ‚ð“ü‚ê‚Ä’Šo‚µ‚Ü‚· uì‹Æ—pvƒV[ƒg‚͌܌Žå¢‚¯‚ê‚Δñ•\ަ‚É‚µ‚ĉº‚³‚¢iƒeƒXƒg’†‚Í•\ަ‚µ‚Ä’u‚¢‚½•û‚ª‘P‚¢‚©‚àj
ƒR[ƒh‚Í
Option Explicit
Public Sub Sample_2()
Dim i As Long
Dim j As Long
Dim k As Long
Dim lngRows As Long
Dim lngColumns As Long
Dim rngList As Range
Dim rngResult As Range
Dim rngWork As Range
Dim vntData As Variant
Dim vntSets As Variant
Dim vntPlace As Variant
Dim lngCount As Long
Dim vntStockID As Variant
Dim vntResult As Variant
Dim lngMax As Long
Dim strProm As String
'“ü‰×ƒ}ƒXƒ^[List‚Ìæ“ªƒZƒ‹ˆÊ’u‚ðŠî€‚Æ‚·‚éi擪—ñ‚Ì—ñŒ©o‚µ‚̃Zƒ‹ˆÊ’uj
Set rngList = Worksheets("“ü‰×ƒ}ƒXƒ^[").Range("A1")
'“Š“ü•\‚ÌÝŒÉIDƒZƒ‹ˆÊ’u‚ðŠî€‚Æ‚·‚éisŒ©o‚µ‚̃Zƒ‹ˆÊ’uj
Set rngResult = Worksheets("“Š“ü•\").Range("A14")
'ì‹Æ—pƒV[ƒg‚Ì’Šo”ÍˆÍ‚Ìæ“ªƒZƒ‹ˆÊ’u(ƒ}ƒXƒ^‚©‚ç•K—vƒf[ƒ^‚ð’Šo)
Set rngWork = Worksheets("ì‹Æ—p").Range("A1")
'‰æ–ÊXV‚ð’âŽ~
Application.ScreenUpdating = False
'“Š“ü•\‚ÉA‚¢‚Ä
With rngResult
'—ñ”‚̎擾
lngColumns = .Offset(, Columns.Count - .Column).End(xlToLeft).Column - .Column
If lngColumns <= 0 Then
strProm = .Parent.Name & "‚Ƀf[ƒ^‚ª—L‚è‚Ü‚¹‚ñ"
GoTo Wayout
End If
'Set”‚ðŽæ“¾
vntSets = .Parent.Range("B2").Value
'oŒÉêŠ‚ðŽæ“¾
vntPlace = .Parent.Range("B7").Value
'ÝŒÉID‚ðŽæ“¾
vntStockID = .Offset(, 1).Resize(, lngColumns).Value
's”‚̎擾
lngRows = .Offset(Rows.Count - .Row).End(xlUp).Row - .Row
If lngRows > 0 Then
.Offset(1).Resize(lngRows).EntireRow.Delete
End If
End With
'“ü‰×ƒ}ƒXƒ^[‚©‚ç•K—vƒf[ƒ^‚ðŽæ“¾
If Not GetData(vntData, rngList, rngWork, vntStockID, vntPlace) Then
strProm = "ƒf[ƒ^‚̎擾‚ªo—ˆ‚Ü‚¹‚ñAÝŒÉIDAoŒÉꊓ™‚ðŠm”F‚µ‚ĉº‚³‚¢"
GoTo Wayout
End If
'ƒf[ƒ^s”‚ðŽæ“¾
lngRows = UBound(vntData, 1)
'“Š“ü•\‚ÌÝŒÉID‚ð‰¡‚ÉŒ©‚Äs‚Á‚Ä
For i = 1 To lngColumns
'o—ÍsˆÊ’u‚ð‰Šú‰»
k = 0
'“ü‰×ƒ}ƒXƒ^‚ÌÝŒÉID‚ðã‚©‚猩‚Äs‚Á‚Ä
For j = 1 To lngRows
'ÝŒÉID‚ª“™‚µ‚¢‚È‚ç
If vntStockID(1, i) = vntData(j, 2) Then
'For‚𔲂¯‚é
Exit For
End If
Next j
'o—Ís‚ðXV
k = k + 1
'o—Í—p”z—ñ‚ðŠm•Û
ReDim vntResult(1 To k * 2)
'ÝŒÉID‚ª“™‚µ‚¢‚È‚ç
If j <= lngRows Then
'•K—v”‚ð“]‹L
lngCount = vntSets
'“ü‰×Žó•t”Ô†‚ð“]‹L
vntResult(k) = "'" & vntData(j, 1)
'Žg—pŠúŒÀ‚ð“]‹L
vntResult(k * 2) = GetDate(vntData(j, 4), vntData(j, 5), vntData(j, 6))
'•K—v”‚©‚ç݌ɔ‚ðƒ}ƒCƒiƒX
lngCount = lngCount - vntData(j, 3)
'݌ɂª•K—v”‚ð–ž‚½‚·–˜ŒJ‚è•Ô‚µ
Do Until lngCount <= 0
'“ü‰×ƒ}ƒXƒ^‚ðŒ©‚és‚ðXV
j = j + 1
'o—Ís‚ðXV
k = k + 1
'o—Í—p”z—ñ‚ðŠg’£
ReDim Preserve vntResult(1 To k * 2)
'ÝŒÉID‚ª“™‚µ‚¢‚È‚ç
If vntStockID(1, i) = vntData(j, 2) Then
'“ü‰×Žó•t”Ô†‚ð“]‹L
vntResult(k * 2 - 1) = "'" & vntData(j, 1)
'Žg—pŠúŒÀ‚ð“]‹L
vntResult(k * 2) = GetDate(vntData(j, 4), vntData(j, 5), vntData(j, 6))
'•K—v”‚©‚ç݌ɔ‚ðŒ¸ŽZ
lngCount = lngCount - vntData(j, 3)
Else
vntResult(k * 2 - 1) = lngCount & "–‡•s‘«"
Exit Do
End If
Loop
Else
vntResult(k * 2 - 1) = vntSets & "–‡•s‘«"
End If
'Œ‹‰Ê‚ðo—Í
rngResult.Offset(1, i).Resize(k * 2).Value _
= WorksheetFunction.Transpose(vntResult)
'•s‘«‚Ìꇂ̈—
If InStr(1, vntResult(k * 2 - 1), "–‡•s‘«") Then
rngResult.Offset(k * 2 - 1, i).Font.Color = vbRed
End If
'o—Í‚ÌÅ‘ås”‚ð•Û‘¶
If lngMax < k Then
lngMax = k
End If
Next i
'“ü‰×“úAŽg—pŠúŒÀ‚ð‘‚«ž‚Þ
ReDim vntResult(1 To 2, 1 To 1)
vntResult(1, 1) = "“ü‰×“ú"
vntResult(2, 1) = "Žg—pŠúŒÀ"
For i = 0 To lngMax - 1
rngResult.Offset(i * 2 + 1).Resize(2).Value = vntResult
Next i
strProm = "ˆ—‚ªŠ®—¹‚µ‚Ü‚µ‚½"
Wayout:
'‰æ–ÊXV‚ðÄŠJ
Application.ScreenUpdating = True
Set rngList = Nothing
Set rngResult = Nothing
Set rngWork = Nothing
MsgBox strProm, vbInformation
End Sub
Private Function GetData(vntData As Variant, rngList As Range, _
rngWork As Range, vntStockID As Variant, _
vntPlace As Variant) As Boolean
' “ü‰×ƒ}ƒXƒ^[‚©‚çAdvancedFilter‚ðŽg‚Á‚ăf[ƒ^‚ðŽæ“¾
Dim i As Long
Dim j As Long
Dim vntCrit As Variant
Dim rngCrit As Range
Dim lngRows As Long
'ì‹Æ—pƒV[ƒg‚ÌðŒ”ÍˆÍ‚Ìæ“ªƒZƒ‹ˆÊ’u(ƒ}ƒXƒ^‚©‚ç•K—vƒf[ƒ^‚ð’Šo)
Set rngCrit = rngWork.Parent.Range("N1")
'ÝŒÉID‚ð’ŠoðŒ‚Éo—Í
ReDim vntCrit(1 To UBound(vntStockID, 2), 1 To 5)
For i = 1 To UBound(vntStockID, 2)
vntCrit(i, 1) = "=" & """=" & vntStockID(1, i) & """"
vntCrit(i, 2) = "=" & """=" & Left(vntPlace, 1) & """"
vntCrit(i, 3) = "=" & """=" & Mid(vntPlace, 2, 1) & """"
vntCrit(i, 4) = "=" & """=" & Mid(vntPlace, 3, 1) & """"
vntCrit(i, 5) = "=" & """=" & Mid(vntPlace, 4) & """"
Next i
rngCrit.Offset(1).Resize(UBound(vntStockID, 2), 5).Value = vntCrit
'“ü‰×ƒ}ƒXƒ^[‚©‚ç•K—vƒf[ƒ^‚ð’Šo
DoFilter rngList.CurrentRegion, _
rngCrit.Resize(UBound(vntStockID, 2) + 1, 5), _
rngWork.Resize(, 11)
'ì‹Æ—pƒV[ƒg‚ÉA‚¢‚Ä
With rngWork
's”‚̎擾
lngRows = .Offset(Rows.Count - .Row).End(xlUp).Row - .Row
If lngRows <= 0 Then
GoTo Wayout
End If
'ÝŒÉID‡‚ÌŽg—pŠúŒÀi”NAŒŽA“új‡‚Ì“ü‰×“ú‡‚ÅList‚ð®—ñ
'A—ñ‚©‚ç®—ñ‚·‚é—ñ‚Ì—ñOffset‚ðŽw’è,‘S‚ĸ‡‚Å
DataSort .Offset(1).Resize(lngRows, 9), Array(2, 4, 5, 6, 1), _
Array(xlAscending, xlAscending, xlAscending, _
xlAscending, xlAscending)
'‘S—ñƒf[ƒ^‚ð”z—ñ‚Ɏ擾
vntData = .Offset(1, 1).Resize(lngRows + 1, 6).Value
End With
GetData = True
Wayout:
Set rngCrit = Nothing
End Function
Private Function GetDate(vntYear As Variant, vntMonth As Variant, _
vntDay As Variant) As Variant
'Žg—pŠúŒÀi”N&ŒŽ&“új‚ª“ú•t‚Æ”F‚ß‚ç‚ê‚é‚È‚ç
If IsDate(vntYear & "/" & vntMonth & "/" & vntDay) Then
'ƒVƒŠƒAƒ‹’l‚ɕϊ·
GetDate = DateSerial(vntYear, vntMonth, vntDay)
Else
'*‚ð•Ô‚·
GetDate = "*"
End If
End Function
Private Sub DoFilter(rngScope As Range, _
rngCriteria As Range, _
rngCopyTo As Range, _
Optional blnUnique As Boolean)
' AdvancedFilter‚ðŽÀs
rngScope.AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=rngCriteria, _
CopyToRange:=rngCopyTo, _
Unique:=blnUnique
End Sub
Private Sub DataSort(rngScope As Range, _
vntKeys As Variant, _
vntOrders As Variant, _
Optional lngOrientation As Long = xlTopToBottom)
Dim i As Long
Dim rngTop As Range
Set rngTop = rngScope.Cells(1, 1)
With rngTop.Parent
.Sort.SortFields.Clear
For i = 0 To UBound(vntKeys, 1)
.Sort.SortFields.Add Key:=rngTop.Offset(, vntKeys(i)) _
, SortOn:=xlSortOnValues, Order:=vntOrders(i) _
, DataOption:=xlSortNormal
Next i
With .Sort
.SetRange rngScope
.Header = xlNo
.MatchCase = False
.Orientation = lngOrientation
.SortMethod = xlStroke
.Apply
End With
End With
Set rngTop = Nothing
End Sub
(Bun)
‚¨Žè”‚ð‚¨‚©‚¯‚µ‚Ü‚·B ‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B
ƒTƒ“ƒvƒ‹‚ðì‚Á‚ÄŽŽ‚µ‚½‚Æ‚±‚ëA“ü‰×Žó•t”Ô†‚È‚Ç‚Í“Š“ü•\‚É”½‰f‚³‚ꂽ‚̂ł·‚ªA“ü‰×Žó•t”Ô†‚Ȃǂª“ü‚ésˆÈ‰º i“Š“ü•\‚Ì15s–ڈȉºj‚Ì‘Ž®iŒrüA“h‚è‚‚Ԃµ‚È‚Çj‚âˆóü”͈͂ÌÝ’è‚Ȃǂª‘S‚ăNƒŠƒA‚³‚ê‚Ä‚µ‚Ü‚¢‚Ü‚·c
‚ ‚Æ‘qŒÉ‚Ȃǂ̕”•ª‚ÍAŽÀÛ‚ÍuƒƒWƒXƒeƒBƒbƒNvu‚¨‹q—l‘‹Œû—pv‚Ȃǂ̕¶Žš—ñ‚ª“ü‚è‚Ü‚·‚ªA‚±‚ê‚͕ʂɃ}ƒXƒ^[‚ðì‚Á‚Ä ‘qŒÉID‚̂悤‚È‚à‚Ì‚ð쬂µA‚»‚±‚©‚çˆø‚Á’£‚Á‚Ä‚«‚½•û‚ª‚æ‚¢‚Å‚µ‚傤‚©B ŽžV‚µ‚¢‚à‚Ì‚à’ljÁ‚³‚ê‚é‚̂łǂ±‚©‚ðŽQÆ‚µA“Š“ü•\‚ÌB7ƒZƒ‹‚É“ü—Í‚µ‚½•û‚ª“ü—̓~ƒX‚Å݌ɂª”½‰f‚³‚ê‚È‚¢A ‚Ȃǂ̌»Û‚ª‰ñ”ð‚Å‚«‚é‚©‚ÆŽv‚¢‚Ü‚µ‚Äc i‚±‚±‚ÍŽ„‚à‚Ç‚¤‚·‚ê‚Γü—̓~ƒX‚È‚‹L“ü‚Å‚«‚é‚©l‚¦‚Ä‚¢‚邯‚±‚ë‚Å‚·BŒ»Ý‚̃}ƒXƒ^[‚ª‘S‚ÄŽè“ü—͂Š‘SŠp”¼Šp‚Ȃǂ̔÷–‚ȈႢ‚ª‘½‚¢‚Ì‚Åcj
‚±‚Ì•”•ª‚ÍŽ©•ª‚Å‚à‚à‚¤‚µ•û–@‚ðl‚¦‚Ă݂܂·
‚Æ‚è‚ ‚¦‚¸‚à‚¤‚µ“Š“ü•\‚̃ŒƒCƒAƒEƒg‚È‚Çl‚¦‚È‚ª‚玎‚µ‚Ă݂܂·B
iႾ‚é‚Üj
>ƒTƒ“ƒvƒ‹‚ðì‚Á‚ÄŽŽ‚µ‚½‚Æ‚±‚ëA“ü‰×Žó•t”Ô†‚È‚Ç‚Í“Š“ü•\‚É”½‰f‚³‚ꂽ‚̂ł·‚ªA“ü‰×Žó•t”Ô†‚Ȃǂª“ü‚ésˆÈ‰º >i“Š“ü•\‚Ì15s–ڈȉºj‚Ì‘Ž®iŒrüA“h‚è‚‚Ԃµ‚È‚Çj‚âˆóü”͈͂ÌÝ’è‚Ȃǂª‘S‚ăNƒŠƒA‚³‚ê‚Ä‚µ‚Ü‚¢‚Ü‚·c
ƒSƒƒ“Ÿ‚ê‚̓R[ƒh‚Ì’†‚Å•s‘«‚Ìê‡FontÔ‚ÉÝ’è‚·‚鎞‚ª—L‚é‚Ì‚Å“Š“ü•\‚Ì15s–ڈȉº‚ðs휂µ‚Ä‚¢‚éˆ×‚Å‚· Ÿ‚ê‚ð‚â‚ß‚é‚͈̂ȉº‚ð휂·‚ê‚ÎŽ~‚Ü‚è‚Ü‚·
'“Š“ü•\‚ÉA‚¢‚Ä
With rngResult
E
E
E
's”‚̎擾
lngRows = .Offset(Rows.Count - .Row).End(xlUp).Row - .Row 'šíœ
If lngRows > 0 Then 'šíœ
.Offset(1).Resize(lngRows).EntireRow.Delete 'šíœ
End If 'šíœ
End With
>‚ ‚Æ‘qŒÉ‚Ȃǂ̕”•ª‚ÍAŽÀÛ‚ÍuƒƒWƒXƒeƒBƒbƒNvu‚¨‹q—l‘‹Œû—pv‚Ȃǂ̕¶Žš—ñ‚ª“ü‚è‚Ü‚·‚ªA‚±‚ê‚͕ʂɃ}ƒXƒ^[‚ðì‚Á‚Ä >‘qŒÉID‚̂悤‚È‚à‚Ì‚ð쬂µA‚»‚±‚©‚çˆø‚Á’£‚Á‚Ä‚«‚½•û‚ª‚æ‚¢‚Å‚µ‚傤‚©B
“ü‰×ƒ}ƒXƒ^[‚ɂł·‚©Ao—ˆ‚ê‚΂»‚Ì•û‚ª‘P‚¢‚Å‚µ‚傤‚ªH uA“ŒB1v‚Æ‚µ‚½‚Ì‚ÍAŽÀÛ‚É”@‰½‚·‚é‚©‚ªŒˆ‚Ü‚Á‚Ä–³‚©‚Á‚½‚ÌŽæ‚臂¦‚¸‚±‚Ì—l‚É‚µ‚½–˜‚Å‚·‚ªH Ÿ‚ê‚ÍA—Ⴆ‚΃Jƒ“ƒ}‚âƒZƒ~ƒRƒƒ“‚âƒ_ƒuƒ‹ƒRƒƒ““™‚Å‹æØ‚Á‚ÄŸ‚ê‚ð‹æØ‚è•¶Žš‚Æ‚·‚ê‚Î ‘qŒÉA“A’IA”Ô†‚𕪊„o—ˆ‚Ü‚·‚Ì‚ÅႾ‚é‚Ü‚³‚ñ‚Ì•û‚ÅŒˆ‚߂Ă¢‚½‚¾‚¯‚ê‚΂»‚Ì—l‚É’¼‚¹‚Ü‚· ‘´‚Ìê‡Aˆê•¶Žš‚ÂÂo‚È‚‚Ä‚à‘P‚¢‚Å‚· —Ⴆ‚ÎAuƒƒWƒXƒeƒBƒbƒN;“Œ;B;1v‚âuƒƒWƒXƒeƒBƒbƒN,“Œ,B,1v“™
>i‚±‚±‚ÍŽ„‚à‚Ç‚¤‚·‚ê‚Γü—̓~ƒX‚È‚‹L“ü‚Å‚«‚é‚©l‚¦‚Ä‚¢‚邯‚±‚ë‚Å‚·BŒ»Ý‚̃}ƒXƒ^[‚ª‘S‚ÄŽè“ü—͂Š‘SŠp”¼Šp‚Ȃǂ̔÷–‚ȈႢ‚ª‘½‚¢‚Ì‚Åcj
Up‚µ‚½ƒ}ƒNƒ‚ł͑qŒÉA“A’IA”Ô†‚ðƒtƒBƒ‹ƒ^ƒIƒvƒVƒ‡ƒ“‚Åi‚èž‚ñ‚Å‹‚é‚̂ł·‚ªH ã‹L‚Ì—l‚É‘S”¼Šp¬Ý‚Ì—l‚Èó‘Ô‚Å‚Íi‚螂߂܂¹‚ñ‚Ë ˆês‚ÂÂStrComp‚ÅŠm”F‚·‚é—l‚É‚µ‚Ü‚·‚©H
(Bun)
ŒãA‘‚«–Y‚ê‚Ü‚µ‚½‚ª ‘qŒÉA“A’IA”Ô†‚͈ê‚‚̃Zƒ‹‚ɘAŒ‹‚·‚é•K—v‚Í•K‚¸‚µ‚à—L‚è‚Ü‚¹‚ñ‚̂ŠŸ‚ꂪA•ÊX‚ɃZƒ‹‚É“ü‚Á‚Ä‚¢‚éó‘Ô‚Å‚à\‚¢‚Ü‚¹‚ñA‘´‚ê‚È‚è‚Ɏ擾‚µ‚Ü‚·‚̂Š‚½‚¾Aƒ}ƒNƒ‚ðì‚éã‚łǂ̂悤‚ÈŒ`‚Å’ñ‹Ÿ‚³‚ê‚é‚©‚ª–â‘è‚Å‚·‚Ì‚ÅA ‚±‚ê‚ðƒ}ƒNƒ‚É“n‚·•ûŽ®‚ð‘‚Šm—§‚µ‚ĉº‚³‚¢ ‘´‚ê‚É‚æ‚èA‘qŒÉ“™‚Ì•¶Žš—ñ‚É‘S”¼Šp‚ª¬Ý‚·‚é’ö“x‚È‚çu‚·‚év‚ÆŒ¾‚¦‚Î ‘´‚ꬂè‚̑Έ‚ào—ˆ‚邯Žv‚¢‚Ü‚·
(Bun)
ˆê‰žA‘qŒÉA“A’IA”Ô†‚̓tƒBƒ‹ƒ^ƒIƒvƒVƒ‡ƒ“‚Å‚Ìi‚螂݂ð’ú‚ß ‘S”¼Šp‚Ì‹zŽû‚ðs‚¤ˆ×‚ÉAs‚ðã‚©‚猩‚Äs‚Žž“_‚ÅStrCompŠÖ”‚Å”äŠr‚ðs‚¤—l‚É•ÏX‚µ‚Ü‚µ‚½ ‚½‚¾A•s—vƒf[ƒ^‚Ì”rœAƒ}ƒXƒ^‚̕یì‚ׂ̈ɃtƒBƒ‹ƒ^ƒIƒvƒVƒ‡ƒ“Ž©‘͎̂g—p‚µ‚Ü‚· ˆö‚Á‚Äuì‹Æ—pvƒV[ƒg‚Í‘S‚“¯‚¶•¨‚ðŽg—p‚µ‚Ü‚·‚̂ő´‚̂܂܂ɂµ‚ĉº‚³‚¢
‚Ü‚½Au“Š“ü•\v‚ÌB7‚Ì‘Ž®‚͈ê’UA—Ⴆ‚ÎuƒƒWƒXƒeƒBƒbƒN:“Œ:B:1v‚Ì—l‚É ‹æØ‚è•¶Žš‚Éu:vƒ_ƒuƒ‹ƒRƒƒ“‚ð‹²‚ñ‚¾˜AŒ‹‚É‚µ‚Ä’u‚«‚Ü‚· Ÿ‚ê‚ÍAu“Š“ü•\v‚ÌŽd—l‚ªŒˆ‚Ü‚Á‚½Žž“_‚Å•ÏX‚·‚ê‚΋X‚µ‚¢‚©‚ÆŽv‚¢‚Ü‚· ‚±‚ê‚ÅA‰^—pƒeƒXƒg’ö“x‚Ío—ˆ‚é‚̂ł͎v‚¢‚Ü‚·‚Ì‚ÅAƒeƒXƒg‚µ‚Ä•s“s‡‚ð“Z‚߂ĉº‚³‚¢
®Au“Š“ü•\v‚Ì15s–ڈȉº‚Ì휂̓Rƒƒ“ƒgƒAƒEƒg‚ÅŽ~‚߂ėL‚è‚Ü‚·
Option Explicit
Public Sub Sample_3()
Dim i As Long
Dim j As Long
Dim k As Long
Dim lngRows As Long
Dim lngColumns As Long
Dim rngList As Range
Dim rngResult As Range
Dim rngWork As Range
Dim vntData As Variant
Dim vntSets As Variant
Dim vntPlace As Variant
Dim lngCount As Long
Dim vntStockID As Variant
Dim vntResult As Variant
Dim lngMax As Long
Dim strProm As String
'“ü‰×ƒ}ƒXƒ^[List‚Ìæ“ªƒZƒ‹ˆÊ’u‚ðŠî€‚Æ‚·‚éi擪—ñ‚Ì—ñŒ©o‚µ‚̃Zƒ‹ˆÊ’uj
Set rngList = Worksheets("“ü‰×ƒ}ƒXƒ^[").Range("A1")
'“Š“ü•\‚ÌÝŒÉIDƒZƒ‹ˆÊ’u‚ðŠî€‚Æ‚·‚éisŒ©o‚µ‚̃Zƒ‹ˆÊ’uj
Set rngResult = Worksheets("“Š“ü•\").Range("A14")
'ì‹Æ—pƒV[ƒg‚Ì’Šo”ÍˆÍ‚Ìæ“ªƒZƒ‹ˆÊ’u(ƒ}ƒXƒ^‚©‚ç•K—vƒf[ƒ^‚ð’Šo)
Set rngWork = Worksheets("ì‹Æ—p").Range("A1")
'‰æ–ÊXV‚ð’âŽ~
Application.ScreenUpdating = False
'“Š“ü•\‚ÉA‚¢‚Ä
With rngResult
'—ñ”‚̎擾
lngColumns = .Offset(, Columns.Count - .Column).End(xlToLeft).Column - .Column
If lngColumns <= 0 Then
strProm = .Parent.Name & "‚Ƀf[ƒ^‚ª—L‚è‚Ü‚¹‚ñ"
GoTo Wayout
End If
'Set”‚ðŽæ“¾
vntSets = .Parent.Range("B2").Value
If Val(vntSets) < 1 Then
strProm = "ƒZƒbƒg”‚ªÝ’肳‚ê‚Ä‚¢‚Ü‚¹‚ñ"
GoTo Wayout
End If
'oŒÉêŠ‚ðŽæ“¾
vntData = .Parent.Range("B7").Value
vntPlace = Split(vntData, ":", , vbTextCompare)
If UBound(vntPlace, 1) < 3 Then
strProm = "oŒÉꊂ̓ü—Í‚ª³‚µ‚—L‚è‚Ü‚¹‚ñ"
GoTo Wayout
End If
'ÝŒÉID‚ðŽæ“¾
vntStockID = .Offset(, 1).Resize(, lngColumns).Value
's”‚̎擾
' lngRows = .Offset(Rows.Count - .Row).End(xlUp).Row - .Row 'šíœ
' If lngRows > 0 Then 'šíœ
' .Offset(1).Resize(lngRows).EntireRow.Delete 'šíœ
' End If 'šíœ
End With
'“ü‰×ƒ}ƒXƒ^[‚©‚ç•K—vƒf[ƒ^‚ðŽæ“¾
If Not GetData(vntData, rngList, rngWork, vntStockID) Then
strProm = "ƒf[ƒ^‚̎擾‚ªo—ˆ‚Ü‚¹‚ñAÝŒÉIDAoŒÉꊓ™‚ðŠm”F‚µ‚ĉº‚³‚¢"
GoTo Wayout
End If
'ƒf[ƒ^s”‚ðŽæ“¾
lngRows = UBound(vntData, 1)
'“Š“ü•\‚ÌÝŒÉID‚ð‰¡‚ÉŒ©‚Äs‚Á‚Ä
For i = 1 To lngColumns
'o—ÍsˆÊ’u‚ð‰Šú‰»
k = 0
'“ü‰×ƒ}ƒXƒ^‚ÌÝŒÉID‚ðã‚©‚猩‚Äs‚Á‚Ä
For j = 1 To lngRows
'ÝŒÉID‚ª“™‚µ‚¢‚È‚ç
If vntStockID(1, i) = vntData(j, 2) Then
'oŒÉꊂ̃`ƒFƒbƒN‚ªTrue‚È‚ç
If PlaceCheck(vntPlace, j, vntData) Then
'For‚𔲂¯‚é
Exit For
End If
End If
Next j
'o—Ís‚ðXV
k = k + 1
'o—Í—p”z—ñ‚ðŠm•Û
ReDim vntResult(1 To k * 2)
'ÝŒÉID‚ª“™‚µ‚¢‚È‚ç
If j <= lngRows Then
'•K—v”‚ð“]‹L
lngCount = vntSets
'“ü‰×Žó•t”Ô†‚ð“]‹L
vntResult(k) = "'" & vntData(j, 1)
'Žg—pŠúŒÀ‚ð“]‹L
vntResult(k * 2) = GetDate(vntData(j, 4), vntData(j, 5), vntData(j, 6))
'•K—v”‚©‚ç݌ɔ‚ðƒ}ƒCƒiƒX
lngCount = lngCount - vntData(j, 3)
'݌ɂª•K—v”‚ð–ž‚½‚·–˜ŒJ‚è•Ô‚µ
Do Until lngCount <= 0
'“ü‰×ƒ}ƒXƒ^‚ðŒ©‚és‚ðXV
j = j + 1
'ÝŒÉID‚ª“™‚µ‚¢‚È‚ç
If vntStockID(1, i) = vntData(j, 2) Then
'oŒÉꊂ̃`ƒFƒbƒN‚ªTrue‚È‚ç
If PlaceCheck(vntPlace, j, vntData) Then
'o—Ís‚ðXV
k = k + 1
'o—Í—p”z—ñ‚ðŠg’£
ReDim Preserve vntResult(1 To k * 2)
'“ü‰×Žó•t”Ô†‚ð“]‹L
vntResult(k * 2 - 1) = "'" & vntData(j, 1)
'Žg—pŠúŒÀ‚ð“]‹L
vntResult(k * 2) = GetDate(vntData(j, 4), vntData(j, 5), vntData(j, 6))
'•K—v”‚©‚ç݌ɔ‚ðŒ¸ŽZ
lngCount = lngCount - vntData(j, 3)
End If
Else
'o—Ís‚ðXV
k = k + 1
'o—Í—p”z—ñ‚ðŠg’£
ReDim Preserve vntResult(1 To k * 2)
vntResult(k * 2 - 1) = lngCount & "–‡•s‘«"
Exit Do
End If
Loop
Else
vntResult(k * 2 - 1) = vntSets & "–‡•s‘«"
End If
'Œ‹‰Ê‚ðo—Í
rngResult.Offset(1, i).Resize(k * 2).Value _
= WorksheetFunction.Transpose(vntResult)
'•s‘«‚Ìꇂ̈—
If InStr(1, vntResult(k * 2 - 1), "–‡•s‘«") Then
rngResult.Offset(k * 2 - 1, i).Font.Color = vbRed
End If
'o—Í‚ÌÅ‘ås”‚ð•Û‘¶
If lngMax < k Then
lngMax = k
End If
Next i
'“ü‰×“úAŽg—pŠúŒÀ‚ð‘‚«ž‚Þ
ReDim vntResult(1 To 2, 1 To 1)
vntResult(1, 1) = "“ü‰×“ú"
vntResult(2, 1) = "Žg—pŠúŒÀ"
For i = 0 To lngMax - 1
rngResult.Offset(i * 2 + 1).Resize(2).Value = vntResult
Next i
strProm = "ˆ—‚ªŠ®—¹‚µ‚Ü‚µ‚½"
Wayout:
'‰æ–ÊXV‚ðÄŠJ
Application.ScreenUpdating = True
Set rngList = Nothing
Set rngResult = Nothing
Set rngWork = Nothing
MsgBox strProm, vbInformation
End Sub
Private Function PlaceCheck(vntCheck As Variant, _
lngPos As Long, vntData As Variant) As Boolean
Dim i As Long
'‘qŒÉA“A’IA”Ô†‚ðƒ`ƒFƒbƒN
For i = 0 To UBound(vntCheck, 1)
If StrComp(vntCheck(i), vntData(lngPos, i + 7), vbTextCompare) <> 0 Then
Exit For
End If
Next i
'‘S‚Ĉê’v‚Ìê‡
If i > UBound(vntCheck, 1) Then
'–ß‚è’l‚Æ‚µ‚ÄTrue‚ð•Ô‚·
PlaceCheck = True
End If
End Function
Private Function GetData(vntData As Variant, rngList As Range, _
rngWork As Range, vntStockID As Variant) As Boolean
' “ü‰×ƒ}ƒXƒ^[‚©‚çAdvancedFilter‚ðŽg‚Á‚ăf[ƒ^‚ðŽæ“¾
Dim i As Long
Dim j As Long
Dim vntCrit As Variant
Dim rngCrit As Range
Dim lngRows As Long
'ì‹Æ—pƒV[ƒg‚ÌðŒ”ÍˆÍ‚Ìæ“ªƒZƒ‹ˆÊ’u(ƒ}ƒXƒ^‚©‚ç•K—vƒf[ƒ^‚ð’Šo)
Set rngCrit = rngWork.Parent.Range("N1")
'ÝŒÉID‚ð’ŠoðŒ‚Éo—Í
ReDim vntCrit(1 To UBound(vntStockID, 2), 1 To 1)
For i = 1 To UBound(vntStockID, 2)
vntCrit(i, 1) = "=" & """=" & vntStockID(1, i) & """"
Next i
rngCrit.Offset(1).Resize(UBound(vntStockID, 2)).Value = vntCrit
'“ü‰×ƒ}ƒXƒ^[‚©‚ç•K—vƒf[ƒ^‚ð’Šo
DoFilter rngList.CurrentRegion, _
rngCrit.Resize(UBound(vntStockID, 2) + 1), _
rngWork.Resize(, 11)
'ì‹Æ—pƒV[ƒg‚ÉA‚¢‚Ä
With rngWork
's”‚̎擾
lngRows = .Offset(Rows.Count - .Row).End(xlUp).Row - .Row
If lngRows <= 0 Then
GoTo Wayout
End If
'ÝŒÉID‡‚ÌŽg—pŠúŒÀi”NAŒŽA“új‡‚Ì“ü‰×“ú‡‚ÅList‚ð®—ñ
'A—ñ‚©‚ç®—ñ‚·‚é—ñ‚Ì—ñOffset‚ðŽw’è,‘S‚ĸ‡‚Å
DataSort .Offset(1).Resize(lngRows, 11), Array(2, 4, 5, 6, 1), _
Array(xlAscending, xlAscending, xlAscending, _
xlAscending, xlAscending)
'‘S—ñƒf[ƒ^‚ð”z—ñ‚Ɏ擾
vntData = .Offset(1, 1).Resize(lngRows + 1, 10).Value
End With
GetData = True
Wayout:
Set rngCrit = Nothing
End Function
Private Function GetDate(vntYear As Variant, vntMonth As Variant, _
vntDay As Variant) As Variant
'Žg—pŠúŒÀi”N&ŒŽ&“új‚ª“ú•t‚Æ”F‚ß‚ç‚ê‚é‚È‚ç
If IsDate(vntYear & "/" & vntMonth & "/" & vntDay) Then
'ƒVƒŠƒAƒ‹’l‚ɕϊ·
GetDate = DateSerial(vntYear, vntMonth, vntDay)
Else
'*‚ð•Ô‚·
GetDate = "*"
End If
End Function
Private Sub DoFilter(rngScope As Range, _
rngCriteria As Range, _
rngCopyTo As Range, _
Optional blnUnique As Boolean)
' AdvancedFilter‚ðŽÀs
rngScope.AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=rngCriteria, _
CopyToRange:=rngCopyTo, _
Unique:=blnUnique
End Sub
Private Sub DataSort(rngScope As Range, _
vntKeys As Variant, _
vntOrders As Variant, _
Optional lngOrientation As Long = xlTopToBottom)
Dim i As Long
Dim rngTop As Range
Set rngTop = rngScope.Cells(1, 1)
With rngTop.Parent
.Sort.SortFields.Clear
For i = 0 To UBound(vntKeys, 1)
.Sort.SortFields.Add Key:=rngTop.Offset(, vntKeys(i)) _
, SortOn:=xlSortOnValues, Order:=vntOrders(i) _
, DataOption:=xlSortNormal
Next i
With .Sort
.SetRange rngScope
.Header = xlNo
.MatchCase = False
.Orientation = lngOrientation
.SortMethod = xlStroke
.Apply
End With
End With
Set rngTop = Nothing
End Sub
(Bun)
–{“–‚É‚¨Žè”‚ð‚¨‚©‚¯‚µ‚Ü‚·B
>‘qŒÉA“A’IA”Ô†‚͈ê‚‚̃Zƒ‹‚ɘAŒ‹‚·‚é•K—v‚Í•K‚¸‚µ‚à—L‚è‚Ü‚¹‚ñ‚̂Š—Ⴆ‚Îu“Š“ü•\v‚ÌB7AC7‚Æ•¡”ƒZƒ‹‚É“ü—Í‚µ‚Ä‚à‘åä•v‚Æ‚¢‚¤‚±‚Ƃłµ‚傤‚©H
‘qŒÉ`‚ÌŒ‚Å‚¢‚‚‚©•ÏX‚Æ‚±‚¿‚ç‚Ål‚¦‚½‚±‚Æ‚ª‚ ‚è‚Ü‚·‚Ì‚Å‚Æ‚è‚ ‚¦‚¸‚܂Ƃ߂܂·B
EŽQÆ‚·‚é‚Ì‚Íu‘qŒÉvu“v‚Ì2—ñ‚¾‚¯‚ÅOKi’I‚ƔԆ‚Í•s—vj Eƒ}ƒXƒ^[‚ª‘SŠp”¼Šp‚̂ق©‚Éu‚¨‹q—l‘Ήž—pvu‚¨‹q‚³‚ܑΉžv‚ȂǓ¯‚¶“à—e‚ł܂Á‚½‚ˆá‚¤‘‚«•û‚ð‚µ‚Ä‚¢‚é‚à‚Ì‚ª‚ ‚é‚Ì‚ÅA •ʃV[ƒg‚Éu‘qŒÉE’Iƒ}ƒXƒ^[v‚ðì‚èA“ü—Í‹K‘¥‚Æ–¼‘O‚Ì’è‹`‚ð—˜—p‚µ‚ă}ƒXƒ^[E“Š“ü•\‚Æ‚àƒvƒ‹ƒ_ƒEƒ“ƒŠƒXƒg‚©‚ç‘I‘ð‚·‚é‚æ‚¤‚É‚µ‚悤‚ÆŽv‚¢‚Ü‚·B ‚»‚ê‚ÅA‚Å‚«‚ê‚Î“Š“ü•\‚ÌB7‚Éu‘qŒÉvC7‚Éu“v‚Ì€–Ú‚ðA‚»‚ꂼ‚ê“ü—Í‹K‘¥‚Å“ü‚ê‚æ‚¤‚ÆŽv‚¢‚Ü‚·B
‚±‚ê‚ňê“xƒ}ƒXƒ^[‚ðƒƒ“ƒe‚µ‚Ä‚©‚狳‚¦‚Ä‚¢‚½‚¾‚¢‚½ƒR[ƒh‚ŃeƒXƒg‚µ‚Ă݂܂·B ‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B
iႾ‚é‚Üj
>>‘qŒÉA“A’IA”Ô†‚͈ê‚‚̃Zƒ‹‚ɘAŒ‹‚·‚é•K—v‚Í•K‚¸‚µ‚à—L‚è‚Ü‚¹‚ñ‚̂Š>—Ⴆ‚Îu“Š“ü•\v‚ÌB7AC7‚Æ•¡”ƒZƒ‹‚É“ü—Í‚µ‚Ä‚à‘åä•v‚Æ‚¢‚¤‚±‚Ƃłµ‚傤‚©H
‘åä•v‚Å‚·A’A‚µUp‚µ‚½ƒ}ƒNƒ‚ł͂»‚Ì—l‚È“ü—͂ɑ΂µ‚ẴR[ƒh‚ɬ‚Á‚Ä‚¢‚é‚̂Šˆê•”ƒR[ƒh‚Ì•ÏX‚ª•K—v‚ɬ‚è‚Ü‚·
>‘qŒÉ`‚ÌŒ‚Å‚¢‚‚‚©•ÏX‚Æ‚±‚¿‚ç‚Ål‚¦‚½‚±‚Æ‚ª‚ ‚è‚Ü‚·‚Ì‚Å‚Æ‚è‚ ‚¦‚¸‚܂Ƃ߂܂·B > > >EŽQÆ‚·‚é‚Ì‚Íu‘qŒÉvu“v‚Ì2—ñ‚¾‚¯‚ÅOKi’I‚ƔԆ‚Í•s—vj >Eƒ}ƒXƒ^[‚ª‘SŠp”¼Šp‚̂ق©‚Éu‚¨‹q—l‘Ήž—pvu‚¨‹q‚³‚ܑΉžv‚ȂǓ¯‚¶“à—e‚ł܂Á‚½‚ˆá‚¤‘‚«•û‚ð‚µ‚Ä‚¢‚é‚à‚Ì‚ª‚ ‚é‚Ì‚ÅA >•ʃV[ƒg‚Éu‘qŒÉE’Iƒ}ƒXƒ^[v‚ðì‚èA“ü—Í‹K‘¥‚Æ–¼‘O‚Ì’è‹`‚ð—˜—p‚µ‚ă}ƒXƒ^[E“Š“ü•\‚Æ‚àƒvƒ‹ƒ_ƒEƒ“ƒŠƒXƒg‚©‚ç‘I‘ð‚·‚é‚æ‚¤‚É‚µ‚悤‚ÆŽv‚¢‚Ü‚·B >‚»‚ê‚ÅA‚Å‚«‚ê‚Î“Š“ü•\‚ÌB7‚Éu‘qŒÉvC7‚Éu“v‚Ì€–Ú‚ðA‚»‚ꂼ‚ê“ü—Í‹K‘¥‚Å“ü‚ê‚æ‚¤‚ÆŽv‚¢‚Ü‚·B
>‚±‚ê‚ňê“xƒ}ƒXƒ^[‚ðƒƒ“ƒe‚µ‚Ä‚©‚狳‚¦‚Ä‚¢‚½‚¾‚¢‚½ƒR[ƒh‚ŃeƒXƒg‚µ‚Ă݂܂·B
‚Å‚ÍA‚»‚Ì—l‚ÈŽd—l‚ŃR[ƒh‚Ì•ÏX‚ð‚µ‚Ü‚·‚©H
(Bun)
BUN—l
>‚»‚Ì—l‚ÈŽd—l‚ŃR[ƒh‚Ì•ÏX‚ð‚µ‚Ü‚·‚©H
‚Í‚¢A‚¨Šè‚¢‚µ‚Ü‚·<(__)>
iႾ‚é‚Üj
ƒ}ƒNƒ‚ÌŽd—l•ÏX‚ð‚µ‚Ü‚µ‚½ u“Š“ü•\v‚ÌB7‚Éu‘qŒÉvAC7‚Éu“v‚ª“ü‚è‚Ü‚·
ˆÈ‰º‚Ìšˆó‚ð•ÏXA’ljÁ‚µ‚ĉº‚³‚¢i‘O‚̃R[ƒh‚̓Rƒƒ“ƒgƒAƒEƒg‚µ‚ÄŽc‚µ‚Ä—L‚è‚Ü‚·j
uSub Sample_3v‚̃vƒƒV[ƒWƒƒ‚Ì’†‚Ì
'“Š“ü•\‚ÉA‚¢‚Ä
With rngResult
'—ñ”‚̎擾
lngColumns = .Offset(, Columns.Count - .Column).End(xlToLeft).Column - .Column
If lngColumns <= 0 Then
strProm = .Parent.Name & "‚Ƀf[ƒ^‚ª—L‚è‚Ü‚¹‚ñ"
GoTo Wayout
End If
'Set”‚ðŽæ“¾
vntSets = .Parent.Range("B2").Value
If Val(vntSets) < 1 Then
strProm = "ƒZƒbƒg”‚ªÝ’肳‚ê‚Ä‚¢‚Ü‚¹‚ñ"
GoTo Wayout
End If
'oŒÉêŠ‚ðŽæ“¾
' vntData = .Parent.Range("B7").Value
' vntPlace = Split(vntData, ":", , vbTextCompare)
' If UBound(vntPlace, 1) < 3 Then
' strProm = "oŒÉꊂ̓ü—Í‚ª³‚µ‚—L‚è‚Ü‚¹‚ñ"
' GoTo Wayout
' End If
vntPlace = .Parent.Range("B7:C7").Value 'š•ÏX
'ÝŒÉID‚ðŽæ“¾
' vntStockID = .Offset(, 1).Resize(, lngColumns).Value
'šu“Š“ü•\v‚ÌÝŒÉID‚ª1—ñ‚ÌꇂɑΈ
vntStockID = .Offset(, 1).Resize(, lngColumns + 1).Value 'š•ÏX
ReDim Preserve vntStockID(1 To 1, 1 To lngColumns) 'š’ljÁ
's”‚̎擾
' lngRows = .Offset(Rows.Count - .Row).End(xlUp).Row - .Row 'šíœ
' If lngRows > 0 Then 'šíœ
' .Offset(1).Resize(lngRows).EntireRow.Delete 'šíœ
' End If 'šíœ
End With
uFunction PlaceCheckv‚ÉA‚¢‚Ä‚Í
Private Function PlaceCheck(vntCheck As Variant, _
lngPos As Long, vntData As Variant) As Boolean
Dim i As Long
'‘qŒÉA“A’IA”Ô†‚ðƒ`ƒFƒbƒN
' For i = 0 To UBound(vntCheck, 1)
For i = 1 To UBound(vntCheck, 2) 'š•ÏX
' If StrComp(vntCheck(i), vntData(lngPos, i + 7), vbTextCompare) <> 0 Then
If StrComp(vntCheck(1, i), vntData(lngPos, i - 1 + 7), vbTextCompare) <> 0 Then 'š•ÏX
Exit For
End If
Next i
'‘S‚Ĉê’v‚Ìê‡
' If i > UBound(vntCheck, 1) Then
If i > UBound(vntCheck, 2) Then 'š•ÏX
'–ß‚è’l‚Æ‚µ‚ÄTrue‚ð•Ô‚·
PlaceCheck = True
End If
End Function
ˆÈã‚Å‚·
(Bun)
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B ƒeƒXƒgƒf[ƒ^‚ÅŽŽ‚µ‚½‚Æ‚±‚ëŽv‚¢’Ê‚è‚ÌŒ‹‰Ê‚ªo‚Ü‚µ‚½B
‚·‚݂܂¹‚ñA‚à‚¤ˆê‚‚¾‚¯‚¨•·‚«‚µ‚½‚¢‚̂ł·‚ªi–{“–‚É‚·‚݂܂¹‚ñj
Ž¿–â‚Ìʼn‚É‘‚¢‚½“ü‰×ƒ}ƒXƒ^[‚̃ŒƒCƒAƒEƒg
@@@A@@@B@@@C@@@@D@@@@E@@@@@F@@@@@G@@@@@@@H@@@@@@@I@@@ 1 “ü‰×ID@“ü‰×“ú@ÝŒÉID@@•i–¼@“ü‰×—\’è”@“ü‰×ŽÀ”@Žg—pŠúŒÀi”Nj@Žg—pŠúŒÀiŒŽj@Žg—pŠúŒÀi“új
‚±‚Ì•À‚Ñ‚ª•Ï‚í‚Á‚½‚èŠÔ‚ɕʂ̃f[ƒ^‚Ì—ñ‚ª‘}“ü‚³‚ꂽê‡A‚ǂ̕”•ª‚ð•ÏX‚·‚ê‚΂悢‚Å‚µ‚傤‚©B
ʼn‚ɃAƒbƒv‚µ‚Ä‚¢‚½‚¾‚¢‚½ƒR[ƒh‚Å‚Í offsetƒvƒƒpƒeƒB‚̈ø”‚ð‚¢‚¶‚Á‚½‚肵‚Ăł«‚½‚̂ł·‚ªA¡‰ñ‚Ì ƒ}ƒXƒ^[‚©‚çì‹Æ—pƒV[ƒg‚Ƀf[ƒ^‚ð“n‚·Û‚ɂǂ̕”•ª‚Ń}ƒXƒ^[‚Ì—ñ‚ðŽw’肵‚Ä‚¢‚é‚Ì‚©‚ª‚æ‚•ª‚©‚è‚Ü‚¹‚ñc
‚·‚݂܂¹‚ñAʼn‚ÉŽ¿–₵‚½Žž‚ÉA•K—v‚ȃf[ƒ^‚Ì—ñ‚ªA`AD—ñi+AI—ñj‚܂Ńoƒ‰ƒoƒ‰‚ÉŽU‚ç‚΂Á‚Ä‚¢‚½‚Ì‚ÅA •K—v‚È—ñ‚¾‚¯‚ð‚܂Ƃ߂½“à—e‚ð‹LÚ‚µ‚½‚ñ‚Å‚·c
ŽÀÛ‚Í
@@@@ã‚Ì—á@¨@ŽÀÛ‚Ì—ñ “ü‰×IDF@@A@@@@@A “ü‰×“úF@@B@@@@@I@@@@ ÝŒÉIDF@@C@@@@@N •i–¼F@@@D@@@@@O “ü‰×—\’è”FE@@@@@P “ü‰×ŽÀ”F@F@@@@@Q Žg—pŠúŒÀ”NFG@@@@@AB Žg—pŠúŒÀŒŽFH@@@@@AC Žg—pŠúŒÀ“úFI@@@@@AD
‚ƂȂÁ‚Ä‚¢‚Ü‚·B •ÏX•”•ª‚¾‚¯‹³‚¦‚Ä‚¢‚½‚¾‚¯‚Ü‚µ‚½‚炱‚¿‚ç‚Åì‹Æ‚µ‚Ü‚·‚Ì‚ÅA‚ǂ̕”•ª‚©‚¾‚¯‚¨‹³‚¦‚¢‚½‚¾‚¯‚Ü‚·‚Å‚µ‚傤‚©B ‘qŒÉE“E“ü‰×Žó•t”Ô†‚Ì—ñ‚͕ςí‚è‚Ü‚¹‚ñB
Œ‹‰Ê“I‚É—]Œv‚ÈŽèŠÔ‚ð‚¨‚©‚¯‚·‚邱‚ƂɂȂÁ‚Ä‚µ‚Ü‚¢A\‚µ–󂲂´‚¢‚Ü‚¹‚ñB
‚æ‚낵‚‚¨Šè‚¢‚¢‚½‚µ‚Ü‚·B
iႾ‚é‚Üj
>‚±‚Ì•À‚Ñ‚ª•Ï‚í‚Á‚½‚èŠÔ‚ɕʂ̃f[ƒ^‚Ì—ñ‚ª‘}“ü‚³‚ꂽê‡A‚ǂ̕”•ª‚ð•ÏX‚·‚ê‚΂悢‚Å‚µ‚傤‚©B
>ʼn‚ɃAƒbƒv‚µ‚Ä‚¢‚½‚¾‚¢‚½ƒR[ƒh‚Å‚Í offsetƒvƒƒpƒeƒB‚̈ø”‚ð‚¢‚¶‚Á‚½‚肵‚Ăł«‚½‚̂ł·‚ªA¡‰ñ‚Ì >ƒ}ƒXƒ^[‚©‚çì‹Æ—pƒV[ƒg‚Ƀf[ƒ^‚ð“n‚·Û‚ɂǂ̕”•ª‚Ń}ƒXƒ^[‚Ì—ñ‚ðŽw’肵‚Ä‚¢‚é‚Ì‚©‚ª‚æ‚•ª‚©‚è‚Ü‚¹‚ñc
>‚·‚݂܂¹‚ñAʼn‚ÉŽ¿–₵‚½Žž‚ÉA•K—v‚ȃf[ƒ^‚Ì—ñ‚ªA`AD—ñi+AI—ñj‚܂Ńoƒ‰ƒoƒ‰‚ÉŽU‚ç‚΂Á‚Ä‚¢‚½‚Ì‚ÅA >•K—v‚È—ñ‚¾‚¯‚ð‚܂Ƃ߂½“à—e‚ð‹LÚ‚µ‚½‚ñ‚Å‚·c
¡‰ñ‚Ìê‡AŒ´‘¥“I‚Ƀ}ƒNƒ‚Ì•ÏX‚Í•K—v—L‚è‚Ü‚¹‚ñ ‚»‚Ì—l‚ÈŽ–‚àŠÜ‚ßAuì‹Æ—pvƒV[ƒg‚ɃtƒBƒ‹ƒ^ƒIƒvƒVƒ‡ƒ“iAdvancedFilterj‚Ńf[ƒ^‚ð’Šo‚µ‚Ä‚¢‚Ü‚· ‚±‚Ìê‡A’ŠoŒ³‚Ìu“ü‰×ƒ}ƒXƒ^v‚Ì—ñŒ©o‚µ‚Æ’Šoæ‚Ìuì‹Æ—pv‚Ì—ñŒ©o‚µ‚ª“¯‚¶•¨‚ª’Šo‚³‚ê‚Ü‚· ˆö‚Á‚ÄAuì‹Æ—pv‚Ì’Šo”͈͂ÆðŒ”͈̗͂ñŒ©o‚µ‚ªu“ü‰×ƒ}ƒXƒ^v‚É–³‚¯‚ê‚΃Gƒ‰[‚ð‹N‚±‚µ‚Ü‚·‚ª —L‚ê‚ÎA‘´ˆ‚Ì—ñŒ©o‚µ‚Ì—ñ‚É’Šo‚³‚ê‚Ü‚· u“ü‰×ƒ}ƒXƒ^v‚Ì—ñ‚ª‘}“ü휂ŗñˆÊ’u‚ª•Ï‚í‚Á‚Ä‚àA—ñŒ©o‚µ‚³‚¦•ÏX‚ª–³‚¯‚ê‚Α´‚̂܂܎g‚¦‚Ü‚· Ÿˆ‚ÅA ˆê”ԑ厖‚ÈŽ–‚Íuì‹Æ—pv‚Ì—ñŒ©o‚µ‚̇”Ô‚Æ—ñˆÊ’u‚ð•ÏX‚µ‚È‚¢Ž–‚Å‚· ‚Ü‚½AŽ„‚Ì•û‚ÅŽwަ‚µ‚½uì‹Æ—pv‚Ì—ñŒ©o‚µ‚ªu“ü‰×ƒ}ƒXƒ^v‚ƈá‚Á‚Ä‚¢‚½ê‡Auì‹Æ—pv‚Ì—ñŒ©o‚µ‚ðu“ü‰×ƒ}ƒXƒ^v‚ɇ‚킹‚ĉº‚³‚¢ ‚±‚Ìê‡AŽè“ü—Í‚Åuì‹Æ—pv‚Ì—ñŒ©o‚µ‚ð•ÏX‚·‚é‚̂ł͖³‚A•K‚¸u“ü‰×ƒ}ƒXƒ^v‚Ì—ñŒ©o‚µ‚ðCopy‚µ‚ĉº‚³‚¢ iƒtƒBƒ‹ƒ^ƒIƒvƒVƒ‡ƒ“‚Í_ŒoŽ¿‚Ȃ̂ÅAlŠÔ‚ªŒ©‚Ĉꌩ“¯‚¶‚ÉŒ©‚¦‚Ä‚à Space‚ª“ü‚Á‚Ä‚¢‚½‚è‚Å‹C‚ª•t‚©‚È‚¢Ž–‚ª—L‚茋‰Ê“I‚É’Šoo—ˆ‚È‚¢ƒgƒ‰ƒuƒ‹‚ªŒ‹\—L‚è‚Ü‚·j
ã‹L‚ªŽç‚ç‚êuì‹Æ—pv‚É’Šo‚ªo—ˆ‚Ä‚¢‚ê‚Αåä•v‚¾‚ÆŽv‚¢‚Ü‚·
(Bun)
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B
‚Å‚«‚Ü‚µ‚½I
–{“–‚É•‚©‚è‚Ü‚µ‚½I
iႾ‚é‚Üj
1‚•·‚«‚½‚¢‚̂ł·‚ªH ‚±‚̃}ƒNƒ‚ªs‚Á‚Ä‚¢‚鈗‚ÌŠT—v‚ª‰ð‚Á‚Ä‚¢‚é‚Ì‚©‚ª•·‚«‚½‚¢‚̂ł·‚ªH ƒR[ƒfƒBƒ“ƒO‹Zp‚ÆŒ¾‚¤ˆÓ–¡‚ł͖³‚AŽè‡‚ÉA‚¢‚Ăł· Ÿ‚ꂪ‰ð‚Á‚ĂȂ¢‚ÆA‚±‚̌ッ“ƒeƒiƒ“ƒX‚Å‚àA‰^—p‚Åà–¾‚·‚é‚É‚µ‚Ăࢂé‚̂łÍH
(Bun)
‚à‚¤Œ©‚Ä‚¢‚È‚¢‚©‚ÈH ‚²‚ß‚ñAŽv‚¢ž‚Ý‚ªŒƒ‚µ‚¢—l‚ŃR[ƒh‚Í‚à‚Á‚ÆŠÈ’P‚Åς݂܂µ‚½ ˆÈ‰º‚Ì—l‚ÉAu Sub Sample_3v‚Ìu'“Š“ü•\‚ÌÝŒÉID‚ð‰¡‚ÉŒ©‚Äs‚Á‚Äv`uNext iv–˜‚ð·‚µ‘Ö‚¦‚ĉº‚³‚¢
'“Š“ü•\‚ÌÝŒÉID‚ð‰¡‚ÉŒ©‚Äs‚Á‚Ä
For i = 1 To lngColumns
'•K—v”‚ð“]‹L
lngCount = vntSets
'o—Í—p”z—ñ‚ð‰Šú‰»
ReDim vntResult(1 To 1)
'“ü‰×ƒ}ƒXƒ^‚ÌÝŒÉID‚ðã‚©‚猩‚Äs‚Á‚Ä
j = 1
'o—Ís”‚ð‰Šú‰»
k = 0
Do Until lngCount <= 0
'ÝŒÉID‚ª“™‚µ‚¢‚È‚ç
If vntStockID(1, i) = vntData(j, 2) Then
'oŒÉꊂ̃`ƒFƒbƒN‚ªTrue‚È‚ç
If PlaceCheck(vntPlace, j, vntData) Then
'o—Ís‚ðXV
k = k + 1
'o—Í—p”z—ñ‚ðŠg’£
ReDim Preserve vntResult(1 To k * 2)
'“ü‰×Žó•t”Ô†‚ð“]‹L
vntResult(k * 2 - 1) = "'" & vntData(j, 1)
'Žg—pŠúŒÀ‚ð“]‹L
vntResult(k * 2) = GetDate(vntData(j, 4), vntData(j, 5), vntData(j, 6))
'•K—v”‚©‚ç݌ɔ‚ðŒ¸ŽZ
lngCount = lngCount - vntData(j, 3)
End If
End If
'“ü‰×ƒ}ƒXƒ^‚ðŒ©‚és‚ðXV
j = j + 1
If j > lngRows Then
'o—Ís‚ðXV
k = k + 1
'o—Í—p”z—ñ‚ðŠg’£
ReDim Preserve vntResult(1 To k * 2)
vntResult(k * 2 - 1) = lngCount & "–‡•s‘«"
Exit Do
End If
Loop
'Œ‹‰Ê‚ðo—Í
rngResult.Offset(1, i).Resize(UBound(vntResult)).Value _
= WorksheetFunction.Transpose(vntResult)
'•s‘«‚Ìꇂ̈—
If InStr(1, vntResult(k * 2 - 1), "–‡•s‘«") Then
rngResult.Offset(k * 2 - 1, i).Font.Color = vbRed
End If
'o—Í‚ÌÅ‘ås”‚ð•Û‘¶
If lngMax < k Then
lngMax = k
End If
Next i
(Bun)
BUN—l
‚·‚݂܂¹‚ñA“y“ú‹x‚݂̂½‚ß¡Œ©‚Ü‚µ‚½c
Žè‡‚̓Rƒƒ“ƒg‚ðׂ©‚‘‚¢‚Ä‚¢‚½‚¾‚¢‚Ä‚¢‚é‚̂ʼn½‚ð‚µ‚Ä‚¢‚é‚©‚Í‘å‘Ì•ª‚©‚è‚Ü‚·B u‰æ–ÊXV‚Ì’âŽ~vuÄŠJv‚Æ‚¢‚¤‚Ì‚ªÅ‰‚Í•ª‚©‚ç‚È‚©‚Á‚½‚̂ł·‚ªGoogle‚ÅŒŸõ‚µ‚Ä‘½•ª—‰ð‚Å‚«‚½‚ÆŽv‚¢‚Ü‚·B
‚Æ‚±‚ë‚ÅA‘O‚É‘‚«‚Ü‚µ‚½u“Š“ü•\‚ª•¡”‘¶Ý‚·‚éê‡v‚̑Έ‚Í
> '“Š“ü•\‚ÌÝŒÉIDƒZƒ‹ˆÊ’u‚ðŠî€‚Æ‚·‚éisŒ©o‚µ‚̃Zƒ‹ˆÊ’uj
> Set rngResult = Worksheets("“Š“ü•\").Range("A14")
>‚ð
> '“Š“ü•\‚ÌÝŒÉIDƒZƒ‹ˆÊ’u‚ðŠî€‚Æ‚·‚éisŒ©o‚µ‚̃Zƒ‹ˆÊ’uj
> Set rngResult = ActiveSheet.Range("A14")
‚±‚Ì•û–@‚Å–â‘è‚È‚¢‚Å‚µ‚傤‚©B
‚ ‚Æ‚à‚¤‚P“_Aã‚©‚çu‚Ps–ڂɃ^ƒCƒgƒ‹si2011”N12ŒŽ“ü‰×ƒ}ƒXƒ^[‚Æ‚¢‚¤‚悤‚Èj‚ð“ü‚ꂽ‚¢v‚ÆŒ¾‚í‚ꂽ‚Ì‚Å
'“ü‰×ƒ}ƒXƒ^[List‚Ìæ“ªƒZƒ‹ˆÊ’u‚ðŠî€‚Æ‚·‚éi擪—ñ‚Ì—ñŒ©o‚µ‚̃Zƒ‹ˆÊ’uj
Set rngList = Worksheets("ƒ}ƒXƒ^[").Range("A2")
‚Æ—ñŒ©o‚µ‚̃Zƒ‹ˆÊ’u‚ðA1¨A2‚É‚µ‚Ă݂܂µ‚½‚ªuƒtƒB[ƒ‹ƒh–¼‚ª–³‚¢‚©–³Œø‚ȃtƒB[ƒ‹ƒh‚Å‚·v‚̃Gƒ‰[‚ɂȂè‚Ü‚·B
‘å•‚È•ÏX‚ª•K—v‚Å‚ ‚ê‚΂±‚ê‚Í’f‚è‚Ü‚·‚ªA‚Ç‚±‚©‘¼‚É•ÏX‚·‚ׂ«‚Æ‚±‚낪‚ ‚é‚̂łµ‚傤‚©H
‚»‚ê‚ÆA‚±‚̌㑽•ªƒ}ƒXƒ^[‚©‚çŽg—p‚µ‚½•ª‚ð·‚µˆø‚ˆ—‚ð‚·‚é‚æ‚¤‚É—v‹‚³‚ê‚邯Žv‚¤‚̂ł·‚ªA ‚»‚ÌÛAlngCount ‚Ì’l‚ðŽQÆ‚·‚邿‚¤‚ÈŒ`‚Å‘åä•v‚Å‚µ‚傤‚©B i‚±‚êˆÈã‚Ì‚¨Šè‚¢‚͂ł«‚È‚¢‚ÆŽv‚¤‚Ì‚ÅÝŒÉXVˆ—‚͉½‚Æ‚©Ž©—Í‚Ål‚¦‚悤‚ÆŽv‚Á‚Ä‚¢‚Ü‚·j
‰½“x‚à\‚µ–󂲂´‚¢‚Ü‚¹‚ñ„ƒ
iႾ‚é‚Üj
>Žè‡‚̓Rƒƒ“ƒg‚ðׂ©‚‘‚¢‚Ä‚¢‚½‚¾‚¢‚Ä‚¢‚é‚̂ʼn½‚ð‚µ‚Ä‚¢‚é‚©‚Í‘å‘Ì•ª‚©‚è‚Ü‚·B
‘´‚ê‚È‚ç‹X‚µ‚¢‚̂ł·‚ª ‚±‚̃}ƒNƒ‚ÍlŠÔ‚ªŽ†‚Ɖ”•Miƒ}ƒXƒ^ƒV[ƒg‚Æ“Š“ü•\j‚ÅŽè‚Ås‚¤•û–@‚𑴂̂܂ÜExcelã‚Ås‚Á‚Ä ‚¢‚镨‚Ȃ̂ÅAƒCƒ[ƒW‚µ‚â‚·‚¢‚©‚ÆŽv‚¢‚Ü‚·
>‚Æ‚±‚ë‚ÅA‘O‚É‘‚«‚Ü‚µ‚½u“Š“ü•\‚ª•¡”‘¶Ý‚·‚éê‡v‚̑Έ‚Í >‚±‚Ì•û–@‚Å–â‘è‚È‚¢‚Å‚µ‚傤‚©B
–â‘è–³‚¢‚ÆŽv‚¢‚Ü‚·
>‚ ‚Æ‚à‚¤‚P“_Aã‚©‚çu‚Ps–ڂɃ^ƒCƒgƒ‹si2011”N12ŒŽ“ü‰×ƒ}ƒXƒ^[‚Æ‚¢‚¤‚悤‚Èj‚ð“ü‚ꂽ‚¢v‚ÆŒ¾‚í‚ꂽ‚Ì‚Å
> '“ü‰×ƒ}ƒXƒ^[List‚Ìæ“ªƒZƒ‹ˆÊ’u‚ðŠî€‚Æ‚·‚éi擪—ñ‚Ì—ñŒ©o‚µ‚̃Zƒ‹ˆÊ’uj
> Set rngList = Worksheets("ƒ}ƒXƒ^[").Range("A2")
>‚Æ—ñŒ©o‚µ‚̃Zƒ‹ˆÊ’u‚ðA1¨A2‚É‚µ‚Ă݂܂µ‚½‚ªuƒtƒB[ƒ‹ƒh–¼‚ª–³‚¢‚©–³Œø‚ȃtƒB[ƒ‹ƒh‚Å‚·v‚̃Gƒ‰[‚ɂȂè‚Ü‚·B
>‘å•‚È•ÏX‚ª•K—v‚Å‚ ‚ê‚΂±‚ê‚Í’f‚è‚Ü‚·‚ªA‚Ç‚±‚©‘¼‚É•ÏX‚·‚ׂ«‚Æ‚±‚낪‚ ‚é‚̂łµ‚傤‚©H
Ÿ‚ê‚ÍAuì‹Æ—pv‚É’Šo‚·‚鎞AƒtƒBƒ‹ƒ^ƒIƒvƒVƒ‡ƒ“iAdvancedFilterj‚ÌƒŠƒXƒg”͈͂ð“ü‰×ƒ}ƒXƒ^‚ÌA1‚Ì
CurrentRegion‚ÅŽæ‚Á‚Ä‚¢‚é‚Ì‚ÅACurrentRegion‚ÌꇃZƒ‹”͈͂ª˜A‘±‚µ‚Ä‚¢‚邯‘´ˆ‚Ü‚ÅList‚Æ‚µ‚Ď󂯎æ‚è‚Ü‚·
ˆö‚Á‚ÄAƒ^ƒCƒgƒ‹‚ð“ü‚ꂽ1s–Ú‚É—ñŒ©o‚µ‚ª—L‚镨‚µ‚Ü‚·‚Ì‚ÅrngList‚ðRange("A2")‚É‚µ‚Ä‚à
Excel‘¤‚ÍRange("A1")‚Éݒ肵‚Ä‚¢‚é‚̂Ɠ¯‚¶‚Æ‘¨‚¦‚Ä‚¢‚éˆ×AuƒtƒB[ƒ‹ƒh–¼‚ª–³‚¢‚©–³Œø‚ȃtƒB[ƒ‹ƒh‚Å‚·v‚̃Gƒ‰[‚ªo‚Ü‚·
Ÿ‚ê‚ð‰ñ”ð‚·‚é‚É‚ÍA1s–ڂɃ^ƒCƒgƒ‹‚ð“ü‚êA1sŠJ‚¯‚Äi2s–Ú‚Í‘S‚ċ󔒂̃Zƒ‹”͈ÍjList‚ª3s–ڂƬ‚é—l‚É‚µ
'“ü‰×ƒ}ƒXƒ^[List‚Ìæ“ªƒZƒ‹ˆÊ’u‚ðŠî€‚Æ‚·‚éi擪—ñ‚Ì—ñŒ©o‚µ‚̃Zƒ‹ˆÊ’uj
Set rngList = Worksheets("ƒ}ƒXƒ^[").Range("A3")
‚ðA3‚ÉŽw’è‚·‚ê‚Αåä•v‚¾‚ÆŽv‚¢‚Ü‚·
>‚»‚ê‚ÆA‚±‚̌㑽•ªƒ}ƒXƒ^[‚©‚çŽg—p‚µ‚½•ª‚ð·‚µˆø‚ˆ—‚ð‚·‚é‚æ‚¤‚É—v‹‚³‚ê‚邯Žv‚¤‚̂ł·‚ªA >‚»‚ÌÛAlngCount ‚Ì’l‚ðŽQÆ‚·‚邿‚¤‚ÈŒ`‚Å‘åä•v‚Å‚µ‚傤‚©B >i‚±‚êˆÈã‚Ì‚¨Šè‚¢‚͂ł«‚È‚¢‚ÆŽv‚¤‚Ì‚ÅÝŒÉXVˆ—‚͉½‚Æ‚©Ž©—Í‚Ål‚¦‚悤‚ÆŽv‚Á‚Ä‚¢‚Ü‚·j
‘´‚Ìê‡AŒ»Ý‚̃}ƒNƒ‚ł͔z—ñ‚É‘g‚Ý“ü‚ê‚Ă͂¢‚Ü‚¹‚ñ‚ªiuì‹Æ—pv‚ł͒Šo‚µ‚Ä‚¢‚Ü‚·j Žg—p‚µ‚½ƒŒƒR[ƒh‚Ìu“ü‰×IDv‚ð—Š‚è‚ÉŒ¸Žc‚ðs‚¤—l‚Å‚· Œ»Ýƒ}ƒNƒ‚Ås‚¤‚Ì‚ªˆê”ԊԈႢ‚ª–³‚¢‚̂ł·‚ªAŒ‹\ƒƒ“ƒhƒNƒTƒC‚©‚àH ˆö‚Á‚ÄA•ʂ̃}ƒNƒì‚Á‚½•û‚ªŠy‚©‚ÈH i‘´‚ÌŽžŽg‚Á‚½uì‹Æ—pv‚Ì’Šos‚ð•ʂȃV[ƒg‚ɕۑ¶‚µ‚Ä‚¨‚¯‚Ίy‚¾‚ÆŽv‚¢‚Ü‚·j
(Bun)
>‚»‚ê‚ÆA‚±‚̌㑽•ªƒ}ƒXƒ^[‚©‚çŽg—p‚µ‚½•ª‚ð·‚µˆø‚ˆ—‚ð‚·‚é‚æ‚¤‚É—v‹‚³‚ê‚邯Žv‚¤‚̂ł·‚ªA
Ÿ‚ê‚ÌŒ‚ÅAUp‚µ‚½ŒãŽv‚¢‚‚¢‚½‚̂ł·‚ªH
u“Š“ü•\v‚Ì‹Lq‚ÌÝ‚é”͈͂̉E‘¤‚͋󂢂ċ‚é‚̂łµ‚傤‚©H ‚à‚µ‹ó‚¢‚Ä‚¢‚é‚È‚çA‚ǂ̗ñˆÈ~‚©’m‚肽‚¢‚̂ł·‚ªH ‘´ˆ‚ÖAŽg‚Á‚½ƒŒƒR[ƒh‚ðu“ü‰×IDv‚ðŠÜ‚ßo—Í‚µ‚Ä‚µ‚Ü‚¦‚ΑP‚¢‚̂łÍH u“ü‰×IDv‚ªƒ}ƒXƒ^‚É‚¨‚¢‚ă†ƒj[ƒN‚ÅList‚ÍA‚±‚Ì€–Ú‚ðKey‚Æ‚µ‚ĸ‡®—ñ‚³‚ê‚Ä‚¢‚é‚È‚ç Œã‚©‚çAƒ}ƒXƒ^‚ÌŒ¸Žc‚ªo—ˆ‚邯Žv‚¢‚Ü‚·‚æ
(Bun)
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B Œ©o‚µ‚ÌŒA—¹‰ð‚¢‚½‚µ‚Ü‚µ‚½B
݌Ɉ—‚̓}ƒNƒ‚ð•Ê‚Éì‚Á‚½•û‚ª‚æ‚¢‚̂ł·‚ËB
>u“Š“ü•\v‚Ì‹Lq‚ÌÝ‚é”͈͂̉E‘¤‚͋󂢂ċ‚é‚̂łµ‚傤‚©H ‚Í‚¢AO—ñˆÈ~‚ªˆóü”͈͊O‚ŋ󂢂Ă¢‚Ü‚·B Žg‚Á‚½ƒŒƒR[ƒh‚Æ‚Íuì‹Æ—pv‚É’Šo‚³‚ꂽ“à—e‚̂悤‚È‚à‚̂łµ‚傤‚©B
ã‚̒ljÁƒŒƒX‚ð‚¢‚½‚¾‚‘O‚Él‚¦‚Ä‚¢‚½ƒR[ƒh«
If u“Š“ü•\‚Ì“ü‰×Žó•t”Ô†v = uì‹Æ—p‚Ì“ü‰×Žó•t”Ô†v Then
@@If u1s–Ú‚Ì݌ɔv- uƒZƒbƒg”v >= 0 Then @@@@݌ɔ = u1s–Ú‚Ì݌ɔv- uƒZƒbƒg”v @@Else @@@@u“Š“ü•\‚ÌŽŸ‚Ìs‚Ì“ü‰×Žó•t”Ô†v = uì‹Æ—p‚ÌŽŸ‚Ìs‚Ì“ü‰×Žó•t”Ô†v Then @@@@݌ɔ = u2s–Ú‚Ì݌ɔv- iu1s–Ú‚Ì݌ɔv- uƒZƒbƒg”vj
F@@@@F@@@@F
‚±‚ñ‚ÈŠ´‚¶‚Å‚µ‚傤‚©B “ª‚ł͉½‚ƂȂŒvŽZ•û–@‚Í•ª‚©‚Á‚Ä‚¢‚é‚̂ł·‚ª‚Ü‚¾‚¤‚Ü‚ƒR[ƒh‚É•\‚¹‚È‚‚Äc ‚¿‚å‚Á‚Æ®—‚µ‚È‚ª‚çl‚¦‚Ă݂܂·B ‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B
iႾ‚é‚Üj
1‚•·‚«‚½‚¢Ž–‚ª—L‚è‚Ü‚·AŒ³‚Ìu“ü‰×ƒ}ƒXƒ^v‚̃ŒƒR[ƒh‚ð“Á’è‚·‚éˆ×‚ÌKey‚Æ‚µ‚Ä Œ³‚Ìu“ü‰×ƒ}ƒXƒ^v‚ª¸‡®—ñ‚³‚ê‚Ä‚¢‚éˆêˆÓiƒ†ƒj[ƒNj‚Ì€–Ú‚ª’m‚肽‚¢‚̂ł·‚ªH u“ü‰×IDv‚Ì€–Ú‚Å‚·‚©u“ü‰×Žó•t”Ô†v‚Å‚·‚©H Ÿ‚ê‚É‚æ‚èƒ}ƒNƒ‚ª•Ï‚í‚Á‚Ä‚«‚Ü‚·iˆêˆÓ‚Ÿ‡®—ñ‚³‚ê‚Ä‚¢‚éKey‚È‚çAKey‚Ì’Tõ‚𑬂‚·‚鎖‚ªo—ˆ‚Ü‚·j
Ž„‚ªŽv‚¢A‚¢‚½A¡‰ñ‚̎臂͈ȉº‚Ì—l‚©‚ÆŽv‚¢‚Ü‚·H
1Au“Š“ü•\v‚ð쬂·‚éƒ}ƒNƒ‚Ì’†‚ÅAu“Š“ü•\v‚ÌO1‚ðŠî€‚Æ‚µ @i—ñŒ©o‚µ‚ðO1:P1‚Æ‚µAƒf[ƒ^‚ðO2ˆÈ‰º‚Æ‚µ‚Ü‚·j @O—ñ‚Éu“ü‰×IDvŽá‚µ‚‚Íu“ü‰×Žó•t”Ô†v‚ð‹LÚ‚µAP—ñ‚ÉŽg—p”—Ê‚ð‹LÚ‚µ‚Ü‚· @Ÿ‚ê‚ÍAu“Š“ü•\v‚»‚Ì•¨‚ªƒ}ƒXƒ^‚̈êˆÓ‚Ÿ‡®—ñ‚³‚ê‚Ä‚¢‚éKey‚Æ–¾Šm‚ÈŽg—p”—Ê‚ðŽ‚Á‚Ä‚¢‚È‚¢ˆ×‚É @u“Š“ü•\v쬎ž‚ÉŸ‚ê‚ð‹L˜^‚µ‚Ä’u‚±‚¤‚ÆŒ¾‚¤Ž–‚Å‚· 2Au“Š“ü•\v‚ÅŽg—p‚³‚ꂽ”—Ê‚ðu“ü‰×ƒ}ƒXƒ^v‚©‚猸ŽZ‚³‚¹‚éƒ}ƒNƒ‚ð쬂µ‚Ü‚· @Ÿ‚ê‚̈Ӗ¡‚ÍAu“Š“ü•\vŒvŽZŽž‚É݌ɕs‘«“™‚ŃZƒbƒg”“™‚ð•ÏX‚µ‚ÄÄŒvŽZ‚·‚éꇂðl—¶‚µ‚Ä @i쬎ž‚É݌Ɉø“–‚Ń}ƒXƒ^‚©‚猸ŽZ‚ðs‚¤‚ÆÝŒÉ‚ª‚ß‚¿‚á‚‚¿‚á‚ɬ‚éj @•ʃ}ƒNƒ‚É‚·‚ê‚ÎAu“Š“ü•\v‚ªŠm’肵‚½Œã‚É–¾Ž¦“I‚É݌Ɉø“–i݌ɂ̌¸ŽZj‚ªs‚¦‚Ü‚· 3A‚±‚̃}ƒNƒ‚ðŽÀs‚·‚邯Au“Š“ü•\vO`P—ñ‚ðã‚©‚猩‚Äs‚Á‚ÄO—ñ‚Ìu“ü‰×IDvŽá‚µ‚‚Íu“ü‰×Žó•t”Ô†v‚ð @u“ü‰×ƒ}ƒXƒ^v‚Ìu“ü‰×IDvŽá‚µ‚‚Íu“ü‰×Žó•t”Ô†v‚©‚ç’Tõ‚µ‚Ü‚·A @’Tõ•û–@‚̓[ƒNƒV[ƒgŠÖ”‚ÌMatchŠÖ”‚Ì“ñ•ª’Tõ‚©Ž©‘O‚Ì“ñ•ª’Tõ‚ðŽg‚¢‚Ü‚· @i‚±‚ÌŽžA’Tõ‚³‚ê‚鑤‚ÌKey‚ª¸‡®—ñ‚³‚ê‚Ä‚¢‚é•K—v‚ª‚ ‚éj @Œ©‚‚©‚ê‚ÎA‚»‚̃ŒƒR[ƒh‚Ìu“ü‰×ŽÀ”v‚©‚çP—ñ‚ÌŽg—p”‚ðŒ¸ŽZ‚µ‚Ü‚· @Ÿ‚ê‚ðAu“Š“ü•\v‚ÌO`P—ñ‚ÌŌ㖘ŒJ‚è•Ô‚µ‚Ü‚· ˆÈã
>ã‚̒ljÁƒŒƒX‚ð‚¢‚½‚¾‚‘O‚Él‚¦‚Ä‚¢‚½ƒR[ƒh« > > >If u“Š“ü•\‚Ì“ü‰×Žó•t”Ô†v = uì‹Æ—p‚Ì“ü‰×Žó•t”Ô†v Then > > >@@If u1s–Ú‚Ì݌ɔv- uƒZƒbƒg”v >= 0 Then >@@@@݌ɔ = u1s–Ú‚Ì݌ɔv- uƒZƒbƒg”v >@@Else >@@@@u“Š“ü•\‚ÌŽŸ‚Ìs‚Ì“ü‰×Žó•t”Ô†v = uì‹Æ—p‚ÌŽŸ‚Ìs‚Ì“ü‰×Žó•t”Ô†v Then >@@@@݌ɔ = u2s–Ú‚Ì݌ɔv- iu1s–Ú‚Ì݌ɔv- uƒZƒbƒg”vj > > >F@@@@F@@@@F > > >‚±‚ñ‚ÈŠ´‚¶‚Å‚µ‚傤‚©B
‚ÉA‚¢‚Ä‚ÍA‰½ˆ‚É‘‚ƒR[ƒh‚©‰ð‚è‚Ü‚¹‚ñ‚ªH 悸Au“Š“ü•\‚Ì“ü‰×Žó•t”Ô†v‚ÆÝ‚è‚Ü‚·‚ªAŒ»ó‚Ìu“Š“ü•\v‚ł͉½ˆ‚É‚àu“ü‰×Žó•t”Ô†v”Ô†‚Ì‹LÚ‚ª—L‚è‚Ü‚¹‚ñ ‚Ü‚½Au݌ɔ = u1s–Ú‚Ì݌ɔv- uƒZƒbƒg”vv‚ÆÝ‚è‚Ü‚·‚ªAuì‹Æ—pv‚ÌList‚Íu“ü‰×ƒ}ƒXƒ^v‚É ’¼ÚƒŠƒ“ƒN‚µ‚Ä‚¢‚È‚¢‚Ì‚ÅAuì‹Æ—pv‚ÌList‚ð‘‚«Š·‚¦‚Ä‚àu“ü‰×ƒ}ƒXƒ^v‚É”½‰f‚µ‚Ü‚¹‚ñ ˆö‚Á‚ÄAu“ü‰×ƒ}ƒXƒ^v‚©‚ç’¼Ú’Tõ‚µ‚È‚¯‚ê‚ά‚è‚Ü‚¹‚ñA u“ü‰×Žó•t”Ô†v‚ªu“ü‰×ƒ}ƒXƒ^v‚̈êˆÓ‚Ÿ‡®—ñ‚³‚ê‚Ä‚¢‚éKey‚Å–³‚¯‚ê‚ÎAu“ü‰×ƒ}ƒXƒ^v‚Ìu“ü‰×Žó•t”Ô†v‚ðã‚©‚燔ԂɌ©‚Äs‚’€ŽŸ’Tõ‚Ƭ‚èA”ñí‚ÉŽžŠÔ‚ªŠ|‚©‚è‚Ü‚· ‚à‚µA•ʃ}ƒNƒ‚Æ‚µ‚Äã‹L‚̃R[ƒh‚ðì‚邯‚µ‚½ê‡‚̃R[ƒh‚à‚Ç‚«‚𑂂ƈȉº‚Ì—l‚ɬ‚è‚Ü‚·
For i=2 to u“Š“ü•\O`P—ñ‚ÌÅIsv
For j = 3 to u“ü‰×ƒ}ƒXƒ^‚ÌÅIsv
If u“ü‰×ƒ}ƒXƒ^‚Ì“ü‰×Žó•t”Ô†v = u“Š“ü•\O—ñ‚Ì“ü‰×Žó•t”Ô†v Then
u“ü‰×ƒ}ƒXƒ^‚Ì“ü‰×ŽÀ”v = u“ü‰×ƒ}ƒXƒ^‚Ì“ü‰×ŽÀ”v - u“Š“ü•\P—ñ‚ÌŽg—p”v
Exit For
End If
Next j
Next i
‚Ƭ‚è‚Ü‚·
(Bun)
> Œ³‚Ìu“ü‰×ƒ}ƒXƒ^v‚ª¸‡®—ñ‚³‚ê‚Ä‚¢‚éˆêˆÓiƒ†ƒj[ƒNj‚Ì€–Ú‚ª’m‚肽‚¢‚̂ł·‚ªH >u“ü‰×IDv‚Ì€–Ú‚Å‚·‚©u“ü‰×Žó•t”Ô†v‚Å‚·‚©H
u“ü‰×IDv‚ªƒ†ƒj[ƒN‚©‚¸‡‚Å®—ñ‚³‚ê‚Ä‚¢‚Ü‚·B “ü‰×Žó•t”Ô†‚àƒ†ƒj[ƒN‚Å‚·‚ªˆê”Ô‚ÌŒ³‚ɂȂÁ‚Ä‚¢‚é‚͓̂ü‰×ID‚Ì•û‚Å‚·B
>‰½ˆ‚É‘‚ƒR[ƒh‚©‰ð‚è‚Ü‚¹‚ñ‚ªH
‚·‚݂܂¹‚ñA•ʂ̃‚ƒWƒ…[ƒ‹‚É‘‚¢‚ăRƒ}ƒ“ƒhƒ{ƒ^ƒ“‚ÅŽÀs‚Æ‚¢‚¤Š´Šo‚Å‚µ‚½B
“Š“ü•\‚Ì“ü‰×Žó•t”Ô†‚̓}ƒNƒŽÀsŒã‚É15s–ÚE17s–Ú`‚Éo‚Ä‚‚é‚̂ł»‚ê‚ðŽQÆ‚µ‚悤‚©‚ÆŽv‚Á‚Ä‚¢‚Ü‚µ‚½B
•ªŠ¨ˆá‚¢‚µ‚Ä‚½‚ñ‚Å‚·‚ËAŽ„c
“Š“ü•\‚ÌOEP—ñ‚Ƀf[ƒ^‚ð‘‚«‚¾‚µ‚Ä‚¢‚•û‚Å‚â‚肽‚¢‚ÆŽv‚¢‚Ü‚·B
iႾ‚é‚Üj
Ž„‚Ì•û‚ÍAXVƒ}ƒNƒ‚Ì쬂Æu“Š“ü•\v쬃}ƒNƒ‚Ì•ÏX‚Ío—ˆ‚Ü‚µ‚½ ‚µ‚©‚µAUp‚·‚鎖‚ÍŠÈ’P‚Å‚·‚ªH Ⴞ‚é‚Ü‚³‚ñ‚Ì•û‚àA¡‰ñ‚ÌXVƒ}ƒNƒ‚Ì쬂Æu“Š“ü•\v쬃}ƒNƒ‚Ì•ÏX‚ÉA‚¢‚Äl‚¦Œ©‚ĉº‚³‚¢ Š®‘S‚ȃR[ƒh‚Å–³‚‚Ä‚àŒ‹\‚Å‚·‚Ì‚ÅAl‚¦•û‚®‚ç‚¢‚Í‘‚¯‚é‚Å‚µ‚傤‚©‚çiƒR[ƒh–³‚‚Ä‚àŒ‹\‚Å‚·j ‘´‚ꂪo‚Ä—ˆ‚½‚çAŽ„‚Ì•û‚àUp‚µ‚Ü‚· ‘´‚Ì•û‚ªƒ}ƒNƒ‚ð—‰ðo—ˆ‚邯Žv‚¢‚Ü‚·‚Ì‚Å
(Bun)
Bun—l —¹‰ð‚¢‚½‚µ‚Ü‚µ‚½B Šæ’£‚Á‚ăR[ƒh‘‚¢‚Ă݂܂·B
‚·‚݂܂¹‚ñA¡ƒeƒXƒg‚µ‚Ä‚¢‚Ä‹C‚ª‚‚¢‚½‚̂ł·‚ªA—Ⴆ‚Îuƒpƒ“ƒtAv‚Æ‚¢‚¤¤•i‚ÅŽg—pŠúŒÀ‚ª“ü‚Á‚Ä‚¢‚é‚à‚Ì‚Æ “ü‚Á‚Ä‚¢‚È‚¢‚à‚Ì‚ª¬Ý‚·‚éê‡A—Dæ“I‚ÉŽg—pŠúŒÀ‚ª“ü‚Á‚Ä‚¢‚é‚à‚Ì‚ª“Š“ü•\‚ÉŽg‚í‚ê‚Ü‚·B
“ü‰×“ú@@Žg—pŠúŒÀ 11/1@@@@**@@ 11/2@@@@** 11/15@@@12/2/20@@©‚±‚ꂪ—Dæ“I‚ÉŽg‚í‚ê‚é 11/20@@@12/3/15
“ü‰×“ú‚ÆŽg—pŠúŒÀ‚Æ—¼•û‚ðŒ©‚é‚͓̂‚¢‚Å‚µ‚傤‚©c
iႾ‚é‚Üj
•ςł·‚ËH ƒR[ƒh“I‚É‚ÍAÝŒÉID¸‡‚ÌŽg—pŠúŒÀi”NAŒŽA“új¸‡‚Ì“ü‰×“ú¸‡‚ÅList‚ð®—ñ‚µ‚Ä‚¢‚Ü‚·‚̂ŠŽg—pŠúŒÀ‚Ì”NAŒŽA“ú‚ª”’l‚Æ‚µ‚Ä“ü‚Á‚Ä‚¢‚ê‚Î
“ü‰×“ú@@Žg—pŠúŒÀ 11/15@@@12/2/20@@©‚±‚ꂪ—Dæ“I‚ÉŽg‚í‚ê‚é 11/20@@@12/3/15 11/1@@@@**@@ 11/2@@@@**
‚±‚¤Œ¾‚¤®—ñó‘ԂƬ‚è‚Ü‚·‚̂Ŏg—pŠúŒÀ‚ÌÝ‚é‚à‚ªŽg‚í‚ê‚锤‚Å‚·‚©H Ž„‚Ì•û‚̃eƒXƒgƒf[ƒ^‚Å‚àã‹L‚Ìó‘Ԃɬ‚è‚Ü‚·
‚µ‚©‚µAŽg—pŠúŒÀ‚Ì”NAŒŽA“ú‚ª•¶Žš—ñ‚Æ‚µ‚Ä“ü‚Á‚Ä‚¢‚éꇂÍ
“ü‰×“ú@@Žg—pŠúŒÀ 11/1@@@@**@@@@©‚±‚ꂪ—Dæ“I‚ÉŽg‚í‚ê‚é 11/2@@@@** 11/15@@@12/2/20 11/20@@@12/3/15
Ⴞ‚é‚Ü‚³‚ñ‚ÌŒ¾‚í‚ê‚é®—ñó‘ԂƬ‚éˆ×AŽg—pŠúŒÀ‚Ì–³‚¢•¨‚ªæ‚ÉŽg‚í‚ê‚鎖‚Ƭ‚è‚Ü‚· Žg—pŠúŒÀ‚Ì”NAŒŽA“ú‚ª•¶Žš—ñ‚©‚ðŠm”F‚µ‚ÄŒ©‚ĉº‚³‚¢
‚à‚µA‚Æ‚µ‚Ä“ü‚Á‚Ä‚¢‚é‚̂ȂçˆÈ‰º‚ð•ÏX‚µ‚ÄŒ©‚ĉº‚³‚¢ Ÿ‚ê‚É‚·‚邯Au®—ñŽž‚É”’l‚ÆŒ©‚È‚¹‚镨‚Í‘S‚Ä”’l‚Æ‚µ‚Ä®—ñ‚·‚邯¬‚è‚Ü‚·v‚Ì‚Å Ž„‚ÌŒ¾‚¤¸‡‚ɬ‚邯Žv‚¢‚Ü‚·
•ÏX‰ÓŠ‚ÍAuPrivate Sub DataSortv’†‚Ì
With rngTop.Parent
.Sort.SortFields.Clear
For i = 0 To UBound(vntKeys, 1)
' .Sort.SortFields.Add Key:=rngTop.Offset(, vntKeys(i)) _
' , SortOn:=xlSortOnValues, Order:=vntOrders(i) _
' , DataOption:=xlSortNormal
.Sort.SortFields.Add Key:=rngTop.Offset(, vntKeys(i)) _
, SortOn:=xlSortOnValues, Order:=vntOrders(i) _
, DataOption:=xlSortTextAsNumbers 'š•ÏX
Next i
‚Ƭ‚èADataOptionƒvƒƒpƒeƒB‚ðxlSortNormal‚©‚çxlSortTextAsNumbers‚É•ÏX‚µ‚Ü‚·
(Bun)
‚ñIAႾ‚é‚Ü‚³‚ñ‚ÌŒ¾‚Á‚Ä‚¢‚éˆÓ–¡‚ðŽæ‚èˆá‚¦‚Ä‚¢‚é‚Ì‚©‚ÈH
Ž„‚Æ‚µ‚Ä‚ÍAŽg—pŠúŒÀ‚Ì—L‚镨‚Ì•û‚ªŽg—pŠúŒÀ‚Ì–³‚¢•¨‚æ‚èæ‚ÉÁ”ï‚·‚é‚Ì‚ª‡“–‚Æl‚¦‚Ü‚·‚ªH ”½‘΂Ȃ̂ł·‚©H
(Bun)
‚·‚݂܂¹‚ñAŽg—pŠúŒÀ‚Ìà–¾‚ª•s‘«‚µ‚Ä‚¢‚Ü‚µ‚½B Œ»ÝŽg—pŠúŒÀ‚Í3—ñ‚ɂ킽‚Á‚Ä‚¢‚Ü‚·‚ª‘S‚Ä”’l‚Å“ü—Í‚³‚ê‚Ä‚¢‚Ü‚·B i“ü‰×Žó•t”Ô†‚Í•¶Žš—ñj
‚±‚̃}ƒXƒ^[‚Í‘½”‚Ìl‚ª“ü—Í‚µ‚Ä‚¢‚邽‚ßA“¯‚¶¤•i‚Å‚àŽg—pŠúŒÀ‚ª•¡”‚ ‚é‚à‚Ì‚ª“¯Žž‚É“ü‚Á‚Ä‚«‚½ê‡A¡‚Ü‚Å
EŽg—pŠúŒÀ‚ð‚±‚Ü‚ß‚É•ª‚¯‚Äi“¯‚¶¤•i‚ð•¡”s‚ɂ킽‚Á‚Äj“ü—Í‚·‚él EŽg—pŠúŒÀ‚ð‚܂Ƃ߂Äi¤•i‚ð1s‚ɂ܂Ƃ߂Äju**/**/**v‚̂悤‚É“ü—Í‚·‚él
‚Æ‚¢‚¤‚悤‚ÉA“ü—Í‹K‘¥‚ª“ˆê‚³‚ê‚Ä‚¢‚È‚©‚Á‚½‚ñ‚Å‚·B ¡Œã‚ÍŽg—pŠúŒÀ‚ð‚±‚Ü‚ß‚É“ü‚ê‚é•ûŒü‚Å“ˆê‚µ‚悤‚ƂȂÁ‚Ä‚¢‚é‚̂ł·‚ªA‚±‚ê‚܂ł̃}ƒXƒ^[‚ªã‹L‚̂悤‚ɂȂÁ‚Ä‚¢‚Ü‚·‚Ì‚ÅAo‰×‚ÌðŒ‚Å‚Í
u“ü‰×“ú‚à‚µ‚‚ÍŽg—pŠúŒÀ‚̂ǂ¿‚ç‚©‚ª‘‚¢•û‚©‚燂Év
‚Æ‚¢‚¤Š´‚¶‚ɂȂè‚Ü‚·B
‚Ȃ̂Å
“ü‰×“ú@@Žg—pŠúŒÀ@Žg‚í‚ê‚é‡”Ô 11/1@@@@**@@@@‡@©‚±‚ꂪ—Dæ“I‚ÉŽg‚í‚ê‚é 11/2@@@@**@@@@‡A 11/15@@@12/2/20@@‡C 11/20@@@12/3/15@@‡D 11/21@@@12/1/31@@‡B
‚±‚̂悤‚É‚µ‚½‚¢‚̂ł·B
Œ¾—t‚ª‘«‚肸‚ÉŒë‰ð‚𵂫‚Ü‚µ‚Ä\‚µ–󂲂´‚¢‚Ü‚¹‚ñc
iႾ‚é‚Üj
’©‚©‚炸‚Á‚Æl‚¦‚Ă܂¸‚Í“Š“ü•\‚ÌOEP—ñ‚Éì‹Æ—ñ‚ð‘‚«‚¾‚·Žd‘g‚Ý‚ðl‚¦‚Ä‚¢‚½‚̂ł·‚ªA
Sub Sample_3 ‚ɉº‹L‚ð’ljÁ
Dim cnt As Long@@@@@©’ljÁ
Dim sagyoGrp As Variant@©’ljÁ
“Š“ü•\‚Éì‹Æ—ñiOEP—ñj‚ðì¬isŒ©o‚µ‚̃Zƒ‹ˆÊ’uj@©’ljÁ
Set sagyoGrp = ActiveSheet.Range("O1")@@@@@@@@©’ljÁ
'ÝŒÉID‚ª“™‚µ‚¢‚È‚ç
If vntStockID(1, i) = vntData(j, 2) Then
'oŒÉꊂ̃`ƒFƒbƒN‚ªTrue‚È‚ç
If PlaceCheck(vntPlace, j, vntData) Then
'o—Ís‚ðXV
k = k + 1
'o—Í—p”z—ñ‚ðŠg’£
ReDim Preserve vntResult(1 To k * 2)
“ü‰×ID‚ð“]‹L@@@@@@@@@@@©’ljÁ
sagyoGrp(cnt,1) = vntData(j, 0)@ ©’ljÁ
Žg—p”—Ê‚ð“]‹L@@@@@@@@@@©’ljÁ
sagyoGrp(cnt,2) = vntData(j, 3)@ ©’ljÁ
'“ü‰×Žó•t”Ô†‚ð“]‹L
vntResult(k * 2 - 1) = "'" & vntData(j, 1)
'Žg—pŠúŒÀ‚ð“]‹L
vntResult(k * 2) = GetDate(vntData(j, 4), vntData(j, 5), vntData(j, 6))
'•K—v”‚©‚ç݌ɔ‚ðŒ¸ŽZ
lngCount = lngCount - vntData(j, 3)
End If
End If
‚Æ‚è‚ ‚¦‚¸‚±‚̂悤‚ÈŠ´‚¶‚©‚ÆŽv‚¢‚Ü‚µ‚½‚ª“–‘R‚Ì”@‚ƒGƒ‰[iƒCƒ“ƒfƒbƒNƒX‚ª—LŒø”͈͂ɂ ‚è‚Ü‚¹‚ñj‚ªo‚Ü‚·B
•Ï”cnt‚ÌŽg‚¢•û‚ª‚¨‚©‚µ‚¢‚悤‚È‹C‚ª‚·‚é‚̂ł·‚ª•Ï”‚ð‚ǂ̂悤‚ɃJƒEƒ“ƒg‚·‚ê‚΂悢‚Ì‚©‚ª•ª‚©‚炸c
O—ñ=vntData(j, 0) i“ü‰×IDj P—ñ=vntData(j, 3) iŽg—p”—Êj
‚Æ‚¢‚¤l‚¦•û‚à‚¨‚©‚µ‚¢‚Å‚µ‚傤‚©c
iႾ‚é‚Üj
1A“]‹L‚·‚éƒR[ƒh‘‚ˆÊ’u‚ÍŠT‚Ë‘P‚¢‚ÆŽv‚¢‚Ü‚· @ˆê‰žA‰½ˆ‚ʼn½‚ðs‚Á‚Ä‚¢‚é‚©—‰ð‚µ‚Ä‚¢‚é—l‚ÅŠæ’£‚Á‚Ă܂·‚Ë 2A•Ï”cnt‚ÌŽg‚¢•û‚ÉA‚¢‚ÄA”z—ñ“à‚ÌsˆÊ’u‚ð•\‚µ‚Ä‚¢‚邯Žv‚¢‚Ü‚·‚ª @•Ï”sagyoGrp‚ª”z—ñ‚Æ‚µ‚ÄŠm•Û‚³‚ê‚Ä‚¢‚È‚¢‚̂ŃGƒ‰[‚ɬ‚邯Žv‚¢‚Ü‚· @“K“–‚Ȉʒu‚ÅuReDim Preserve sagyoGrp(1 To 2, 1 To cnt)v“™‚Æ”z—ñ‚ÌŠm•Û‚ðs‚¢‚Ü‚· @®ã‹L‚ÌuPreservev‚Í”z—ñ‚Ì’†g‚ðŽc‚µ‚Ä”z—ñ‚Ì—v‘f‚ðŠg’£‚·‚鎖‚ð•\‚µ‚Ä‚¢‚Ü‚· @‚Ü‚½AŠg’£‚ÍÅŒã‚ÌŽŸŒ³(cnt)‚̈ʒu‚µ‚©‘ウ‚ç‚ê‚Ü‚¹‚ñ @‚Å‚·‚©‚çA¡‰ñ‚Ìê‡Ao—Í‚·‚éu“ü‰×IDv‚Ì”‚ªŒˆ’肳‚ê‚Ä‚¢‚Ü‚¹‚ñ‚Ì‚ÅA”z—ñ‚ðŠg’£‚µ‚È‚ª‚ç @”z—ñ‚Ì1s–Ú‚Éu“ü‰×IDv‚ð“]‹LA2s–Ú‚ÉuŽg—p”v‚ð“]‹L‚µÅŒão—Í‚·‚鎞‚És—ñ‚ð“ü‚ê‘Ö‚¦‚Äo—Í‚µ‚Ü‚· 3AuO—ñ=vntData(j, 0) i“ü‰×IDjv‚ÉA‚¢‚Ä‚ÍAŠm”F‚̈×uì‹Æ—pv‚Éu“ü‰×IDv‚ð’Šo‚µ‚Ä‚¢‚Ü‚·‚ª @ƒf[ƒ^‚ðŽ‚Á‚Ä—ˆ‚é”z—ñ‚ɂ͑g“ü‚ê‚Ă͂¢‚Ü‚¹‚ñ‚Ì‚ÅvntData(j, 0)‚ÍÝ‚è‚Ü‚¹‚ñAˆö‚Á‚ăGƒ‰[‚Ƭ‚è‚Ü‚· @¡‰ñ‚ÌC³‚Å‚ÍAˆø”‚ð’ljÁ‚µ‚ĕʂ̔z—ñ‚Æ‚µ‚Ď擾‚µ‚Ä‚¢‚Ü‚·
¡‰ñ‚̒ljÁ•ÏX‚Å‚±‚̕ϔ–¼‚ðŽg‚Á‚Ä‚¢‚Ü‚·‚̂Ŋm”F‚µ‚ĉº‚³‚¢ ‚Ü‚½AŽg—p‡‚ÌŒ‚Å‚·‚ªA®—ñ‚·‚é‘O‚É•¶Žš—ñ‚ɕϊ·‚µ‚Ä®—ñ‚ðs‚¤—l‚É‚µ‰ðŒˆo—ˆ‚邯Žv‚¢‚Ü‚·
u“Š“ü•\v쬃}ƒNƒ‚Ì•ÏX‚ÉA‚¢‚Ä‘S•¶‚ðÚ‚¹‚é–ó‚É‚Ís‚©‚È‚¢‚Ì‚ÅV‹K‚̃}ƒNƒˆÈŠO‚Í •ÏX’ljÁ•”‚Ì‚ÝÚ‚¹‚Ü‚·(šˆó) ‘OŒãŠÖŒW‚ð‘P‚Œ©‚ĒljÁ•ÏX‚µ‚ĉº‚³‚¢iŽg—p‡‚ÌŒ‚à‘g‚Ý“ü‚ê‚ÄÝ‚è‚Ü‚·j
¡‚܂łÌuPublic Sub Sample_3()v‚ðSubƒ‹[ƒeƒBƒ“ƒvƒƒV[ƒWƒƒ‚©‚çˆø”‚ðŽ‚Á‚½FunctionƒvƒƒV[ƒWƒƒ‚É•ÏX‚µ‚Ü‚·
uPublic Sub Sample_3()v‚ðuPrivate Function DrawUp(wksShip As Worksheet) As Booleanv‚É•ÏX uEnd Subv‚ðuEnd Functionv‚É•ÏXiŽ©“®“I‚És‚í‚ê‚é‚©‚àHj •ÏX‚µ‚½uPrivate Function DrawUp(wksShip As Worksheet) As Booleanv‚Ì’†g‚̒ljÁ•ÏX•”išˆój
Dim vntStockID As Variant
Dim vntResult As Variant
Dim lngMax As Long
Dim rngSearch As Range 'š’ljÁ
Dim vntSearch As Variant 'š’ljÁ
Dim strForm As String 'š’ljÁ
Dim blnLack As Boolean 'š’ljÁ
Dim cnt As Long 'š’ljÁ
Dim sagyoGrp() As Variant 'š’ljÁ
Dim strProm As String
'ì‹Æ—pƒV[ƒg‚Ì’Šo”ÍˆÍ‚Ìæ“ªƒZƒ‹ˆÊ’u(ƒ}ƒXƒ^‚©‚ç•K—vƒf[ƒ^‚ð’Šo)
Set rngWork = Worksheets("ì‹Æ—p").Range("A1")
'šu“Š“ü•\v‚É‘‚«ž‚Þu“ü‰×ƒ}ƒXƒ^v‚Ì’TõKey‚ÌŠî€æ“ªƒZƒ‹ˆÊ’u
Set rngSearch = rngResult.Parent.Range("O1") 'š’ljÁ
'‰æ–ÊXV‚ð’âŽ~
Application.ScreenUpdating = False
With rngSearch 'š’ljÁ
'u“ü‰×ƒ}ƒXƒ^vXVƒf[ƒ^‚Ìs”‚̎擾
lngRows = .Offset(Rows.Count - .Row).End(xlUp).Row - .Row 'š’ljÁ
'XVƒf[ƒ^‚ÌÁ‹Ž
If lngRows > 0 Then 'š’ljÁ
If MsgBox("‘O‰ñ‚ÌXV‚ªs‚í‚ê‚Ä‚¢‚Ü‚¹‚ñA‚±‚̂܂܎Às‚µ‚Ü‚·‚©H", _
vbInformation + vbYesNo + vbDefaultButton2) = vbYes Then 'š’ljÁ
.Offset(1).Resize(lngRows, 2).ClearContents 'š’ljÁ
Else 'š’ljÁ
'¦ƒf[ƒ^XV‚ªs‚í‚ê‚Ä‚¢‚È‚¢ê‡A–ß‚è’l‚ðTrue‚É
DrawUp = True 'š’ljÁ
strProm = "ƒ}ƒXƒ^‚̃f[ƒ^XV‚ðs‚Á‚ĉº‚³‚¢" 'š’ljÁ
GoTo Wayout 'š’ljÁ
End If 'š’ljÁ
End If 'š’ljÁ
End With 'š’ljÁ
'“Š“ü•\‚ÉA‚¢‚Ä
With rngResult
'“ü‰×ƒ}ƒXƒ^[‚©‚ç•K—vƒf[ƒ^‚ðŽæ“¾
' If Not GetData(vntData, rngList, rngWork, vntStockID) Then
If Not GetData(vntData, rngList, rngWork, vntStockID, vntSearch) Then 'š•ÏX
strProm = "ƒf[ƒ^‚̎擾‚ªo—ˆ‚Ü‚¹‚ñAÝŒÉIDAoŒÉꊓ™‚ðŠm”F‚µ‚ĉº‚³‚¢"
GoTo Wayout
End If
'ƒZƒ‹‘Ž®‚ðŽæ“¾
strForm = rngWork.Offset(1).NumberFormat 'š’ljÁ
'“ü‰×Žó•t”Ô†‚ð“]‹L
vntResult(k * 2 - 1) = "'" & vntData(j, 1)
'Žg—pŠúŒÀ‚ð“]‹L
vntResult(k * 2) = GetDate(vntData(j, 4), vntData(j, 5), vntData(j, 6))
'šXV—pƒf[ƒ^‚Ì“]‹LˆÊ’u‚ðXV
cnt = cnt + 1 'š’ljÁ
'šXV—pƒf[ƒ^‚ðŠi”[‚·‚é”z—ñ‚ðŠg’£
ReDim Preserve sagyoGrp(1 To 2, 1 To cnt)
'šXV—pƒf[ƒ^”z—ñ‚Éu“ü‰×IDv‚ð“]‹L
sagyoGrp(1, cnt) = vntSearch(j, 1)
If lngCount - vntData(j, 3) >= 0 Then 'š’ljÁ
'š•K—v”‚æ‚è݌ɂª‚È‚¢‚©“¯‚¶ê‡
sagyoGrp(2, cnt) = vntData(j, 3) 'š’ljÁ
Else 'š’ljÁ
'š•K—v”‚æ‚è݌ɂª‘½‚¢ê‡
sagyoGrp(2, cnt) = lngCount
End If 'š’ljÁ
'•K—v”‚©‚ç݌ɔ‚ðŒ¸ŽZ
lngCount = lngCount - vntData(j, 3)
End If
'Œ‹‰Ê‚ðo—Í
rngResult.Offset(1, i).Resize(UBound(vntResult)).Value _
= WorksheetFunction.Transpose(vntResult)
'•s‘«‚Ìꇂ̈—
If InStr(1, vntResult(k * 2 - 1), "–‡•s‘«") Then
rngResult.Offset(k * 2 - 1, i).Font.Color = vbRed
blnLack = True 'š’ljÁ
End If
'o—Í‚ÌÅ‘ås”‚ð•Û‘¶
If lngMax < k Then
'“ü‰×“úAŽg—pŠúŒÀ‚ð‘‚«ž‚Þ
ReDim vntResult(1 To 2, 1 To 1)
vntResult(1, 1) = "“ü‰×“ú"
vntResult(2, 1) = "Žg—pŠúŒÀ"
For i = 0 To lngMax - 1
rngResult.Offset(i * 2 + 1).Resize(2).Value = vntResult
Next i
With rngSearch.Offset(1) 'š’ljÁ
'š1—ñ–ڂ̃Zƒ‹‘Ž®‚ð’Šo‚³‚ꂽ—ñ“¯‚¶‚ÉÝ’è
.Resize(cnt).NumberFormat = strForm 'š’ljÁ
'šO`P—ño—Í(”z—ñ‚Ìs—ñ‚ð“ü‚ê‘Ö‚¦‚Ä)
.Resize(cnt, 2).Value = WorksheetFunction.Transpose(sagyoGrp) 'š’ljÁ
End With 'š’ljÁ
'݌ɕs‘«‚ª¶‚¶‚Ä‚¢‚é‚È‚ç
If blnLack Then 'š’ljÁ
strProm = "݌ɕs‘«‚ªo‚Ä‚¢‚Ü‚·‚Ì‚ÅXVƒf[ƒ^Á‹Ž‚³‚ê‚Ü‚µ‚½" 'š’ljÁ
rngSearch.Offset(1).Resize(cnt, 2).ClearContents 'š’ljÁ
Else 'š’ljÁ
strProm = "ˆ—‚ªŠ®—¹‚µ‚Ü‚µ‚½"
'¦ƒf[ƒ^XV‚ªs‚í‚ê‚Ä‚¢‚È‚¢ê‡A–ß‚è’l‚ðTrue‚É
DrawUp = True 'š’ljÁ
End If 'š’ljÁ
Wayout:
Set rngResult = Nothing
Set rngWork = Nothing
Set rngSearch = Nothing 'š’ljÁ
ˆÈã
ŽŸ‚ÉAˆÈ‰º‚̃vƒƒV[ƒWƒƒ‚Ɉø”’ljÁ
Private Function GetData(vntData As Variant, rngList As Range, _
rngWork As Range, vntStockID As Variant) As Boolean
‚ð
Private Function GetData(vntData As Variant, rngList As Range, _
rngWork As Range, vntStockID As Variant, vntSearch As Variant) As Boolean 'š•ÏX
‚ÆuvntSearch As Variantv‚ÆŒ¾‚¤ˆø”‚ð’ljÁ‚µ‚Ü‚· ‚±‚̈ø”‚ªuì‹Æ—pv‚©‚çu“ü‰×IDv‚ðŽæ“¾‚µ‚Ä—ˆ‚Ü‚·
‚»‚Ì’†‚Ìšˆó‚ð•ÏX’ljÁ
'ì‹Æ—pƒV[ƒg‚ÉA‚¢‚Ä
With rngWork
's”‚̎擾
lngRows = .Offset(Rows.Count - .Row).End(xlUp).Row - .Row
If lngRows <= 0 Then
GoTo Wayout
End If
'šŽg—pŠúŒÀi”NAŒŽA“új‚ð•¶Žš—ñ‚É•ÏX
vntDate = .Offset(1, 4).Resize(lngRows, 3).Value 'š’ljÁ
For i = 1 To lngRows 'š’ljÁ
For j = 1 To 3 'š’ljÁ
If IsNumeric(vntDate(i, j)) Then 'š’ljÁ
vntDate(i, j) = Right("00" & vntDate(i, j), 2) 'š’ljÁ
End If 'š’ljÁ
Next j 'š’ljÁ
Next i 'š’ljÁ
'šƒZƒ‹‘Ž®‚ð•¶Žš—ñ‚É•ÏX
.Offset(1, 4).Resize(lngRows, 3).NumberFormat = "@" 'š’ljÁ
'š•¶Žš—ñ‚É‚µ‚½Žg—pŠúŒÀi”NAŒŽA“új‚ðƒV[ƒgo—Í
.Offset(1, 4).Resize(lngRows, 3).Value = vntDate 'š’ljÁ
'ÝŒÉID‡‚ÌŽg—pŠúŒÀi”NAŒŽA“új‡‚Ì“ü‰×“ú‡‚ÅList‚ð®—ñ
'A—ñ‚©‚ç®—ñ‚·‚é—ñ‚Ì—ñOffset‚ðŽw’è,‘S‚ĸ‡‚Å
DataSort .Offset(1).Resize(lngRows, 11), Array(2, 4, 5, 6, 1), _
Array(xlAscending, xlAscending, xlAscending, _
xlAscending, xlAscending)
'‘S—ñƒf[ƒ^‚ð”z—ñ‚Ɏ擾
vntData = .Offset(1, 1).Resize(lngRows + 1, 10).Value
'š”z—ñ‚Éu“ü‰×IDv‚ðŽæ“¾
vntSearch = .Offset(1).Resize(lngRows + 1).Value 'š’ljÁ
End With
ˆÈã
ˆÈ‰ºAV‹Kƒ}ƒNƒ ŽŸ‚ÉuPrivate Function DrawUp(wksShip As Worksheet) As Booleanv‚ðŒÄ‚Ño‚·ƒvƒƒV[ƒWƒƒ‚ð’ljÁ “¯‚¶•W€ƒ‚ƒWƒ…[ƒ‹‚É‹Lq
Public Sub Main()
' u“Š“ü•\v쬃}ƒNƒ
Dim wksObject As Worksheet
'ì•\‚·‚éu“Š“ü•\vƒV[ƒg‚ðÝ’è
Set wksObject = ActiveSheet
'u“Š“ü•\v‚ð쬂µ‚ă}ƒXƒ^XV‚ªs‚í‚ê‚Ä‚¢‚È‚¢ê‡
If DrawUp(wksObject) Then
'XVƒ}ƒNƒ‚ðŒÄ‚Ño‚·
DataUpDate wksObject
End If
Set wksObject = Nothing
End Sub
ˆÈã ŽŸ‚ÉAƒ}ƒXƒ^XVƒ}ƒNƒ‚ðì¬ “¯‚¶•W€ƒ‚ƒWƒ…[ƒ‹‚É‹Lq
Public Sub MasterUpDate()
' ƒ}ƒXƒ^XVƒ}ƒNƒ
DataUpDate ActiveSheet
End Sub
Private Sub DataUpDate(wksShip As Worksheet)
'u“ü‰×ƒ}ƒXƒ^v‚Ì’TõKey‚Ƭ‚é—ñiŠî€ƒZƒ‹‚©‚ç‚Ì—ñOffset:A—ñj
Const clngKey As Long = 0
'u“ü‰×ƒ}ƒXƒ^v‚ÌXV‚·‚é—ñiŠî€ƒZƒ‹‚©‚ç‚Ì—ñOffset:Q—ñj
Const clngItem As Long = 16
Dim i As Long
Dim lngFound As Long
Dim lngRows As Long
Dim rngList As Range
Dim rngResult As Range
Dim vntData As Variant
Dim vntValue As Variant
Dim strProm As String
'List‚Ìæ“ªƒZƒ‹ˆÊ’u‚ðŠî€‚Æ‚·‚éi擪—ñ‚Ì—ñŒ©o‚µ‚̃Zƒ‹ˆÊ’uj
Set rngList = wksShip.Range("O1")
'Œ‹‰Êo—Í‚Ìæ“ªƒZƒ‹ˆÊ’u‚ðŠî€‚Æ‚·‚éi擪—ñ‚Ì—ñŒ©o‚µ‚̃Zƒ‹ˆÊ’uj
Set rngResult = Worksheets("“ü‰×ƒ}ƒXƒ^[").Range("A3")
With rngList
's”‚̎擾
lngRows = .Offset(Rows.Count - .Row).End(xlUp).Row - .Row
If lngRows <= 0 Then
strProm = .Parent.Name & " ‚ÍXVς݂ł·"
GoTo Wayout
End If
'O`P—ñƒf[ƒ^‚ð”z—ñ‚Ɏ擾
vntData = .Offset(1).Resize(lngRows, 2).Value
End With
'“ü‰×ƒ}ƒXƒ^‚ÌXVŠm”F
If MsgBox("“ü‰×ƒ}ƒXƒ^‚ÌXV‚ðs‚¢‚Ü‚·AXV‚ðs‚¤‚ÆŒ³‚ɂ͖߂¹‚Ü‚¹‚ñ", _
vbInformation + vbOKCancel + vbDefaultButton2) = vbCancel Then
strProm = "ƒ}ƒXƒ^XV‚ðs‚킸‚ÉI—¹‚µ‚Ü‚µ‚½"
GoTo Wayout
End If
'‰æ–ÊXV‚ð’âŽ~
Application.ScreenUpdating = False
With rngResult
's”‚̎擾
lngRows = .Offset(Rows.Count - .Row, clngKey).End(xlUp).Row - .Row
If lngRows <= 0 Then
strProm = .Parent.Name & "@‚Ƀf[ƒ^s‚ª—L‚è‚Ü‚¹‚ñ"
GoTo Wayout
End If
'”O‚̈×Au“ü‰×ƒ}ƒXƒ^v‚ðA—ñ‚ðKey‚Æ‚µ‚ĸ‡®—ñ
DataSort Intersect(.CurrentRegion, .CurrentRegion.Offset(1)), Array(0), Array(xlAscending)
End With
'O—ñ‚ÉA‚¢‚ÄÅIs‚܂ŌJ‚è•Ô‚µ
For i = 1 To UBound(vntData, 1)
'¦u“ü‰×ƒ}ƒXƒ^v‚ÌA—ñ‚Éu“Š“ü•\v‚ÌO—ñ‚ª—L‚é‚©’Tõ(A—ñ‚ª•¶Žš—ñ‚Ìê‡j
lngFound = RowSearch(vntData(i, 1), rngResult.Offset(1, clngKey).Resize(lngRows))
'¦u“ü‰×ƒ}ƒXƒ^v‚ÌA—ñ‚Éu“Š“ü•\v‚ÌO—ñ‚ª—L‚é‚©’Tõ(A—ñ‚ª”’l‚Ìê‡j
' lngFound = RowSearch(CLng(vntData(i, 1)), rngResult.Offset(1, clngKey).Resize(lngRows))
'’Tõ‚ªŽ¸”s‚µ‚½ê‡AlngFound‚É0‚ª‹A‚é
If lngFound > 0 Then
'ƒf[ƒ^‚ðXV
vntValue = rngResult.Offset(lngFound, clngItem).Value
rngResult.Offset(lngFound, clngItem).Value = vntValue - vntData(i, 2)
End If
Next i
'XVƒf[ƒ^‚ðÁ‹Ž
With rngList
.Offset(1).Resize(UBound(vntData, 1), 2).ClearContents
End With
With rngResult
.Parent.Parent.Activate
.Parent.Activate
.Activate
End With
strProm = "ƒ}ƒXƒ^XVˆ—‚ªŠ®—¹‚µ‚Ü‚µ‚½"
Wayout:
'‰æ–ÊXV‚ðÄŠJ
Application.ScreenUpdating = True
Set rngList = Nothing
Set rngResult = Nothing
MsgBox strProm, vbInformation
End Sub
Private Function RowSearch(vntKey As Variant, _
rngScope As Range, _
Optional lngOver As Long) As Long
Dim vntFind As Variant
'Match‚É‚æ‚é“ñ•ª’Tõ
vntFind = Application.Match(vntKey, rngScope, 1)
'‚à‚µAƒGƒ‰[‚Å–³‚¢‚È‚ç
If Not IsError(vntFind) Then
'‚à‚µAKey’l‚Æ’TõˆÊ’u‚Ì’l‚ª“™‚µ‚¢‚È‚ç
If vntKey = rngScope(vntFind).Value Then
'–ß‚è’l‚Æ‚µ‚ÄAsˆÊ’u‚ð‘ã“ü
RowSearch = vntFind
End If
'Key’l‚ð’´‚¦‚éŬ’l‚Ì‚ ‚és
lngOver = vntFind + 1
Else
lngOver = 1
End If
End Function
ˆÈã
‘´X‚ÌŽÀs‚ÍAuSub Mainv‚ÆuSub MasterUpDatev‚Ås‚¢‚Ü‚· ®Au“ü‰×ƒ}ƒXƒ^v‚ÌA—ñi“ü‰×IDj‚ª•¶Žš—ñ‚ÌꇂƔ’l‚ÌꇂÅuSub DataUpDatev‚Ì’†‚Ì
'¦u“ü‰×ƒ}ƒXƒ^v‚ÌA—ñ‚Éu“Š“ü•\v‚ÌO—ñ‚ª—L‚é‚©’Tõ(A—ñ‚ª•¶Žš—ñ‚Ìê‡j
lngFound = RowSearch(vntData(i, 1), rngResult.Offset(1, clngKey).Resize(lngRows))
'¦u“ü‰×ƒ}ƒXƒ^v‚ÌA—ñ‚Éu“Š“ü•\v‚ÌO—ñ‚ª—L‚é‚©’Tõ(A—ñ‚ª”’l‚Ìê‡j
lngFound = RowSearch(CLng(vntData(i, 1)), rngResult.Offset(1, clngKey).Resize(lngRows))
‚ªˆá‚¤‚̂ŋC‚ð•t‚¯‚ĉº‚³‚¢
®A‘S•”‚̒ljÁ•ÏX‚ªI‚í‚Á‚½‚çAVBE‚ÌuƒfƒoƒbƒOv¨uVBAProject‚̃Rƒ“ƒpƒCƒ‹v‚ðs‚¢ ƒGƒ‰[‚ªo‚½‚çA‚à‚¤ˆê“xŠm”F‚µC³A Ä“xuVBAProject‚̃Rƒ“ƒpƒCƒ‹v‚ðs‚¢ƒGƒ‰[‚ªo‚È‚‚È‚é‚܂ş‚ê‚ðŒJ‚è•Ô‚µ‚ĉº‚³‚¢ ŽŸ‚ÉAƒeƒXƒg‚ÉÛ‚µƒ}ƒXƒ^“™‚̃oƒbƒNƒAƒbƒv‚ð•K‚¸Žæ‚Á‚Ä‚©‚çƒeƒXƒg‚µ‚ĉº‚³‚¢
(Bun)
‘‚«–Y‚ê‚Ü‚µ‚½ uPrivate Sub DataSortv’†‚̂ŠuDataOption:=xlSortTextAsNumbers 'š•ÏXv‚Æ‚µ‚ĉº‚³‚¢‚ÆŒ¾‚¢‚Ü‚µ‚½‚ª uDataOption:=xlSortNormalv‚É–ß‚µ‚Ä’u‚¢‚ĉº‚³‚¢ –ß‚³‚È‚¢‚ÆAŒ‹‰Ê‚͈ȑO‚ƕςí‚ç‚È‚¬‚è‚Ü‚·
(Bun)
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B
ƒR[ƒh‚ð’ljÁ•ÏX‚µ‚ăRƒ“ƒpƒCƒ‹‚ðs‚Á‚Ă݂܂µ‚½‚ªA
DrawUp = True
‚̂Ƃ±‚ë‘S‚Ä‚Åu”z—ñ‚ɂ͊„‚è“–‚Ä‚ç‚ê‚Ü‚¹‚ñv‚Æ‚¢‚¤ƒGƒ‰[‚ªo‚Ü‚·B
ŒŸõ‚µ‚Ă݂½‚Æ‚±‚ëA—Ⴆ‚Î
@@Dim test() As String
‚Æ‚·‚ׂ«‚Æ‚±‚ë‚ð
@@Dim test(10) As String
‚̂悤‚É‚µ‚Ä‚¢‚éꇂÉo‚éA‚Æ‚¢‚¤‚±‚Æ‚ª‘‚¢‚Ä‚ ‚Á‚½‚Ì‚ÅA
DrawUp(wksShip As Worksheet) As Boolean()
‚±‚ê‚ð
Private Function DrawUp() As Boolean()
Dim wksShip As Worksheet
‚±‚̂悤‚É•ªŠ„‚µ‚Ă݂܂µ‚½‚ª‚â‚Í‚èu”z—ñ‚É‚Í`v‚̃Gƒ‰[‚ɂȂè‚Ü‚·B
Boolean ‚Ì•”•ª‚ð•Ï‚¦‚Ä‚à“¯‚¶ƒGƒ‰[‚Å‚µ‚½B
‚Æ‚è‚ ‚¦‚¸
DrawUp = True
‚ð‘S‚ăRƒƒ“ƒgƒuƒƒbƒN‚É‚µ‚ÄÄ“xƒRƒ“ƒpƒCƒ‹‚Å
Private Function GetData(vntData As Variant, rngList As Range, _
rngWork As Range, vntStockID As Variant, vntSearch As Variant) As Boolean
‚ÅuvntDatev‚ª’è‹`‚³‚ê‚Ä‚¢‚È‚¢‚̃Gƒ‰[‚ªo‚½‚Ì‚Å
Dim vntDate As Variant
‚ð’ljÁ‚µ‚Ü‚µ‚½B
‚·‚邯¡“x‚Í Public Sub Main() @@If DrawUp(wksObject) Then ‚±‚ê‚ÌuDrawUpv‚ÅuŒ^‚ªˆê’v‚µ‚Ü‚¹‚ñv‚̃Rƒ“ƒpƒCƒ‹ƒGƒ‰[‚ªo‚Ü‚·B ‚±‚±‚ð‚Æ‚è‚ ‚¦‚¸ Dim DrawUp As Variant@‚Æ‚µ‚Ă݂܂µ‚½B
‚»‚±‚ÅuVBAProject‚̃Rƒ“ƒpƒCƒ‹v‚ªƒOƒŒ[ƒAƒEƒg‚ɂȂÁ‚½‚̂ŎÀs‚µ‚Ă݂½‚Æ‚±‚ëiDrawUp = True ‚̓Rƒƒ“ƒgƒuƒƒbƒN‚̂܂Üj ‚â‚Í‚è@If DrawUp(wksObject) Then@‚ÅuŒ^‚ªˆê’v‚µ‚Ü‚¹‚ñv‚̃Gƒ‰[‚ɂȂè‚Ü‚·B
‚±‚±‚ÌIFƒXƒe[ƒgƒƒ“ƒg‚łǂ¤‚µ‚Ä‚àŽ~‚Ü‚é‚Ì‚Åæ‚Éi‚߂܂¹‚ñc
DrawUp ‚Ì2‚‚̃Gƒ‰[‚ɂ‚¢‚ăqƒ“ƒg‚Å‚¢‚¢‚̂ł¨‹³‚¦‚‚¾‚³‚¢c
iႾ‚é‚Üj
>ƒR[ƒh‚ð’ljÁ•ÏX‚µ‚ăRƒ“ƒpƒCƒ‹‚ðs‚Á‚Ă݂܂µ‚½‚ªA > > > DrawUp = True > > >‚̂Ƃ±‚ë‘S‚Ä‚Åu”z—ñ‚ɂ͊„‚è“–‚Ä‚ç‚ê‚Ü‚¹‚ñv‚Æ‚¢‚¤ƒGƒ‰[‚ªo‚Ü‚·B
‚±‚ÌuDrawUpv‚ĉ½‚©‰ð‚è‚Ü‚·‚©H
uPublic Sub Sample_3()v‚ðuPrivate Function DrawUp(wksShip As Worksheet) As Booleanv‚É•ÏX
‚µ‚ÄÝ‚è‚Ü‚· ‚±‚±‚Å‚µ‚½‚¢Ž–‚ÍAuPublic Sub Sample_3()v‚ÆŒ¾‚¤ƒOƒ[ƒoƒ‹i‚ǂ̃‚ƒWƒ…[ƒ‹‚©‚ç‚àŽQƉ”\j‚Å ˆø”‚ðŽ‚½‚È‚¢SubƒvƒƒV[ƒWƒƒ‚ðuPrivate Function DrawUp(wksShip As Worksheet) As Booleanv‚ÆŒ¾‚¤ ƒ‚ƒWƒ…[ƒ‹ƒŒƒxƒ‹iŸ‚ꂪ‘‚©‚ê‚Ä‚¢‚郂ƒWƒ…[ƒ‹‚©‚炾‚¯ŽQƉ”\j‚ňø”‚ðŽ‚Á‚½FunctionƒvƒƒV[ƒWƒƒ‚É ƒvƒƒV[ƒWƒƒ–¼‚ð•ÏX‚µ‚ĉº‚³‚¢‚ÆŒ¾‚¤Ž–‚Å‚· FunctionƒvƒƒV[ƒWƒƒ‚Í–ß‚è’l‚ÆŒ¾‚¤•¨‚ðŒÄ‚Ño‚µŒ³‚ɕԂµ‚Ü‚·A—Ⴆ‚΃[ƒNƒV[ƒgŠÖ”‚ÌSUMŠÖ”‚Æ“¯‚¶‚Å‚· ‚±‚Ìê‡A=SUM(B1:D1)‚Æ‘‚©‚ê‚Ü‚·‚ªŠ‡ŒÊ‚Ì’†‚ÌB1:D1‚ªˆø”‚Å‚±‚Ì”Ž®‚ª‘‚©‚ê‚Ä‚¢‚éƒZƒ‹‚É‹A‚Á‚Ä‚‚é B1+C+D1‚ÌŒ‹‰Ê‚ª–ß‚è’l‚Ƭ‚è‚Ü‚· ‹l‚Ü‚èAuPrivate Function DrawUp(wksShip As Worksheet) As Booleanv‚ÍADrawUpŠÖ”‚͈ø”‚É ƒ[ƒNƒV[ƒgŒ^‚̕ϔwksShip‚ðŽ‚¿ABooleanŒ^‚Ì–ß‚è’l‚ð•Ô‚µ‚Ü‚· ˆø”wksShip‚Ƀ[ƒNƒV[ƒgŽ‚½‚¹Ÿ‚ê‚ðŒÄ‚Ño‚·‚Æ“à•”‚Å‚ÍAFX‚Ȉ—‚ðs‚¢Œ‹‰Ê‚Æ‚µ‚ÄŠÖ”–¼DrawUp‚É TrueŽá‚µ‚‚ÍFalse‚ð–ß‚è’l‚Æ‚µ‚ĕԂµ‚Ü‚· ‚±‚Ì–ß‚è’l‚ð•Ô‚·‘€ì‚ªuDrawUp = Truev‚Å‚· Ÿˆ‚ÅAu”z—ñ‚ɂ͊„‚è“–‚Ä‚ç‚ê‚Ü‚¹‚ñv‚Æo‚Ä‚‚é‚Ì‚ÍAFunction‚Ì’è‹`‚Å–ß‚è’l‚ÌŒ^‚ðŽw’肵‚Ä‚¢‚é u) As Booleanv‚ªˆá‚Á‚Ä‚¢‚é‚Ì‚ªŒ´ˆö‚¾‚ÆŽv‚¢‚Ü‚·
>DrawUp(wksShip As Worksheet) As Boolean() >‚±‚ê‚ð
‚Æ‘‚¢‚Ä—L‚è‚Ü‚·‚ªˆø”‚ÌŒ^Žw’èu) As Booleanv‚ÌŒã‚ë‚Éu()v‚ª—L‚è‚Ü‚·‚ªŸ‚ê‚ð•t‚¯‚邯 –ß‚è’l‚ªBooleanŒ^‚Ì”z—ñ‚Ƭ‚Á‚Ä‚µ‚Ü‚¢‚Ü‚·Aˆö‚Á‚Ä–ß‚è’l‚É”z—ñ‚ðŽw’肵‚È‚‚Ă͂Ȃç‚È‚¢‚Ì‚É ‚½‚¾‚ÌƒŠƒeƒ‰ƒ‹’蔂µ‚½ˆ×u”z—ñ‚ɂ͊„‚è“–‚Ä‚ç‚ê‚Ü‚¹‚ñv‚Æo‚Ä‚¢‚é‚̂łµ‚傤 ‚±‚Ìu) As Boolean()v‚ÌŒã‚ë‚Ìu()v‚Í•K—vÝ‚è‚Ü‚¹‚ñA‘‚«•Ï‚¦‚ÌŽwަ‚ɂ͓ü‚Á‚Ä‚¢‚Ü‚¹‚ñ‚ªH Œã‚ë‚Ìu()v휂µA‘‚«Š·‚¦‚ÌŽwަ’Ê‚è‚É‚µ‚ĉº‚³‚¢A
2A >Private Function GetData(vntData As Variant, rngList As Range, _ > rngWork As Range, vntStockID As Variant, vntSearch As Variant) As Boolean > >‚ÅuvntDatev‚ª’è‹`‚³‚ê‚Ä‚¢‚È‚¢‚̃Gƒ‰[‚ªo‚½‚̂Š> Dim vntDate As Variant >‚ð’ljÁ‚µ‚Ü‚µ‚½B
ƒSƒƒ“Ÿ‚ê‚ÍŽ„‚̃~ƒX‚Å‚·AŒ¾‚¢–ó‚ðŒ¾‚í‚µ‚Ä‚¢‚½‚¾‚¯‚ê‚ÎA®—ñ‡‚ÌŒ‚ÌC³‚ÅuDim vntDate As Variantv ‚̈ês‚ð“ü‚ꂽ‚̂ł·‚ªAŸ‚ê‚ð’ljÁŽwަ‚É“ü‚ê–Y‚ê‚Ü‚µ‚½ ‹Â‚¹‚ÌŽæ‚èuFunction GetDatav‚̕ϔ錾•”‚ɒljÁ‚µ‚Ä’¸‚¯‚ê‚ÎŒ‹\‚Å‚·
3A >‚·‚邯¡“x‚Í >Public Sub Main() >@@If DrawUp(wksObject) Then >‚±‚ê‚ÌuDrawUpv‚ÅuŒ^‚ªˆê’v‚µ‚Ü‚¹‚ñv‚̃Rƒ“ƒpƒCƒ‹ƒGƒ‰[‚ªo‚Ü‚·B >‚±‚±‚ð‚Æ‚è‚ ‚¦‚¸ Dim DrawUp As Variant@‚Æ‚µ‚Ă݂܂µ‚½B
Ÿ‚ê‚àu1Av‚É‹Nˆö‚µ‚Ü‚·ADrawUp‚Ì–ß‚è’l‚ª‚½‚¾‚ÌBoolean’liTrueAFalse‚ÌŽ–j‚¾‚©‚炱‚Ì—l‚È‘‚«•û‚ð‚·‚é‚Ì‚É
>DrawUp(wksShip As Worksheet) As Boolean()
‚Ƭ‚Á‚Ä‚¢‚é‚Ì‚ÅAƒRƒ“ƒpƒCƒ‰—l‚Íu”z—ñ‚ª–ß‚Á‚Ä—ˆ‚é‚̂ɉ½‚Å‚±‚ñ‚È‘‚«•û‚µ‚Ä‚é‚Ì‚æv‚Á‚Ä“{‚Á‚ăCƒ‰ƒVƒƒƒ‹‚̂ł·
“e‚ÉŠpAuPrivate Function DrawUp(wksShip As Worksheet) As Booleanv‚Æ‚µ‚ÄA uDim vntDate As Variant@ ‚ð’ljÁ‚µ‚Ü‚µ‚½BvˆÈŠO‚ÌŽwަŠO‚Ì•ÏX‚ð–ß‚µ‚ĉº‚³‚¢
(Bun)
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·•‚·‚݂܂¹‚ñ‚Å‚µ‚½B
ƒvƒƒV[ƒWƒƒ‚Ìæ“ª‚ðƒRƒs[•ƒy[ƒXƒg‚·‚鎞‚É—]Œv‚È•”•ª‚ð휂¹‚¸‚É“\‚è‚‚¯‚Ä‚¢‚½‚悤‚Å‚·c
‹³‚¦‚Ä‚¢‚½‚¾‚¢‚½Žwަ‚Å‘‚«Š·‚¦‚½‚Æ‚±‚듊“ü•\ì¬Eƒ}ƒXƒ^XV‚Æ‚à‚¤‚Ü‚s‚«‚Ü‚µ‚½B
‚¢‚‚‚©‚̃f[ƒ^‚ÅŽŽ‚µ‚½‚̂ł·‚ªA
¤•iA 1s–Ú‚ÌÝŒÉF2000 2s–Ú‚ÌÝŒÉF5000 ƒZƒbƒg”F3000
‚Æ‚¢‚¤Žž‚ÉAƒ}ƒXƒ^[‚Ì1s–Ú‚Ì݌ɂ̔’l‚ªu0v‚ɂȂ鎞‚Æu-2000v‚ƂȂ鎞‚ª‚ ‚é‚̂ł·‚ªA‚Ç‚¤‚¢‚¤ðŒ‚łȂÁ‚Ä‚¢‚é‚Ì‚© ”»•Ê‚ª‚Ü‚¾‚‚«‚Ü‚¹‚ñB æ“ú‘‚«‚Ü‚µ‚½‚悤‚Ƀ}ƒXƒ^[‚ð“ü—Í‹K‘¥‚ª“ˆê‚³‚ê‚Ä‚¢‚È‚©‚Á‚½‚̂łǂ±‚©‚ª•¶Žš—ñ‚¾‚Á‚½‚è”’l‚¾‚Á‚½‚肵‚Ä‚¢‚é‚Ì‚©‚àc ˆø‚«‘±‚«ƒeƒXƒg‚µ‚È‚ª‚ç‰^—p‚ÉŽ‚Á‚Ä‚¢‚«‚Ü‚·B
–{“–‚É‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚µ‚½I
iႾ‚é‚Üj
>‚¢‚‚‚©‚̃f[ƒ^‚ÅŽŽ‚µ‚½‚̂ł·‚ªA > >¤•iA >1s–Ú‚ÌÝŒÉF2000 >2s–Ú‚ÌÝŒÉF5000 >ƒZƒbƒg”F3000 > >‚Æ‚¢‚¤Žž‚ÉAƒ}ƒXƒ^[‚Ì1s–Ú‚Ì݌ɂ̔’l‚ªu0v‚ɂȂ鎞‚Æu-2000v‚ƂȂ鎞‚ª‚ ‚é‚̂ł·‚ªA‚Ç‚¤‚¢‚¤ðŒ‚łȂÁ‚Ä‚¢‚é‚Ì‚© >”»•Ê‚ª‚Ü‚¾‚‚«‚Ü‚¹‚ñB >æ“ú‘‚«‚Ü‚µ‚½‚悤‚Ƀ}ƒXƒ^[‚ð“ü—Í‹K‘¥‚ª“ˆê‚³‚ê‚Ä‚¢‚È‚©‚Á‚½‚̂łǂ±‚©‚ª•¶Žš—ñ‚¾‚Á‚½‚è”’l‚¾‚Á‚½‚肵‚Ä‚¢‚é‚Ì‚©‚àc
ŠÈ’P‚ȃeƒXƒg‚ð‚µ‚ÄŒ©‚Ü‚µ‚½‚ªã‹L‚Ƭ‚鎖—á‚ÍŠm”F‚³‚ê‚Ü‚¹‚ñ‚Å‚µ‚½‚ªH
1‚ÂAl—¶‚µ‚Ä‚¢‚È‚©‚Á‚½Ž–‚É‹C‚ª•t‚«‚Ü‚µ‚½
Ÿ‚ê‚ÍAƒ}ƒXƒ^ƒƒ“ƒeƒiƒ“ƒX‚̬‚³‚ê‚Ä‚¢‚È‚¢“™‚ÅA݌ɔ0‚âƒ}ƒCƒiƒX݌ɂª—L‚Á‚½ê‡‚ÉA‚¢‚Ăł·
‚à‚µ‚©‚·‚邯Ÿ‚ê‚ÉŠÖŒW‚µ‚Ä‚¢‚é‚©‚à‰ð‚è‚Ü‚¹‚ñ
‚µ—Ž‚¿’…‚¢‚Ä‚©‚ç‚É‚µ‚悤‚ÆŽv‚Á‚Ä‚¢‚½‚̂ł·‚ªH
ã‹L‚Ì—l‚ÈŽ–—Ⴊo‚Ä—ˆ‚Ä‚¢‚é‚Ì‚ÅA‚±‚Ì‘Îô‚ð‚µ‚Ü‚·
‘Îô•û–@‚Í2ˆÄÝ‚è‚Ü‚·
1AŒ»Ý‚ÌuFunction DrawUpv‚Ì’†‚Ì݌Ɉø“–‚ÌLoop‚ÉA
If vntData(j, 3) > 0 Then
@‚Æ“ü‚ê‚ÄAÝŒÉ0Žá‚µ‚‚̓}ƒCƒiƒX݌ɂ𖳎‹‚·‚é•û–@
@‚±‚Ìê‡A’ljÁ‚Í2s‚Åς݂܂·‚ªˆ—‚ª’x‚¬‚é‰Â”\«‚ª—L‚è‚Ü‚·
2AC³‚Í‘½‚¬‚è‚Ü‚·‚ªuì‹Æ—pv‚É’Šo‚·‚鎞“_‚Å’ŠoðŒ‚ÉÝŒÉ0‚ð’´‚¦‚镨‚ÆðŒ‚ð‘‚₵‚Ä
@‚»‚ÌŽž“_‚Å݌ɂª0ˆÈ‰º‚Ì•¨‚ðœŠO‚·‚é•û–@‚Å‚·
@‚±‚Ìê‡AuFunction DrawUpv‚Ì’†‚Ì݌Ɉø“–‚ÌLoop‚ÅŒ©‚és‚ª‚È‚¬‚é‚̂ň—‚ª‘¬‚¬‚è‚Ü‚·
‘´ˆ‚Å‘æ2ˆÄ•û‚ð‚¨Š©‚ß‚µ‚Ü‚· ‚±‚Ìꇂ̕ÏX“_‚ÍA 1Auì‹Æ—pvƒV[ƒg‚ɃtƒB[ƒ‹ƒh‚ð’ljÁ‚µ‚Ü‚·AꊂÍAO1ƒZƒ‹‚Å‚· @D1‚ÉÝ‚éu“ü‰×ŽÀ”v‚ðO1ƒZƒ‹‚ÉCopy‚µ‚ĉº‚³‚¢ 2AƒR[ƒh‚ð•ÏX‚µ‚Ü‚·•ÏX‚·‚é‚Ì‚ÍuFunction GetDatav‚ɬ‚è‚Ü‚· @ˆê‰žAuFunction GetDatav‚Ì‘S•¶‚ðÚ‚¹‚Ü‚·‚̂ŷ‚µ‘Ö‚¦‚ĉº‚³‚¢ @‘O‰ñ‚Ì•ÏX•”•ª‚àŠÜ‚ñ‚Å‚¢‚Ü‚·
Private Function GetData(vntData As Variant, rngList As Range, _
rngWork As Range, vntStockID As Variant, _
vntSearch As Variant) As Boolean 'š•ÏX
' “ü‰×ƒ}ƒXƒ^[‚©‚çAdvancedFilter‚ðŽg‚Á‚ăf[ƒ^‚ðŽæ“¾
Dim i As Long
Dim j As Long
Dim vntCrit As Variant
Dim rngCrit As Range
Dim lngRows As Long
Dim vntDate As Variant 'š’ljÁ
'ì‹Æ—pƒV[ƒg‚ÌðŒ”ÍˆÍ‚Ìæ“ªƒZƒ‹ˆÊ’u(ƒ}ƒXƒ^‚©‚ç•K—vƒf[ƒ^‚ð’Šo)
Set rngCrit = rngWork.Parent.Range("N1")
'ÝŒÉID‚ð’ŠoðŒ‚Éo—Í šÝŒÉ”‚ª0‚Ìꇂ̈—’ljÁ
' ReDim vntCrit(1 To UBound(vntStockID, 2), 1 To 1)
ReDim vntCrit(1 To UBound(vntStockID, 2), 1 To 2) 'š•ÏX
For i = 1 To UBound(vntStockID, 2)
vntCrit(i, 1) = "=" & """=" & vntStockID(1, i) & """"
vntCrit(i, 2) = "=" & """>0""" 'š’ljÁ
Next i
' rngCrit.Offset(1).Resize(UBound(vntStockID, 2)).Value = vntCrit
rngCrit.Offset(1).Resize(UBound(vntStockID, 2), 2).Value = vntCrit 'š•ÏX
'“ü‰×ƒ}ƒXƒ^[‚©‚ç•K—vƒf[ƒ^‚ð’Šo
' DoFilter rngList.CurrentRegion, _
' rngCrit.Resize(UBound(vntStockID, 2) + 1), _
' rngWork.Resize(, 11)
DoFilter rngList.CurrentRegion, _
rngCrit.Resize(UBound(vntStockID, 2) + 1, 2), _
rngWork.Resize(, 11) 'š•ÏX
'ì‹Æ—pƒV[ƒg‚ÉA‚¢‚Ä
With rngWork
's”‚̎擾
lngRows = .Offset(Rows.Count - .Row).End(xlUp).Row - .Row
If lngRows <= 0 Then
GoTo Wayout
End If
'šŽg—pŠúŒÀi”NAŒŽA“új‚ð•¶Žš—ñ‚É•ÏX
vntDate = .Offset(1, 4).Resize(lngRows, 3).Value 'š’ljÁ
For i = 1 To lngRows 'š’ljÁ
For j = 1 To 3 'š’ljÁ
If IsNumeric(vntDate(i, j)) Then 'š’ljÁ
vntDate(i, j) = Right("00" & vntDate(i, j), 2) 'š’ljÁ
End If 'š’ljÁ
Next j 'š’ljÁ
Next i 'š’ljÁ
'šƒZƒ‹‘Ž®‚ð•¶Žš—ñ‚É•ÏX
.Offset(1, 4).Resize(lngRows, 3).NumberFormat = "@" 'š’ljÁ
'š•¶Žš—ñ‚É‚µ‚½Žg—pŠúŒÀi”NAŒŽA“új‚ðƒV[ƒgo—Í
.Offset(1, 4).Resize(lngRows, 3).Value = vntDate 'š’ljÁ
'ÝŒÉID‡‚ÌŽg—pŠúŒÀi”NAŒŽA“új‡‚Ì“ü‰×“ú‡‚ÅList‚ð®—ñ
'A—ñ‚©‚ç®—ñ‚·‚é—ñ‚Ì—ñOffset‚ðŽw’è,‘S‚ĸ‡‚Å
DataSort .Offset(1).Resize(lngRows, 11), Array(2, 4, 5, 6, 1), _
Array(xlAscending, xlAscending, xlAscending, _
xlAscending, xlAscending)
'‘S—ñƒf[ƒ^‚ð”z—ñ‚Ɏ擾
vntData = .Offset(1, 1).Resize(lngRows + 1, 10).Value
'š”z—ñ‚Éu“ü‰×IDv‚ðŽæ“¾
vntSearch = .Offset(1).Resize(lngRows + 1).Value 'š’ljÁ
End With
GetData = True
Wayout:
Set rngCrit = Nothing
End Function
ˆÈã
®A–{“–‚ÍoŒÉêŠ‚à’ŠoðŒ‚ɉÁ‚¦‚Ä’Šo‚Åi‚螂߂ê‚΂à‚Á‚Æ‘¬‚¬‚é‚̂ł·‚ªH
‘´‚ê‚ÍAƒ}ƒXƒ^‚̃ƒ“ƒeƒiƒX‚ªI‚í‚Á‚½‚çAႾ‚é‚Ü‚³‚ñ‚ªl‚¦‚ÄŒ©‚ĉº‚³‚¢
(Bun)
‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·B
¡‚̂Ƃ±‚뇒²‚É‚¢‚Á‚Ă܂·B
–{“–‚É‚¨Žè”‚ð‚¨‚©‚¯‚µ‚Ü‚µ‚½B
iႾ‚é‚Üj
ˆê‰ž“®‚¢‚Ä—Ç‚©‚Á‚½‚Å‚·‚Ë
‚½‚¾AŒ‹‰Ê‚Ìó‘ÔA‰^—pã‚Ì•s“s‡Aƒf[ƒ^‚ÌXVó‘Ô“™‚ð—Ç‚Šm”F‚µ‚Ä
–{”Ԃ̉^—p‚É‹Ÿ‚µ‚ĉº‚³‚¢‚Ë
(Bun)
[ ˆê——(ÅVXV‡) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.