Excel VBAã§ææ°ãã¡ã€ã«ãå¹ççã«æ€çŽ¢ãã颿°èšèšãã¯ããã¯
ç§ã¯VBAã®æŽ»çšçµéšãéããŠåŸãç¥èãæŽçããå ±æããç®çã§èšäºãäœæããŠããããã°ã©ãã³ã°æŽ1幎åã«ãªããšã³ãžãã¢ã§ããååã¯ãéžæããã»ã«ç¯å²ã«éãªãå³åœ¢ãäžæ¬åé€ãããã¯ããã¯ã«ã€ããŠè§£èª¬ããŸãããä»åã¯ãæå®ããããã©ã«ãå ããææ°ã®Excelãã¡ã€ã«ãèªåçã«æ€çŽ¢ã»ååŸããå®è·µçãªé¢æ°ã«ã€ããŠè©³ãã説æããŸãã
- 第1å: Excel VBAã®åºç€ç¥èãšã»ãã¥ãªãã£èšå®
- 第2å: Excel VBAã®åºæ¬æäœãšãªããžã§ã¯ãã®çè§£
- 第3å: Excel VBAã«ããã倿°ãšå®æ°ã®åºæ¬
- 第4å: Excel VBAã«ãããã·ãŒãæäœã®åºæ¬ãšãšã©ãŒåŠç
- 第5å: Excel VBAã«ãããæ¡ä»¶åå²
- 第6å: Excel VBAã«ãããç¹°ãè¿ãåŠçã®åºæ¬
- 第7å: Excel VBAã«ãããé åãšFor Eachã®æŽ»çš
- 第8å: Excel VBAã«ãããFormulaãšValueã®äœ¿ãåããšãŠãŒã¶ãŒå ¥åã®ååŸ
- 第9å: Excel VBAã«ããããã¡ã€ã«æäœãšãã©ã«ã管çã®åºæ¬
- 第10å: Excel VBAã«ãããFileSystemObjectãæŽ»çšããé«åºŠãªãã¡ã€ã«æäœ
- 第11å: Excel VBAã«ãããFileSystemObjectãæŽ»çšããé«åºŠãªãã¡ã€ã«æäœ å¿çšç·š
- 第12å: Excel VBAã«ãããStrConv颿°ã®æŽ»çšãšå¿çšãã¯ããã¯
- 第13å: Excel VBAã«ãããã¯ãŒã¯ããã¯ã®å®å šãªæäœãšç®¡çãã¯ããã¯
- 第14å: Excel VBAã«ãããFunctionïŒé¢æ°ïŒã®äœæãšæŽ»çšãã¯ããã¯
- 第15å: Excel VBAã«ãããé åãè¿ã颿°ã®äœæãšæŽ»çšãã¯ããã¯
- 第16å: Excel VBAã«ãããã³ã¬ã¯ã·ã§ã³ã®æŽ»çšãšå¿çšãã¯ããã¯
- 第17å: Excel VBAã«ãããèŸæžåïŒDictionaryïŒã®æŽ»çšãšå¿çšãã¯ããã¯
- 第18å: Excel VBAã«ãããEnumåãæŽ»çšãã颿°èšèšãšå®è£ ãã¯ããã¯
- 第19å: Excel VBAã«ããããŠãŒãã£ãªãã£é¢æ°ã®äœæãšæŽ»çšãã¯ããã¯
- 第20å: Excel VBAã«ãããæ£èŠè¡šçŸã掻çšãããã¡ã€ã«åè§£æãã¯ããã¯
- 第21å: Excel VBAã§ç¯å²å ã®å³åœ¢ãå¹ççã«åé€ãããã¯ããã¯
- 第22å: Excel VBAã§ææ°ãã¡ã€ã«ãå¹ççã«æ€çŽ¢ãã颿°èšèšãã¯ããã¯ïŒæ¬èšäºïŒ
- 第23å: Excel VBAã§éžæããç¯å²ã«å¯ŸããŠãäžè¡ããã«ç©ºè¡ãæ¿å ¥ãããã¯ããã¯
- 第24å: Excel VBAã§å¯èŠã»ã«ã掻çšãããã£ã«ã¿ãŒæäœãã¯ããã¯
- 第25å: Excel VBAã§å¯èŠã»ã«ã®ã¿ãå¹ççã«ã³ããŒãããã¯ããã¯
- 第26å: Excel VBAã«ããããã¡ã€ã«ã»ãã©ã«ãç§»åã®ååž°åŠçãã¯ããã¯
- 第27å: Excel VBAã«ããã芪ãã©ã«ããã¹ååŸã®å®è£ ãã¯ããã¯
- 第28å: Excel VBAã«ãããç¬èªã€ãã³ãã®èšèšãšå®è£ ãã¯ããã¯
- 第29å: Excel VBAã«ãããEnumåãæŽ»çšããã¡ã³ããã³ã¹æ§åäžãã¯ããã¯
- 第30å: Excel VBAã«ãããåçªå·ããã¢ã«ãã¡ããã倿ã®å¹ççå®è£ ãã¯ããã¯
ç®æ¬¡
- ã¯ããã«
- ææ°ãã¡ã€ã«æ€çŽ¢ã®èª²é¡ãšè§£æ±ºæ¹æ³
- ã³ãŒãã®å šäœæ§é
- Dir颿°ã®ä»çµã¿ãšæŽ»çšæ³
- ãã¡ã€ã«æå»ã®ååŸãšæ¯èŒ
- å®è£ æã®æ³šæç¹ãšæ¹è¯æ¡
- å¿çšçºå±ã®ã¢ã€ãã¢
- ãŸãšã
ã¯ããã«
æ¥åã§Excelã䜿çšããŠãããšãç¹å®ã®ãã©ã«ãã«è€æ°ã®ããŒãžã§ã³ã®ãã¡ã€ã«ãä¿åããããã®äžããææ°ã®ãã¡ã€ã«ãèªåçã«èŠã€ããŠåŠçããå¿ èŠã«è¿«ãããããšããããŸããç¹ã«ã宿çã«æŽæ°ããããã³ãã¬ãŒããã¡ã€ã«ããããŒãžã§ã³ç®¡çãããããŒã¿ãã¡ã€ã«ãæ±ãéã«ã¯ãæåã§ãã¡ã€ã«ãæ¢ãã®ã¯éå¹ççã§ãã
ä»å玹ä»ããSearchFile颿°ã¯ããã®ãããªèª²é¡ã解決ããããã«èšèšãããŸãããæå®ãããã©ã«ãå ããç¹å®ã®ãã¿ãŒã³ã«äžèŽããææ°ã®ãã¡ã€ã«ãèªåçã«æ€çŽ¢ãããã®ãã«ãã¹ãè¿ãå®çšçãªé¢æ°ã§ãã
ææ°ãã¡ã€ã«æ€çŽ¢ã®èª²é¡ãšè§£æ±ºæ¹æ³
åŸæ¥ã®èª²é¡
å®éã®æ¥åç°å¢ã§ã¯ã以äžã®ãããªç¶æ³ã«ããééããŸãã
- åããã©ã«ãã«ããã³ãã¬ãŒã_rev001.xlsxãããã³ãã¬ãŒã_rev002.xlsxãããã³ãã¬ãŒã_rev003.xlsxãã®ããã«ãè€æ°ã®ããŒãžã§ã³ãã¡ã€ã«ãååšãã
- ãã¡ã€ã«åã«å«ãŸããããŒãžã§ã³çªå·ãšå®éã®æŽæ°é åºãå¿ ãããäžèŽããªã
è§£æ±ºæ¹æ³ã®èãæ¹
ãããã®èª²é¡ã解決ããããã«ãä»åã®é¢æ°ã§ã¯ä»¥äžã®ã¢ãããŒããæ¡çšããŠããŸãã
- ãã¡ã€ã«åãã¿ãŒã³äžèŽã«ãããã£ã«ã¿ãªã³ã°: ç¹å®ã®ãã¿ãŒã³ã«äžèŽãããã¡ã€ã«ã®ã¿ã察象ãšãã
- æçµæŽæ°æ¥æã«ããæ¯èŒ: ãã¡ã€ã«åã®çªå·ã§ã¯ãªããå®éã®æçµæŽæ°æ¥æãåºæºãšããŠææ°ãã¡ã€ã«ãå€å®ãã
ã³ãŒãã®å šäœæ§é
'æå®ãã©ã«ãå
ã§ç¹å®ãã¿ãŒã³ã«äžèŽããææ°ã®ãã¡ã€ã«ãæ€çŽ¢ããŠãã«ãã¹ãè¿ã颿°
Function SearchFile(ByVal folderPath As String) As String
'æå®ãã¿ãŒã³ã«äžèŽããæåã®ãã¡ã€ã«ãæ€çŽ¢
Dim fileName As String
fileName = Dir(folderPath & "ãã³ãã¬ãŒã_rev*")
'æãæ°ãããã¡ã€ã«ã®ãã¡ã€ã«åãæ ŒçŽãã倿°
Dim newFileName As String
'ææ°ã®æŽæ°æ¥æãèšé²ãã倿°
Dim MaxTime As Date
'ãã¡ã€ã«ãèŠã€ãããªããªããŸã§ç¹°ãè¿ãåŠç
Do Until fileName = ""
'çŸåšã®ãã¡ã€ã«ã®æçµæŽæ°æ¥æãååŸ
Dim fileTime As Date
fileTime = FileDateTime(folderPath & fileName)
'çŸåšã®ãã¡ã€ã«ããããŸã§ã§ææ°ãã©ãããå€å®
If fileTime > MaxTime Then
'ææ°ã®æŽæ°æ¥æãçŸåšã®ãã¡ã€ã«ã®æ¥æã«æŽæ°
MaxTime = fileTime
'ææ°ãã¡ã€ã«åãçŸåšã®ãã¡ã€ã«åã«æŽæ°
newFileName = fileName
End If
'ãã¿ãŒã³ã«äžèŽããæ¬¡ã®ãã¡ã€ã«ãååŸ
fileName = Dir
Loop
'ææ°ãã¡ã€ã«ã®ãã«ãã¹ãæ»ãå€ãšããŠè¿ã
SearchFile = folderPath & newFileName
End Function
Dir颿°ã®ä»çµã¿ãšæŽ»çšæ³
Dir颿°ã®åºæ¬åäœ
Dir颿°ã¯æå®ãããã¹ããã¿ãŒã³ã«äžèŽãããã¡ã€ã«åããã£ã¬ã¯ããªåãè¿ã颿°ã§ããåºæ¬çãªæ§æã¯ä»¥äžã®éãã§ãã
Dir([pathname] [, attributes])
- pathname: æ€çŽ¢å¯Ÿè±¡ã®ãã¹ããã¡ã€ã«åãã¿ãŒã³ïŒçç¥å¯ïŒ
- attributes: ãã¡ã€ã«å±æ§ãæå®ãã宿°ïŒçç¥å¯ïŒ
屿§ã䜿ã£ãé«åºŠãªæ€çŽ¢
Dir颿°ã®ç¬¬2åŒæ°ã䜿ããšãç¹å®ã®å±æ§ãæã€ãã¡ã€ã«ããã©ã«ãã«çµã£ãæ€çŽ¢ãå¯èœã§ãã
- vbNormal: æšæºãã¡ã€ã« (0)
- vbReadOnly: èªã¿åãå°çšãã¡ã€ã« (1)
- vbHidden: é ããã¡ã€ã« (2)
- vbSystem: ã·ã¹ãã ãã¡ã€ã« (4)
- vbDirectory: ãã©ã«ã (16)
Dir颿°ã®æŽ»çš
Dir颿°ã¯ãVBAã«ããããã¡ã€ã«æ€çŽ¢ã®åºæ¬çãªããŒã«ã§ãããã®é¢æ°ã®ç¹åŸŽçãªåäœãçè§£ããããšããä»åã®ã³ãŒããçè§£ããéµãšãªããŸãã
fileName = Dir(folderPath & "ãã³ãã¬ãŒã_rev*")
ãã®æåã®åŒã³åºãã§ã¯ãæ€çŽ¢ãã¿ãŒã³ãæå®ããŠããŸããããã³ãã¬ãŒã_rev*ããšãããã¿ãŒã³ã¯ãããã³ãã¬ãŒã_revãã§å§ãŸãããã®åŸã«ä»»æã®æåãç¶ããã¡ã€ã«åãæ€çŽ¢ããããšãæå³ããŸããã¢ã¹ã¿ãªã¹ã¯ïŒ*ïŒã¯ã¯ã€ã«ãã«ãŒãæåãšããŠæ©èœããä»»æã®æååã«ãããããŸãã
ã¯ã€ã«ãã«ãŒããšã¯
ç¹å®ã®æåã®ä»£ããã«äœ¿ããç¹æ®æåã®ããšã§ãããããŸããªæåã®æ€çŽ¢ã«äœ¿çšããŸãã
-
*
ïŒã¢ã¹ã¿ãªã¹ã¯ïŒ: ä»»æã®æåæ°ã®ä»»æã®æå -
?
ïŒã¯ãšã¹ãã§ã³ããŒã¯ïŒ: ä»»æã®1æå
äŸ: "ãã³ãã¬ãŒã_rev*.xlsx"
â ããã³ãã¬ãŒã_revãã§å§ãŸããã¹ãŠã®Excelãã¡ã€ã«
äŸ: "ãã³ãã¬ãŒã_rev???.xlsx"
â ããã³ãã¬ãŒã_revãã§å§ãŸãã3æåãå«ããã¡ã€ã«
Dir颿°ã®é£ç¶åŒã³åºããã¿ãŒã³
Dir颿°ã®éèŠãªç¹åŸŽã¯ãæåã®åŒã³åºãã§ãã¿ãŒã³ãæå®ããåŸãåŒæ°ãªãã§åŒã³åºãããšã§ãåããã¿ãŒã³ã«äžèŽããæ¬¡ã®ãã¡ã€ã«ãé æ¬¡ååŸã§ããããšã§ãã
fileName = Dir ' åŒæ°ãªãã§æ¬¡ã®ãã¡ã€ã«ãååŸ
ãã®ä»çµã¿ã«ãããDo Untilã«ãŒãå ã§åããã¿ãŒã³ã®ãã¡ã€ã«ãé æ¬¡åŠçããããšãå¯èœã«ãªããŸããäžèŽãããã¡ã€ã«ããªããªããšãDir颿°ã¯ç©ºæååïŒ""ïŒãè¿ããã«ãŒããçµäºããŸãã
Dir颿°ã®çè§£ã®ãã€ã³ã
-
è¿ãå€ã¯ãã¡ã€ã«åã®ã¿ïŒæ¡åŒµåä»ãïŒ
ãã«ãã¹ã§ã¯ãªãç¹ã«æ³šæããŠãã ããã -
æ€çŽ¢çµæã¯å
éšçã«ä¿æ
æåã®Dirå®è¡ããæ¬¡ã®Dirãé£ç¶ããŠåŒã³åºãããšã§ãé çªã«å šãã¡ã€ã«ã«ã¢ã¯ã»ã¹ã§ããŸãã -
éãæ€çŽ¢ãã¿ãŒã³ã§å床Dirã䜿ããšãªã»ãã
ç°ãªãæ¡ä»¶ã§DirãåŒã³åºããšã以åã®æ€çŽ¢ç¶æ ã¯å€±ãããŸãã
ãã¡ã€ã«æå»ã®ååŸãšæ¯èŒ
FileDateTime颿°ã®åœ¹å²
fileTime = FileDateTime(folderPath & fileName)
FileDateTime颿°ã¯ãæå®ããããã¡ã€ã«ã®æçµæŽæ°æ¥æãååŸããŸãããã®é¢æ°ã¯Dateåã®å€ãè¿ããVBAã®æšæºçãªæ¥ææ¯èŒæŒç®åã䜿çšããŠæ¯èŒããããšãã§ããŸãã
ææ°ãã¡ã€ã«å€å®ã®ããžãã¯
ææ°ãã¡ã€ã«ãç¹å®ããããã®ããžãã¯ã¯ãéåžžã«ã·ã³ãã«ãªãã广çã§ãã
If fileTime > MaxTime Then
MaxTime = fileTime
newFileName = fileName
End If
ãã®ã³ãŒãã¯ãçŸåšèª¿ã¹ãŠãããã¡ã€ã«ã®æŽæ°æ¥æãããããŸã§ã«èŠã€ããææ°ã®æŽæ°æ¥æãããæ°ããå Žåã«ããã®ãã¡ã€ã«ãæ°ããåè£ãšããŠèšé²ããŸããã«ãŒããå®äºãããšãnewFileName倿°ã«ã¯æãæ°ããæŽæ°æ¥æãæã€ãã¡ã€ã«åãæ ŒçŽãããŸãã
Dateå倿°ã®åæåã«ã€ããŠ
è峿·±ãç¹ãšããŠãMaxTime倿°ã¯Dimæã§å®£èšãããã ãã§ãæç€ºçã«åæåãããŠããŸãããVBAã§ã¯ãDateåïŒæ¥ä»ãæå»ãä¿åã§ããåïŒå€æ°ã®åæå€ã¯1900幎1æ1æ¥ã®00:00:00ãšãªããŸããå®éã®ãã¡ã€ã«ã¯ããããæ°ããæ¥ä»ãæã€ãããæåã®ãã¡ã€ã«ã§å¿ ãMaxTimeãæŽæ°ãããããšã«ãªããŸãã
å®è£ æã®æ³šæç¹ãšæ¹è¯æ¡
çŸåšã®ã³ãŒãã®æœåšçãªåé¡ç¹
ãã®ã³ãŒãã¯åºæ¬çãªæ©èœãæäŸããŠããŸãããå®éã®æ¥åã§äœ¿çšããéã«ã¯ããã€ãã®æ¹è¯ãæ€èšãã¹ãç¹ããããŸãã
1. ãšã©ãŒãã³ããªã³ã°ã®äžè¶³
çŸåšã®ã³ãŒãã§ã¯ã以äžã®ãããªãšã©ãŒç¶æ³ãèæ ®ãããŠããŸããã
- æå®ããããã©ã«ããã¹ãååšããªãå Žå
- 該åœãããã¡ã€ã«ã1ã€ãèŠã€ãããªãå Žå
- ãã¡ã€ã«ã¢ã¯ã»ã¹æš©éã®åé¡
2. æ»ãå€ã®äžè²«æ§
ãã¡ã€ã«ãèŠã€ãããªãå Žåã颿°ã¯å ã®folderPathã«ç©ºæååãé£çµããçµæãè¿ããŸããããã§ããåé¡ã¯ãããŸããããåŒã³åºãåŽã§èŠã€ãããªãã£ãããšããæç¢ºãªæ»ãå€ãèšå®ããã»ããè¯ãã§ãããã
æ¹è¯çã®å®è£ äŸ
以äžã®ãããªæ¹è¯ãå ããããšã§ãããå ç¢ãªé¢æ°ã«ã§ããŸãã
1. ãã©ã«ããã¹ã®æ£èŠå
ãã©ã«ããã¹ã®æ«å°Ÿã« "Â¥" ãä»ããŠããªãå Žåã«èªåçã«è¿œå ããŸãã
' ãã©ã«ããã¹ã®æ£èŠå
If Right(folderPath, 1) <> "Â¥" Then
folderPath = folderPath & "Â¥"
End If
2. ãã©ã«ãã®ååšç¢ºèª
åŠçãéå§ããåã«ãæå®ããããã©ã«ããå®éã«ååšãããã確èªããŸãã
' ãã©ã«ãã®ååšç¢ºèª
If Dir(folderPath, vbDirectory) = "" Then
SearchFileImproved = "" ' ãã©ã«ããååšããªã
Exit Function
End If
3. ãšã©ãŒãã³ããªã³ã°ã®å°å ¥
颿°å šäœããšã©ãŒãã³ããªã³ã°ã§å²ã¿ãäºæãã¬ãšã©ãŒãçºçããå Žåã§ãå®å šã«ç©ºæåãè¿ããŸãã
On Error GoTo ErrorHandler
' 颿°ã®æ¬äœ
Exit Function
ErrorHandler:
SearchFileImproved = "" ' ãšã©ãŒçºçæã¯ç©ºæåãè¿ã
4. å®å šãªé¢æ°ã®å®è£
äžèšã®æ¹è¯ãåãå ¥ããå®å šãªé¢æ°ã®å®è£ äŸã§ãã
' æå®ããããã©ã«ãããææ°ã®ããã³ãã¬ãŒã_rev*ããã¡ã€ã«ã®ãã¹ãååŸãã颿°
Function SearchFileImproved(ByVal folderPath As String) As String
On Error GoTo ErrorHandler
' ãã©ã«ããã¹ã®æ«å°Ÿã«ãÂ¥ãããªããã°è¿œå ãã
If Right(folderPath, 1) <> "Â¥" Then
folderPath = folderPath & "Â¥"
End If
' æå®ããããã©ã«ããååšããã確èªãã
If Dir(folderPath, vbDirectory) = "" Then
SearchFileImproved = ""
Exit Function
End If
Dim fileName As String ' æ€çŽ¢å¯Ÿè±¡ã®çŸåšã®ãã¡ã€ã«å
Dim newFileName As String ' ææ°ãšå€æããããã¡ã€ã«å
Dim MaxTime As Date ' ææ°ãã¡ã€ã«ã®æŽæ°æ¥æ
Dim foundFile As Boolean ' ãã¡ã€ã«ãèŠã€ãã£ããã®ãã©ã°
' ãã³ãã¬ãŒããã¡ã€ã«ã®æ€çŽ¢ãéå§ãã
fileName = Dir(folderPath & "ãã³ãã¬ãŒã_rev*")
foundFile = False
' 察象ã®ãã¡ã€ã«ããã¹ãŠèª¿ã¹ã
Do Until fileName = ""
Dim fileTime As Date
fileTime = FileDateTime(folderPath & fileName)
' ããæ°ãããã¡ã€ã«ãèŠã€ãã£ãå Žåãæ
å ±ãæŽæ°ãã
If Not foundFile Or fileTime > MaxTime Then
MaxTime = fileTime
newFileName = fileName
foundFile = True
End If
' 次ã®ãã¡ã€ã«ãååŸãã
fileName = Dir
Loop
' æ€çŽ¢çµæãè¿ã
If foundFile Then
SearchFileImproved = folderPath & newFileName
Else
SearchFileImproved = ""
End If
Exit Function
ErrorHandler:
' ãšã©ãŒãçºçããããšã瀺ãã¡ãã»ãŒãžãšè©³çްãã€ããã£ãšã€ããŠã£ã³ããŠã«åºå
Debug.Print "SearchFileImproved颿°ã§ãšã©ãŒãçºçããŸããã"
Debug.Print "ãšã©ãŒçªå·: " & Err.Number
Debug.Print "ãšã©ãŒå
容: " & Err.Description
SearchFileImproved = "" ' ãšã©ãŒçºçæã¯ç©ºæåãè¿ã
Err.Clear ' ãšã©ãŒæ
å ±ãã¯ãªã¢
End Function
å¿çšçºå±ã®ã¢ã€ãã¢
1. æ€çŽ¢ãã¿ãŒã³ã®å¯å€å
çŸåšã®ã³ãŒãã§ã¯æ€çŽ¢ãã¿ãŒã³ãåºå®ãããŠããŸããããããåŒæ°ãšããŠåãåãããšã§ãããæ±çšçãªé¢æ°ã«ã§ããŸãã
Function SearchLatestFile(ByVal folderPath As String, _
ByVal searchPattern As String) As String
' å®è£
å
容ã¯åæ§ã ããsearchPatternã䜿çš
fileName = Dir(folderPath & searchPattern)
' 以äžåæ§...
End Function
2. ãã¡ã€ã«æ å ±ã®è©³çްååŸ
ãã¡ã€ã«åã ãã§ãªãããµã€ãºã屿§ãªã©ãå«ããæ å ±ãè¿ãããã«æ¡åŒµããããšãå¯èœã§ãã
' ãã¡ã€ã«æ
å ±ãæ ŒçŽããããã®æ§é äœ
Type FileInfo
FullPath As String ' ãã¡ã€ã«ã®ãã«ãã¹
FileName As String ' ãã¡ã€ã«åã®ã¿
LastModified As Date ' æçµæŽæ°æ¥æ
End Type
Function GetLatestFileInfo(ByVal folderPath As String, _
ByVal searchPattern As String) As FileInfo
' --- çç¥ ---
' çµæãæ ŒçŽãã倿°
Dim result As FileInfo
' FileInfoåã®æ§é äœãè¿ãå®è£
result.FullPath = folderPath & fileName
result.FileName = fileName
result.LastModified = fileTime
' çµæãè¿ã
GetLatestFileInfo = result
End Function
ãŠãŒã¶ãŒå®çŸ©åïŒTypeïŒã¯ãè€æ°ã®ç°ãªãããŒã¿åãã²ãšã€ã®ãŸãšãŸããšããŠæ±ãããã®ä»çµã¿ã§ããããã«ãããè€æ°ã®é¢é£æ å ±ãã²ãšã€ã®ããã±ãŒãžãšããŠãŸãšããããã®ã§ãããŒã¿ã®ç®¡çããšãŠã䟿å©ã«ãªããŸããäŸãã°äžèšã®FileInfoåã§ã¯ããã¡ã€ã«åããã¹ãæ¥æãšãã3ã€ã®ç°ãªãæ å ±ãäžåºŠã«æ±ããŸãã
3. è€æ°ãã¡ã€ã«ã®äžæ¬åŠç
ææ°ã®ãã¡ã€ã«ã ãã§ãªããæ¡ä»¶ã«äžèŽãããã¹ãŠã®ãã¡ã€ã«ãé åã§è¿ãæ©èœãèããããŸãã
Function GetAllMatchingFiles(ByVal folderPath As String, _
ByVal searchPattern As String) As String()
' äžèŽãããã¡ã€ã«ã®é
åãè¿ã
End Function
4. ãã°æ©èœã®è¿œå
æ¥åã·ã¹ãã ã§ã¯ãã©ã®ãã¡ã€ã«ãéžæããããã®ãã°ãæ®ãããšãéèŠãªå ŽåããããŸãã
' éžæããããã¡ã€ã«æ
å ±ããã°ãã¡ã€ã«ã«èšé²
Dim logText As String
logText = Format(Now, "yyyy-mm-dd hh:mm:ss") & " - Selected: " & selectedFile
' ãã°ãã¡ã€ã«ã«è¿œèš
Open logFilePath For Append As #1
Print #1, logText
Close #1
ãŸãšã
ä»å解説ããSearchFile颿°ã¯ãã·ã³ãã«ãªãããå®çšæ§ã®é«ããã¡ã€ã«æ€çŽ¢æ©èœãæäŸããŸããDir颿°ãšFileDateTime颿°ãçµã¿åãããããšã§ãç¹å®ã®ãã¿ãŒã³ã«äžèŽããææ°ã®ãã¡ã€ã«ãå¹ççã«æ€çŽ¢ã§ããŸãã
ãã®é¢æ°ã®æ žå¿ãšãªãã®ã¯ããã¡ã€ã«åã®ãã¿ãŒã³ãããã³ã°ãšæŽæ°æ¥æã«ããæ¯èŒãšãã2ã€ã®æè¡ã®çµã¿åããã§ããã¯ã€ã«ãã«ãŒãã䜿çšãããã¿ãŒã³ãããã³ã°ã«ããå¿ èŠãªãã¡ã€ã«ãçµã蟌ã¿ãå®éã®æŽæ°æ¥æãåºæºãšããŠææ°æ§ãå€å®ããããšã§ãç¢ºå®æ§ã®é«ããã¡ã€ã«éžæãå®çŸããŠããŸãã
å®éã®æ¥åã§æŽ»çšããéã«ã¯ããšã©ãŒãã³ããªã³ã°ãæ»ãå€ã®äžè²«æ§ãªã©ã®æ¹è¯ãå ããããšã§ãããå ç¢ãªã·ã¹ãã ãæ§ç¯ã§ããŸãããŸããæ€çŽ¢ãã¿ãŒã³ã®å¯å€åã詳现æ å ±ã®ååŸãªã©ãæ§ã ãªæ¹åãžã®æ¡åŒµãå¯èœã§ãã
ãã®ãããªåºæ¬çãªãã¡ã€ã«æäœé¢æ°ããã¹ã¿ãŒããããšã§ãæ¥åžžã®æ¥åå¹çåã ãã§ãªããããè€éãªã·ã¹ãã éçºã®åºç€ã¹ãã«ã身ã«ã€ããããšãã§ããŸãããã²ãèªåã®æ¥åç°å¢ã«åãããŠã«ã¹ã¿ãã€ãºããæŽ»çšããŠã¿ãŠãã ããã
次åã¯ãéžæããç¯å²ã§äžè¡ããã«ç©ºè¡ãæ¿å ¥ããå®çšçãªãã¯ãã«ã€ããŠè§£èª¬ããŸãããã²ãæåŸ ãã ããïŒ