Excel VBAã«ããããã¡ã€ã«æäœãšãã©ã«ã管çã®åºæ¬
ç§ã¯VBAã®æŽ»çšçµéšãéããŠåŸãç¥èãæŽçããå ±æããç®çã§èšäºãäœæããŠããããã°ã©ãã³ã°æŽ1幎åã«ãªããšã³ãžãã¢ã§ããååã¯ãExcel VBAã«ãããFormulaãšValueã®äœ¿ãåããInputBox颿°ã«ãããŠãŒã¶ãŒå ¥åã®ååŸããããŠãExcelã®ã¯ãŒã¯ã·ãŒã颿°ãVBAã§æŽ»çšããæ¹æ³ã«ã€ããŠè§£èª¬ããŸãããä»åã¯ãExcel VBAã§ã®å®åã«ãããéèŠãªãã¯ããã¯ãšããŠããã¡ã€ã«æäœãšãã©ã«ã管çã®åºæ¬ã«ã€ããŠèª¬æããŸãããããã®ç¥èãç¿åŸããããšã§ããã¡ã€ã«éžæãã€ã¢ãã°ã®è¡šç€ºããã¡ã€ã«ã®ãªãŒãã³ã»ä¿åããã©ã«ãã®äœæã»ç®¡çãªã©ãããå®çšçãªVBAã¢ããªã±ãŒã·ã§ã³ãéçºã§ããããã«ãªããŸãã
- 第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ãæŽ»çšããé«åºŠãªãã¡ã€ã«æäœ
ç®æ¬¡
ã¯ããã«
ãã¡ã€ã«éžæãã€ã¢ãã°ã®è¡šç€º
ãã¡ã€ã«ãéãæ¹æ³
ãã¡ã€ã«ã®ä¿ååŠç
ãã©ã«ãéžæãã€ã¢ãã°ã®è¡šç€º
ãã©ã«ãã®äœæ
ãã¡ã€ã«åã»ãã©ã«ãåã®å€æŽ
ãŸãšã
ã¯ããã«
Excel VBAã§ãã¡ã€ã«ããã©ã«ããæäœããããšã§ãæ¥ã ã®æ¥åãããå¹ççã«èªååããããšãã§ããè€éãªãã¡ã€ã«ç®¡çãç°¡ç¥åãããŸãããã®èšäºã§ã¯ããŠãŒã¶ãŒããã¡ã€ã«ãéžæããããã®ãã€ã¢ãã°ã®è¡šç€ºæ¹æ³ããExcelãã¡ã€ã«ã®ééãããŒã¿ã®ä¿åæ¹æ³ãããã«ã¯ãã©ã«ãã®äœæãšç®¡çãšãã£ãåºæ¬æäœã解説ããŸããVBAãé§äœ¿ããããšã§ãExcelã®æäœãèªååãããæ¥åå¹çãå€§å¹ ã«åäžããã§ãããã
ãã¡ã€ã«éžæãã€ã¢ãã°ã®è¡šç€º
Excel VBAã§ã¯ãApplication.GetOpenFilename
ã¡ãœããã䜿çšããããšã§ãWindowsã®æšæºçãªãã¡ã€ã«éžæãã€ã¢ãã°ã衚瀺ãããŠãŒã¶ãŒã«ãã¡ã€ã«ãéžæãããããšãã§ããŸãããã®ã¡ãœããã¯ãã¡ã€ã«ãã¹ã®ååŸã®ã¿ãè¡ããå®éã«ãã¡ã€ã«ãéãããã§ã¯ãããŸããã
åºæ¬æ§æ
Application.GetOpenFilename([FileFilter], [FilterIndex], [Title], [ButtonText], [MultiSelect])
åŒæ° | 説æ | ããã©ã«ãå€ |
---|---|---|
FileFilter | ãã¡ã€ã«ã®çš®é¡ããã£ã«ã¿ãªã³ã°ããããã®èšå® äŸ: "Excel ãã¡ã€ã« (*.xlsx), .xlsx,ããã¹ã ãã¡ã€ã« (.txt), *.txt" |
"ãã¹ãŠã®ãã¡ã€ã«(.),." |
FilterIndex | 䜿çšãããã£ã«ã¿ã®ã€ã³ããã¯ã¹ | 1 |
Title | ãã€ã¢ãã°ããã¯ã¹ã®ã¿ã€ãã« | "ãã¡ã€ã«ãéã" |
ButtonText | (Macéå®) ãã¿ã³ã«è¡šç€ºããããã¹ã | "éã" |
MultiSelect | è€æ°ã®ãã¡ã€ã«ãéžæã§ãããã©ãã True ã§è€æ°éžæå¯èœ |
False |
' ãã¡ã€ã«éžæãã€ã¢ãã°ã衚瀺ããéžæããããã¡ã€ã«ã®ãã¹ãååŸ
Sub GetFilePath()
' 倿°å®£èš
Dim filePath As Variant
' ãã¡ã€ã«éžæãã€ã¢ãã°ã衚瀺
filePath = Application.GetOpenFilename( _
FileFilter:="Excelãã¡ã€ã« (*.xlsx),*.xlsx,ãã¹ãŠã®ãã¡ã€ã« (*.*),*.*", _
Title:="åŠçãããã¡ã€ã«ãéžæããŠãã ãã", _
MultiSelect:=False)
' ãã£ã³ã»ã«ãããå Žå
If filePath = False Then
MsgBox "ãã¡ã€ã«éžæããã£ã³ã»ã«ãããŸããã", vbInformation
Exit Sub
End If
' éžæããããã¡ã€ã«ãã¹ãã¡ãã»ãŒãžããã¯ã¹ã§è¡šç€º
MsgBox "éžæããããã¡ã€ã«: " & filePath, vbInformation
End Sub
FileFilter
åŒæ°ã®æžåŒã¯ã説ææ1,æ¡åŒµå1,説ææ2,æ¡åŒµå2,...ããšãã圢åŒã§ãã説ææãšãã®çŽåŸã®æ¡åŒµåããã¢ã«ãªã£ãŠããããšã«æ³šæããŠãã ããã
è€æ°ãã¡ã€ã«ã®éžæ
MultiSelect
åŒæ°ãTrue
ã«èšå®ãããšããŠãŒã¶ãŒã¯è€æ°ã®ãã¡ã€ã«ãéžæã§ããããã«ãªããŸãããã¡ã€ã«ãéžæãããå Žåãæ»ãå€ã¯ãã¡ã€ã«ãã¹ãå«ãé
åã«ãªããŸãããã£ã³ã»ã«ãããå Žåã¯ãåäžéžæã®å Žåãšåæ§ã«åçŽãª False
å€ïŒBooleanåïŒãè¿ãããŸãã
' è€æ°ã®ãã¡ã€ã«ãéžæã§ãããã€ã¢ãã°ã衚瀺
Sub GetMultipleFilePaths()
' 倿°å®£èš
Dim filePaths As Variant
Dim i As Long
Dim fileList As String
' è€æ°ãã¡ã€ã«éžæå¯èœãªãã€ã¢ãã°ã衚瀺
filePaths = Application.GetOpenFilename( _
FileFilter:="Excelãã¡ã€ã« (*.xlsx;*.xls),*.xlsx;*.xls", _
Title:="åŠçãããã¡ã€ã«ãéžæããŠãã ãã", _
MultiSelect:=True)
' ãã£ã³ã»ã«ãããå Žå
If TypeName(filePaths) = "Boolean" Then
MsgBox "ãã¡ã€ã«éžæããã£ã³ã»ã«ãããŸããã", vbInformation
Exit Sub
End If
' éžæããããã¡ã€ã«ã®äžèЧãäœæ
fileList = "éžæããããã¡ã€ã«:" & vbCrLf & vbCrLf
For i = LBound(filePaths) To UBound(filePaths)
fileList = fileList & filePaths(i) & vbCrLf
Next i
' éžæããããã¡ã€ã«äžèЧã衚瀺
MsgBox fileList, vbInformation
End Sub
è€æ°ãã¡ã€ã«éžææã®æ³šæç¹
MultiSelect = True
ã®å Žåãæ»ãå€ã¯åžžã«é
åãšããŠè¿ãããããããã£ã³ã»ã«å€å®ã«ã¯ç¹å¥ãªåŠçãå¿
èŠã§ãã
ãã£ã³ã»ã«æã¯ãåäžéžæã®å Žåã®ããã« False
ãè¿ãããŸããããããè€æ°éžæããå Žåã¯ãé
åãè¿ãããŸãããã®ãããIf filePaths = False Then
ã®ãããªåçŽãªæ¯èŒã§ã¯ãšã©ãŒãçºçããŸãã
æ£ãããã£ã³ã»ã«ãå€å®ããã«ã¯ããŸã TypeName
颿°ã䜿çšããŠåãå€å®ããå¿
èŠããããŸããããã㯠IsArray
颿°ã§é
åãã©ããã確èªããæ¹æ³ãæå¹ã§ããïŒäŸïŒIf Not IsArray(filePaths) Then
ïŒ
ãã¡ã€ã«ãéãæ¹æ³
Excelããã¯ãéãã«ã¯ãWorkbooks
ã³ã¬ã¯ã·ã§ã³ã® Open
ã¡ãœããã䜿çšããŸããApplication.GetOpenFilename
ã§ååŸãããã¡ã€ã«ãã¹ã䜿çšããŠããã¡ã€ã«ãéãããšãã§ããŸãã
åºæ¬æ§æ
Workbooks.Open(Filename, [UpdateLinks], [ReadOnly], [Format], [Password], [WriteResPassword], [IgnoreReadOnlyRecommended], [Origin], [Delimiter], [Editable], [Notify], [Converter], [AddToMru], [Local], [CorruptLoad])
äž»ãªåŒæ°
åŒæ° | 説æ |
---|---|
Filename | éããã¡ã€ã«ã®ååïŒãã¹ïŒ |
ReadOnly | Trueã®å Žåãèªã¿åãå°çšã§éã |
Password | ãã¡ã€ã«ãéãããã®ãã¹ã¯ãŒã |
Origin | ããã¹ããã¡ã€ã«ã®å Žåããã¡ã€ã«ã®å ã®åœ¢åŒãæå®ïŒäŸ: xlWindows, xlMacintoshïŒ |
Delimiter | ããã¹ããã¡ã€ã«ã®å Žåãåºåãæåãæå®ïŒäŸ: ã«ã³ã "," ãã¿ãçïŒ |
ä»ã®åŒæ°ã«ã€ããŠç¥ãããæ¹ã¯ãå ¬åŒã®Workbooks.Open ã¡ãœãã (Excel)ãã芧ãã ããã
åºæ¬çãªäœ¿ãæ¹
' åºæ¬çãªãã¡ã€ã«ãéãåŠç
Sub OpenExcelFile()
' 倿°å®£èš
Dim filePath As Variant
Dim wb As Workbook
' ãã¡ã€ã«éžæãã€ã¢ãã°ã衚瀺
filePath = Application.GetOpenFilename( _
FileFilter:="Excelãã¡ã€ã« (*.xlsx),*.xlsx", _
Title:="éããã¡ã€ã«ãéžæããŠãã ãã")
' ãã£ã³ã»ã«ãããå Žåã¯åŠçãçµäº
If filePath = False Then
MsgBox "ãã¡ã€ã«éžæããã£ã³ã»ã«ãããŸããã", vbInformation
Exit Sub
End If
' éžæããããã¡ã€ã«ãéã
Set wb = Workbooks.Open(Filename:=filePath)
' åŠçæåã®ã¡ãã»ãŒãžã衚瀺
MsgBox "ãã¡ã€ã«ãéããŸããïŒ" & wb.Name, vbInformation
End Sub
CSVãã¡ã€ã«ãéãå Žå
CSVãã¡ã€ã«ãéãå Žåã¯ãåºåãæåãªã©ã®è¿œå èšå®ãå¿ èŠã«ãªãããšããããŸãã
' CSVãã¡ã€ã«ãéãäŸ
Sub OpenCSVFile()
' 倿°å®£èš
Dim filePath As Variant
Dim wb As Workbook
' CSVãã¡ã€ã«éžæãã€ã¢ãã°ã衚瀺
filePath = Application.GetOpenFilename( _
FileFilter:="CSVãã¡ã€ã« (*.csv),*.csv", _
Title:="éãCSVãã¡ã€ã«ãéžæããŠãã ãã")
' ãã£ã³ã»ã«ãããå Žåã¯åŠçãçµäº
If filePath = False Then
MsgBox "ãã¡ã€ã«éžæããã£ã³ã»ã«ãããŸããã", vbInformation
Exit Sub
End If
' CSVãã¡ã€ã«ãéãïŒåºåãæåã¯ã«ã³ããå
ã®åœ¢åŒã¯CSVïŒ
Set wb = Workbooks.Open(Filename:=filePath, _
Origin:=xlWindows, _
Delimiter:=",")
' ãã¡ã€ã«ãéããããšãéç¥
MsgBox "CSVãã¡ã€ã«ãéããŸããïŒ" & wb.Name, vbInformation
End Sub
Workbooks.Openã¡ãœããã§éããWorkbookã¯å€æ°ã«æ ŒçŽããŠãããšãåŸç¶ã®åŠçã§åç §ã§ãããã䟿å©ã§ããéããã¯ãŒã¯ããã¯ã«å¯ŸããŠåŠçãè¡ãããå Žåã¯ã倿°ã«æ ŒçŽããããšãéèŠã§ãã
ãšã©ãŒãã³ããªã³ã°
ãã¡ã€ã«ãéãåŠçã¯ãæ§ã
ãªåå ã§å€±æããå¯èœæ§ããããŸããäŸãã°ãæå®ãããã¡ã€ã«ãã¹ã«ãã¡ã€ã«ãååšããªãããã¡ã€ã«ãç ŽæããŠãããã¢ã¯ã»ã¹æš©éããªãããã¡ã€ã«ãå¥ã®ããã°ã©ã ã«ãŠäœ¿çšäžã§ããã¯ãããŠããããªã©ã®ç¶æ³ãèããããŸãã
ããããç¶æ³ã«å¯ŸåŠããããã®ãšã©ãŒãã³ããªã³ã°ã«ã€ããŠãèæ
®ããããšãéèŠã§ãã
' ãšã©ãŒãã³ããªã³ã°ãå«ããã¡ã€ã«ãéãåŠç
Sub OpenExcelFileWithErrorHandling()
' 倿°å®£èš
Dim filePath As Variant
Dim wb As Workbook
' ãšã©ãŒãã³ããªã³ã°
On Error GoTo ErrorHandler
' ãã¡ã€ã«éžæãã€ã¢ãã°ã衚瀺
filePath = Application.GetOpenFilename( _
FileFilter:="Excelãã¡ã€ã« (*.xlsx),*.xlsx", _
Title:="éããã¡ã€ã«ãéžæããŠãã ãã")
' ãã£ã³ã»ã«ãããå Žåã¯åŠçãçµäº
If filePath = False Then
MsgBox "ãã¡ã€ã«éžæããã£ã³ã»ã«ãããŸããã", vbInformation
Exit Sub
End If
' éžæããããã¡ã€ã«ãéã
Set wb = Workbooks.Open(Filename:=filePath)
' åŠçæåã®ã¡ãã»ãŒãžã衚瀺
MsgBox "ãã¡ã€ã«ãéããŸããïŒ" & wb.Name, vbInformation
Exit Sub ' æ£åžžçµäºæã¯ããã§ãµãããã·ãŒãžã£ãçµäº
ErrorHandler:
' ãšã©ãŒã®å
容ã衚瀺
MsgBox "ãã¡ã€ã«ãéããŸããã§ããã" & vbCrLf & _
"ãšã©ãŒçªå·: " & Err.Number & vbCrLf & _
"ãšã©ãŒå
容: " & Err.Description, vbExclamation
End Sub
ãšã©ãŒåŠç
ãšã©ãŒãã³ããªã³ã°ã®åºæ¬çãªæ¹æ³ã«ã¯ On Error Resume Next
ïŒãšã©ãŒãç¡èŠããŠç¶è¡ïŒãš On Error GoTo ã©ãã«å
ïŒãšã©ãŒçºçæã«ç¹å®ã®åŠçãžãžã£ã³ãïŒããããŸããVBAã§åŠçãå®å®ãããããã«ã¯ããšã©ãŒãã³ããªã³ã°ãé©åã«è¡ãããšãéèŠã§ãã
ãšã©ãŒåŠçã«ã€ããŠã¯ãäžèšã§è§£èª¬ããŠãããŸãã®ã§ããã²ã芧ãã ããã
第4å: Excel VBAã«ãããã·ãŒãæäœã®åºæ¬ãšãšã©ãŒåŠç
GetSaveFilenameã¡ãœãã
ãã¡ã€ã«ãä¿åããéã®ãã¹ãååŸããã«ã¯ãApplication.GetSaveFilename
ã¡ãœããã䜿çšããŸããäœ¿ãæ¹ã¯GetOpenFilename
ãšã»ãŒåãã§ãã
' ä¿åå
ãéžæãããã€ã¢ãã°ã衚瀺
Sub GetSaveFilePath()
' 倿°å®£èš
Dim saveFilePath As Variant
' ä¿åãã€ã¢ãã°ã衚瀺
saveFilePath = Application.GetSaveFilename( _
FileFilter:="Excelãã㯠(*.xlsx),*.xlsx,Excel 97-2003 ãã㯠(*.xls),*.xls", _
Title:="ãã¡ã€ã«ã®ä¿åå
ãéžæããŠãã ãã", _
InitialFileName:="ã¬ããŒã_" & Format(Date, "yyyymmdd") & ".xlsx")
' ãã£ã³ã»ã«ãããå Žå
If saveFilePath = False Then
MsgBox "ä¿åããã£ã³ã»ã«ãããŸããã", vbInformation
Exit Sub
End If
' éžæããããã¹ã衚瀺
MsgBox "ä¿åå
: " & saveFilePath, vbInformation
End Sub
远å ã®åŒæ°
åŒæ° | 説æ | äŸ |
---|---|---|
InitialFileName | åæè¡šç€ºã®ä¿åãããã¡ã€ã«å | "ã¬ããŒã.xlsx" |
ãã¡ã€ã«ã®ä¿ååŠç
Excel VBAã§ã¯ãã¯ãŒã¯ããã¯ãä¿åããããã«Workbook.SaveAs
ã¡ãœããã䜿çšããŸããæ°èŠä¿åã ãã§ãªããå¥åä¿åãç°ãªã圢åŒã§ã®ä¿åããã®ã¡ãœããã§è¡ãããšãã§ããŸãã
' ã¢ã¯ãã£ããªã¯ãŒã¯ããã¯ãå¥åã§ä¿åãã
Sub SaveWorkbookAs()
' 倿°å®£èš
Dim saveFilePath As Variant
' ä¿åãã€ã¢ãã°ã衚瀺
saveFilePath = Application.GetSaveFilename( _
FileFilter:="Excelãã㯠(*.xlsx),*.xlsx,Excel 97-2003 ãã㯠(*.xls),*.xls", _
Title:="ãã¡ã€ã«ã®ä¿åå
ãéžæããŠãã ãã", _
InitialFileName:="æ°ããã¬ããŒã.xlsx")
' ãã£ã³ã»ã«ãããå Žå
If saveFilePath = False Then Exit Sub
' ãã¡ã€ã«ãä¿å
ActiveWorkbook.SaveAs _
Filename:=saveFilePath, _
FileFormat:=xlOpenXMLWorkbook, _
CreateBackup:=False
MsgBox "ãã¡ã€ã«ãä¿åãããŸãã: " & saveFilePath, vbInformation
End Sub
SaveAsã¡ãœããã®äž»ãªåŒæ°
åŒæ° | 説æ | äŸ |
---|---|---|
Filename | ä¿åãããã¡ã€ã«åïŒãã«ãã¹ïŒ | "C:\Reports\Report.xlsx" |
FileFormat | ãã¡ã€ã«åœ¢åŒãæå®ãã宿° | xlOpenXMLWorkbook (xlsx圢åŒ) |
Password | ãã¡ã€ã«ãéãããã®ãã¹ã¯ãŒã | "SecretPassword" |
WriteResPassword | æžã蟌ã¿ä¿è·ã®ãã¹ã¯ãŒã | "EditPassword" |
ReadOnlyRecommended | èªã¿åãå°çšãæšå¥šããã | True/False |
CreateBackup | ããã¯ã¢ãããã¡ã€ã«ãäœæããã | True/False |
äž»ãªFileFormat宿°
宿° | å€ | 説æ |
---|---|---|
xlOpenXMLWorkbook | 51 | Excel 2007以éã®æšæºåœ¢åŒ (.xlsx) |
xlExcel8 | 56 | Excel 97-2003åœ¢åŒ (.xls) |
xlCSV | 6 | CSVãã¡ã€ã«åœ¢åŒ (.csv) |
xlTextPrinter | 36 | ããã¹ããã¡ã€ã«åœ¢åŒ (.txt) |
xlOpenXMLWorkbookMacroEnabled | 52 | ãã¯ãæå¹ãã㯠(.xlsm) |
xlPDF | 57 | PDFãã¡ã€ã«åœ¢åŒ (.pdf) |
SaveAs
ã¡ãœãããå®è¡ãããšãä¿åå
ã«ååã®ãã¡ã€ã«ãæ¢ã«ååšããå Žåã¯äžæžããããŸããå¿
èŠã«å¿ããŠãäºåã«ãã¡ã€ã«ã®ååšç¢ºèªãšç¢ºèªãã€ã¢ãã°ã®è¡šç€ºãæ€èšããŠãã ããã
æ¢åã®ã¯ãŒã¯ããã¯ã®ä¿å
æ¢åã®ã¯ãŒã¯ããã¯ãäžæžãä¿åããå Žåã¯ãåã«Workbook.Save
ã¡ãœããã䜿çšããŸãã
' ã¢ã¯ãã£ããªã¯ãŒã¯ããã¯ãäžæžãä¿åãã
Sub SaveCurrentWorkbook()
' æªä¿åã®æ°èŠã¯ãŒã¯ããã¯ãã©ãã確èª
If ActiveWorkbook.Path = "" Then
' äžåºŠãä¿åãããŠããªãå Žåã¯SaveAsã䜿çš
Dim saveFilePath As Variant
saveFilePath = Application.GetSaveFilename( _
FileFilter:="Excelãã㯠(*.xlsx),*.xlsx", _
Title:="æ°èŠãã¡ã€ã«ã®ä¿åå
ãéžæããŠãã ãã")
If saveFilePath = False Then Exit Sub
ActiveWorkbook.SaveAs Filename:=saveFilePath
Else
' æ¢åã®ãã¡ã€ã«ã¯åã«äžæžãä¿å
ActiveWorkbook.Save
End If
MsgBox "ãã¡ã€ã«ãä¿åãããŸããã", vbInformation
End Sub
çŸåšã®ããã¯ãšåãå Žæã«ä¿å
VBAã§ã¯ãçŸåšå®è¡äžã®ããã¯ãšåããã©ã«ãã«å¥ã®ãã¡ã€ã«ãä¿åãããå ŽåããããŸãããã®ãããªå Žåã¯ãThisWorkbook.Path
ããããã£ã䜿ããšäŸ¿å©ã§ãããã®ããããã£ã¯ãçŸåšã®ãã¯ããæ ŒçŽãããŠããããã¯ã®ãã©ã«ããã¹ãååŸããŸãã
' çŸåšã®ããã¯ãšåããã©ã«ãã«ãã¡ã€ã«ãä¿å
Sub SaveToSameFolder()
' 倿°å®£èš
Dim currentPath As String
Dim newFileName As String
Dim fullPath As String
' çŸåšã®ããã¯ãä¿åãããŠãããã©ã«ãã®ãã¹ãååŸ
currentPath = ThisWorkbook.Path
' æ°ãããã¡ã€ã«åãèšå®ïŒäŸïŒå
ã®ãã¡ã€ã«å_YYYYMMDD.xlsxïŒ
newFileName = "ããŒã¿ããã¯ã¢ãã_" & Format(Date, "YYYYMMDD") & ".xlsx"
' ãã«ãã¹ãäœæïŒãã¹ãšãã¡ã€ã«åãçµåïŒ
fullPath = currentPath & "\" & newFileName
' ã¢ã¯ãã£ããªã¯ãŒã¯ããã¯ãæ°ããååã§ä¿å
ActiveWorkbook.SaveAs _
Filename:=fullPath, _
FileFormat:=xlOpenXMLWorkbook, _
CreateBackup:=False
' ä¿åå®äºã¡ãã»ãŒãžã衚瀺
MsgBox "以äžã®å Žæã«ãã¡ã€ã«ãä¿åããŸãã:" & vbCrLf & fullPath, vbInformation
End Sub
ãã€ã³ã
-
ThisWorkbook.Path
çŸåšã®ãã¡ã€ã«ãä¿åãããŠãããã¹ãååŸããŸããäŸãã°ããã¡ã€ã«ãC:\MyDocuments\
ã«ä¿åãããŠããå ŽåãThisWorkbook.Path
ã¯C:\MyDocuments
ã«ãªããŸãã -
åããã©ã«ãã«ä¿å
æ°ãããã¡ã€ã«ãåããã©ã«ãå ã«ä¿åããå Žåã¯ãThisWorkbook.Path
ã®åŸã«ãã¡ã€ã«åã远å ããŠãã¹ãæå®ããŸãã
çŸåšã®ããã¯ã®1ã€äžã®ãã©ã«ãã«ä¿å
çŸåšã®ããã¯ããããã©ã«ãã®èŠªãã©ã«ãïŒ1ã€äžã®ãã©ã«ãïŒã«ä¿åãããå ŽåããããŸãããã®ãããªå Žåã¯ãFileSystemObjectïŒåç §èšå®ãå¿ èŠ: 次å以éã®èšäºã§è§£èª¬ããŸãïŒã䜿çšããããæååæäœã§èŠªãã©ã«ãã®ãã¹ãååŸã§ããŸãã
' æååæäœã§èŠªãã©ã«ãã«ãã¡ã€ã«ãä¿å
Sub SaveToParentFolder()
' 芪ãã©ã«ãã®ãã¹ãæ ŒçŽãã倿°
Dim parentPath As String
' ä¿åãããã¡ã€ã«ã®ååãæ ŒçŽãã倿°
Dim newFileName As String
' å®å
šãªãã¡ã€ã«ãã¹ïŒãã©ã«ããã¹+ãã¡ã€ã«åïŒãæ ŒçŽãã倿°
Dim fullPath As String
' æåŸã®ã\ãã®äœçœ®ãæ¢ããŠã芪ãã©ã«ãã®ãã¹ãååŸ
parentPath =Left(ThisWorkbook.Path, InStrRev(ThisWorkbook.Path, "\"))
' æ°ãããã¡ã€ã«åãèšå®ïŒäŸïŒèŠªãã©ã«ãä¿å_YYYYMMDD.xlsxïŒ
newFileName = "\芪ãã©ã«ãä¿å_" & Format(Date, "YYYYMMDD") & ".xlsx"
' ãã«ãã¹ãäœæïŒèŠªãã¹ãšãã¡ã€ã«åãçµåïŒ
fullPath = parentPath & newFileName
' ã¢ã¯ãã£ããªã¯ãŒã¯ããã¯ãæ°ããååã§ä¿å
ActiveWorkbook.SaveAs Filename:=fullPath
' ä¿åå®äºã¡ãã»ãŒãžã衚瀺
MsgBox "芪ãã©ã«ãã«ä¿åããŸãã:" & vbCrLf & fullPath, vbInformation
End Sub
ãã€ã³ã
-
1ã€äžã®ãã©ã«ãã®ååŸ
InStrRev
ã䜿çšããŠãæåŸã®ãã©ã«ãåºåãæåïŒ\
ïŒãèŠã€ããããã«ãã®1ã€äžã®ãã©ã«ããŸã§ã®ãã¹ãååŸããŸããïŒInStrRev
: æå®ããæåãå³ããïŒæ«å°ŸããïŒæ€çŽ¢ããæåã«èŠã€ãã£ãäœçœ®ãè¿ã颿°ïŒ -
ãã¹ã®æäœ
Left
颿°ãšInStrRev
颿°ãçµã¿åãããŠã1ã€äžã®ãã©ã«ããã¹ãåçã«ååŸããŠããŸãã
ThisWorkbook.Path
ãæŽ»çšããããšã§ããŠãŒã¶ãŒã«ä¿åå Žæãæ¯åæå®ãããããšãªããé©åãªå Žæã«ãã¡ã€ã«ãä¿åã§ããããã«ãªããŸããããã¯ç¹ã«å®æçãªããã¯ã¢ãããã¬ããŒãçæãªã©ã®èªååŠçã«åœ¹ç«ã¡ãŸãã
ãã©ã«ãéžæãã€ã¢ãã°ã®è¡šç€º
ãã¡ã€ã«éžæã ãã§ãªãããã©ã«ããéžæããããå ŽåããããŸããäŸãã°ãè€æ°ã®ãã¡ã€ã«ãäžæ¬åŠçãã察象ãã©ã«ãããåŠççµæã®ä¿åå ãã©ã«ãããŠãŒã¶ãŒã«éžã°ãããå Žåãªã©ã§ãã
ãã®å Žåã¯ãApplication.FileDialog
ã䜿çšããŸããApplication.GetOpenFilename
ãšäŒŒãŠããŸããããã¡ãã¯ãã¡ã€ã«ã§ã¯ãªããã©ã«ããéžæããããã«äœ¿çšããŸãã
FileDialogãªããžã§ã¯ããšã¯
FileDialog
ãªããžã§ã¯ãã¯ãMicrosoft Officeã¢ããªã±ãŒã·ã§ã³ã§å©çšã§ããããã¡ã€ã«ãéããããä¿åãããããã©ã«ããéžæãããããããã®ãã€ã¢ãã°ããã¯ã¹ãããã°ã©ã ããå¶åŸ¡ããããã®ãªããžã§ã¯ãã§ããFileDialog
ãªããžã§ã¯ãã䜿çšãããšãWindowsã®æšæºçãªãã¡ã€ã«éžæãã€ã¢ãã°ããã©ã«ãéžæãã€ã¢ãã°ã衚瀺ãããŠãŒã¶ãŒã«éžæãããããšãã§ããŸãã
åºæ¬æ§æ
Application.FileDialog(msoFileDialogType)
msoFileDialogType
ã«ã¯ã以äžã®ããããã®å®æ°ãæå®ããŸãã
宿° | 説æ |
---|---|
msoFileDialogOpen | ãã¡ã€ã«ãéãããã®ãã€ã¢ãã°ã衚瀺ããŸã |
msoFileDialogSaveAs | ãã¡ã€ã«ãä¿åããããã®ãã€ã¢ãã°ã衚瀺ããŸã |
msoFileDialogFilePicker | ãã¡ã€ã«ãéžæããããã®ãã€ã¢ãã°ã衚瀺ããŸã |
msoFileDialogFolderPicker | ãã©ã«ããéžæããããã®ãã€ã¢ãã°ã衚瀺ããŸã |
ä»åã¯ããã©ã«ããéžæãããã®ã§ãmsoFileDialogFolderPicker
ã䜿çšããŸãã
Sub SelectFolder()
Dim folderPath As String ' ãã©ã«ãã®ãã¹ãæ ŒçŽãã倿°
' ãã©ã«ããéžæãããã€ã¢ãã°ã衚瀺
With Application.FileDialog(msoFileDialogFolderPicker)
' ãã€ã¢ãã°ãOKã§éããããªãã£ãå Žåã¯çµäº
If .Show <> True Then Exit Sub
' éžæããããã©ã«ãã®ãã¹ãååŸ
folderPath = .SelectedItems(1)
End With
' éžæããããã©ã«ãã®ãã¹ãã¡ãã»ãŒãžããã¯ã¹ã§è¡šç€º
MsgBox "éžæãããã©ã«ã: " & folderPath, vbInformation
End Sub
ããããã£ã®èª¬æ
ããããã£å | 説æ | äŸ |
---|---|---|
Title | ãã€ã¢ãã°ããã¯ã¹ã®ã¿ã€ãã«ããŒã«è¡šç€ºããããã¹ã | .Title = "åŠç察象ãã©ã«ããéžæ" |
ButtonName | éžæãã¿ã³ã«è¡šç€ºããããã¹ãïŒç°å¢ã«ãã£ãŠå¯Ÿå¿ããŠããªãå ŽåããïŒ | .ButtonName = "éžæ" |
InitialFileName | åæè¡šç€ºãããã©ã«ãã®ãã¹ | .InitialFileName = "C:\Data" |
InitialView | ãã¡ã€ã«ããã©ã«ãã®è¡šç€ºåœ¢åŒ | .InitialView = msoFileDialogViewDetails |
AllowMultiSelect | è€æ°éžæãèš±å¯ãããã©ããïŒãã©ã«ãéžæã§ã¯åžžã«FalseïŒ | .AllowMultiSelect = False |
InitialView ããããã£
- msoFileDialogViewDetails: 詳现衚瀺ïŒãã¡ã€ã«åããµã€ãºãæ¥ä»ãªã©ïŒ
- msoFileDialogViewLargeIcons: 倧ããã¢ã€ã³ã³è¡šç€º
- msoFileDialogViewSmallIcons: å°ããã¢ã€ã³ã³è¡šç€º
- msoFileDialogViewList: ãªã¹ã衚瀺
- msoFileDialogViewPreview: ãã¬ãã¥ãŒè¡šç€º
- msoFileDialogViewProperties: ããããã£è¡šç€º
- msoFileDialogViewThumbnail: ãµã ãã€ã«è¡šç€º
- msoFileDialogViewWebView: Web衚瀺
- msoFileDialogViewTiles: ã¿ã€ã«è¡šç€º
åæè¡šç€ºãã©ã«ããæå®
ç¹å®ã®ãã©ã«ããåæè¡šç€ºãããå ŽåããããŸããäŸãã°ãããã¥ã¡ã³ããã©ã«ããç¹å®ã®ãããžã§ã¯ããã©ã«ããæåã«éãããã«èšå®ããããšã§ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåäžãããããšãã§ããŸãã
åæè¡šç€ºãã©ã«ããæå®ããã«ã¯ãInitialFileName
ããããã£ã䜿çšããŸãã
Sub SelectFolderWithInitialView()
' éžæããããã©ã«ãã®ãã¹ãæ ŒçŽãã倿°
Dim folderPath As String
' åæè¡šç€ºããããã©ã«ãã®ãã¹ãæ ŒçŽãã倿°
Dim initialFolder As String
' åæè¡šç€ºããããã©ã«ãã®ãã¹ãèšå®
initialFolder = "C:\Users\ãŠãŒã¶ãŒå\Documents" ' äŸïŒããã¥ã¡ã³ããã©ã«ã
' ãã©ã«ããéžæãããã€ã¢ãã°ã衚瀺
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "ãã©ã«ããéžæããŠãã ãã" ' ãã€ã¢ãã°ã®ã¿ã€ãã«ãèšå®
.AllowMultiSelect = False ' è€æ°éžæãçŠæ¢
.InitialFileName = initialFolder ' åæè¡šç€ºãã©ã«ããæå®
' ãã€ã¢ãã°ã衚瀺ã
If .Show <> True Then
' ãã£ã³ã»ã«ãããå Žåã¯åŠçãçµäº
Exit Sub
End If
' éžæããããã©ã«ãã®ãã¹ãååŸ
folderPath = .SelectedItems(1)
' éžæããããã©ã«ãã®ãã¹ãã¡ãã»ãŒãžããã¯ã¹ã«è¡šç€º
MsgBox "éžæããããã©ã«ã: " & folderPath
End With
End Sub
ãã©ã«ãã®äœæ
ãã©ã«ããäœæããã«ã¯ãMkDir
ã¹ããŒãã¡ã³ãã䜿çšããŸãã
åºæ¬æ§æ
MkDir path
path
ã¯äœæãããã©ã«ãã®çµ¶å¯Ÿãã¹ãŸãã¯çžå¯Ÿãã¹ã§ãã
åºæ¬çãªäœ¿ãæ¹
Sub CreateFolder()
' äœæããããã©ã«ãã®ãã¹ãèšå®
Dim newFolderPath As String
newFolderPath = "C:\Users\ãŠãŒã¶ãŒå\Documents\æ°ãããã©ã«ã"
' ãšã©ãŒãã³ããªã³ã°ãå°å
¥ïŒãã©ã«ããæ¢ã«ååšããå Žåã«åããŠïŒ
On Error Resume Next
' MkDirã¹ããŒãã¡ã³ããçšããŠæ°èŠãã©ã«ããäœæ
MkDir newFolderPath
' ãšã©ãŒãã§ãã¯ïŒãšã©ãŒãçºçããŠããªãã調ã¹ãã¡ãã»ãŒãžã衚瀺
If Err.Number = 0 Then
MsgBox "ãã©ã«ããäœæãããŸãã: " & newFolderPath
Else
' ãšã©ãŒçªå·ã確èªããæ¢ã«ååšããå Žåã®ã¡ãã»ãŒãžãèšå®
If Err.Number = 75 Then ' ãšã©ãŒçªå·75ã¯ç¹ã«ããã©ã«ããæ¢ã«ååšããããªã©
MsgBox "ãã©ã«ãã¯æ¢ã«ååšããŠããŸãã: " & newFolderPath
Else
MsgBox "ãã©ã«ãäœæäžã«ãšã©ãŒãçºçããŸããããšã©ãŒçªå·: " & Err.Number
End If
End If
' ãšã©ãŒãã³ããªã³ã°ã®çµäº
On Error GoTo 0
End Sub
å ¥ãåãã©ã«ãã®äœæ
芪ãã©ã«ããååšããªãå Žåããã®ãµããã©ã«ããçŽæ¥äœæããããšãããšãšã©ãŒãçºçããŸããå ¥ãåãã©ã«ããäœæããå Žåã¯ã芪ãã©ã«ãããé ã«äœæããå¿ èŠããããŸãã
' è€æ°éå±€ã®ãã©ã«ããäœæ
Sub CreateNestedFolders()
' äœæããéå±€çãªãã©ã«ããã¹ãæå®
Dim basePath As String
Dim year As String
Dim month As String
Dim fullPath As String
' åºæ¬ãšãªããã¹ãèšå®
basePath = "C:\ReportData"
' 幎æã®ãã©ã«ãåãäœæ
year = "2023幎"
month = "10æ"
' ãã©ã«ãã®ãã¹ãçµã¿ç«ãŠ
Dim yearPath As String
Dim monthPath As String
yearPath = basePath & "\" & year
monthPath = yearPath & "\" & month
' åºæ¬ãã©ã«ããååšããªããã°äœæ
If Dir(basePath, vbDirectory) = "" Then
MkDir basePath
End If
' 幎ãã©ã«ããååšããªããã°äœæ
If Dir(yearPath, vbDirectory) = "" Then
MkDir yearPath
End If
' æãã©ã«ããååšããªããã°äœæ
If Dir(monthPath, vbDirectory) = "" Then
MkDir monthPath
End If
MsgBox "以äžã®ãã©ã«ãæ§é ãäœæããŸãã:" & vbCrLf & _
monthPath, vbInformation
End Sub
Dir颿°ã«ã€ããŠ
Dir(path, [attributes])
颿°ã¯ãæå®ããããã¹ã«ãããã¡ã€ã«ããã©ã«ããæ€çŽ¢ããŸãã
- 第1åŒæ°
path
ã«ã¯æ€çŽ¢ãããã¹ãæå®ããŸã - 第2åŒæ°
attributes
ã«ã¯æ€çŽ¢ãããã¡ã€ã«ã®å±æ§ãæå®ããŸãïŒvbDirectoryã¯ãã©ã«ããæå³ããŸãïŒ - ãã©ã«ããååšããªãå Žåã¯ç©ºã®æåå("")ãè¿ããŸã
æ¥ä»ãå«ããã©ã«ãåã®äœæ
æ¥åã§ã¯æ¥ä»ã®ãã©ã«ããäœæããããšããããããŸãã以äžã®äŸã§ã¯çŸåšã®æ¥ä»ã䜿çšãããã©ã«ããäœæããŸãã
' æ¥ä»ãå«ããã©ã«ããäœæããäŸ
Sub CreateDateFolder()
' åºæ¬ãšãªããã¹ãèšå®
Dim basePath As String
basePath = "C:\Backups"
' çŸåšã®æ¥ä»ãååŸããŠãã©ã«ãåã«äœ¿çšïŒäŸïŒ20231015ïŒ
Dim todayFolder As String
todayFolder = Format(Date, "yyyymmdd")
' å®å
šãªãã¹ãçµã¿ç«ãŠ
Dim fullPath As String
fullPath = basePath & "\" & todayFolder
' ããŒã¹ãã©ã«ããååšããã確èª
If Dir(basePath, vbDirectory) = "" Then
' ããŒã¹ãã©ã«ããååšããªãå Žåã¯äœæ
MkDir basePath
End If
' æ¥ä»ãã©ã«ããååšããã確èª
If Dir(fullPath, vbDirectory) = "" Then
' æ¥ä»ãã©ã«ããååšããªãå Žåã¯äœæ
MkDir fullPath
MsgBox "仿¥ã®æ¥ä»ã®ãã©ã«ããäœæããŸãã: " & fullPath, vbInformation
Else
' æ¢ã«ååšããå Žåã¯ã¡ãã»ãŒãžã衚瀺
MsgBox "仿¥ã®æ¥ä»ã®ãã©ã«ãã¯æ¢ã«ååšããŸã: " & fullPath, vbExclamation
End If
End Sub
MkDirã䜿çšããéã®æ³šæç¹
- äœæããããšãããã¹ã®èŠªãã©ã«ããååšããªãå Žåããšã©ãŒãçºçããŸã
- æ¢ã«ååšãããã©ã«ããäœæããããšãããšãšã©ãŒã«ãªããŸã
-
Dir
颿°ã䜿çšããŠäºåã«ãã©ã«ãã®ååšç¢ºèªãããããšããå§ãããŸã - ãããã¯ãŒã¯ãã©ã€ãã«ãã©ã«ããäœæããå Žåãé©åãªã¢ã¯ã»ã¹æš©ãããããšã確èªããŠãã ãã
ãã¡ã€ã«åã»ãã©ã«ãåã®å€æŽ
ãã¡ã€ã«ããã©ã«ãã®ååã倿Žããæ¹æ³ãšããŠãName
ã¹ããŒãã¡ã³ãã䜿çšããŸãããã® Name
ã¹ããŒãã¡ã³ããæŽ»çšããããšã§ãæåã§ãã¡ã€ã«åã倿Žããæéãæžãããèªååããããšãã§ããŸãã
åºæ¬æ§æ
Name å€ããã¹ As æ°ãããã¹
å€ããã¹
ã«ã¯çŸåšã®ãã¡ã€ã«/ãã©ã«ãã®ãã¹ããæ°ãããã¹
ã«ã¯å€æŽåŸã®ãã¹ãæå®ããŸãã
ãã¡ã€ã«åã®å€æŽ
' ãã¡ã€ã«åã倿Žããåºæ¬çãªäŸ
Sub RenameFile()
' 倿°å®£èš
Dim oldPath As String
Dim newPath As String
' 倿Žåãšå€æŽåŸã®ãã¡ã€ã«ãã¹ãèšå®
oldPath = "C:\Data\å€ããã¡ã€ã«.xlsx"
newPath = "C:\Data\æ°ãããã¡ã€ã«.xlsx"
' ãšã©ãŒãã³ããªã³ã°ãèšå®
On Error Resume Next
' Nameã¹ããŒãã¡ã³ãã§ãã¡ã€ã«åã倿Ž
Name oldPath As newPath
' ãšã©ãŒãã§ãã¯
If Err.Number = 0 Then
' ãšã©ãŒããªããã°æåã¡ãã»ãŒãžã衚瀺
MsgBox "ãã¡ã€ã«åã倿ŽããŸããã" & vbCrLf & _
"倿Žå: " & oldPath & vbCrLf & _
"倿ŽåŸ: " & newPath, vbInformation
Else
' ãšã©ãŒãçºçããå Žåã¯ãšã©ãŒã¡ãã»ãŒãžã衚瀺
MsgBox "ãã¡ã€ã«åã®å€æŽã«å€±æããŸããã" & vbCrLf & _
"ãšã©ãŒ: " & Err.Description, vbExclamation
End If
' ãšã©ãŒãã³ããªã³ã°ãçµäº
On Error GoTo 0
End Sub
ãã©ã«ãåã®å€æŽ
ãã©ã«ãåã®å€æŽãåæ§ã« Name
ã¹ããŒãã¡ã³ãã䜿çšããŸãã
' ãã©ã«ãåã倿ŽããäŸ
Sub RenameFolder()
' 倿°å®£èš
Dim oldFolderPath As String
Dim newFolderPath As String
' 倿Žåãšå€æŽåŸã®ãã©ã«ããã¹ãèšå®
oldFolderPath = "C:\Data\å€ããã©ã«ã"
newFolderPath = "C:\Data\æ°ãããã©ã«ã"
' ãã©ã«ããååšããã確èª
If Dir(oldFolderPath, vbDirectory) = "" Then
' ååšããªãå Žåã¯ã¡ãã»ãŒãžã衚瀺ããŠçµäº
MsgBox "倿Žå¯Ÿè±¡ã®ãã©ã«ããèŠã€ãããŸãã: " & oldFolderPath, vbExclamation
Exit Sub
End If
' 倿Žå
ã®ãã©ã«ããæ¢ã«ååšããã確èª
If Dir(newFolderPath, vbDirectory) <> "" Then
' æ¢ã«ååšããå Žåã¯ã¡ãã»ãŒãžã衚瀺ããŠçµäº
MsgBox "倿Žå
ã®ãã©ã«ãåã¯æ¢ã«ååšããŸã: " & newFolderPath, vbExclamation
Exit Sub
End If
' ãšã©ãŒãã³ããªã³ã°ãèšå®
On Error Resume Next
' ãã©ã«ãåã倿Ž
Name oldFolderPath As newFolderPath
' ãšã©ãŒãã§ãã¯
If Err.Number = 0 Then
' æåããå Žåã¯ã¡ãã»ãŒãžã衚瀺
MsgBox "ãã©ã«ãåã倿ŽããŸããã" & vbCrLf & _
"倿Žå: " & oldFolderPath & vbCrLf & _
"倿ŽåŸ: " & newFolderPath, vbInformation
Else
' ãšã©ãŒãçºçããå Žåã¯ã¡ãã»ãŒãžã衚瀺
MsgBox "ãã©ã«ãåã®å€æŽã«å€±æããŸããã" & vbCrLf & _
"ãšã©ãŒ: " & Err.Description, vbExclamation
End If
' ãšã©ãŒãã³ããªã³ã°ãçµäº
On Error GoTo 0
End Sub
Nameã¹ããŒãã¡ã³ãã䜿çšããéã®æ³šæç¹
- 倿Žå ã«ååã®ãã¡ã€ã«ããã©ã«ããæ¢ã«ååšããå Žåã¯ãšã©ãŒã«ãªããŸã
- ãã¡ã€ã«ãéãããŠããïŒäœ¿çšäžïŒã®å Žåã¯å€æŽã§ããŸãã
- ç°ãªããã©ã€ãéã§ã¯Nameã¹ããŒãã¡ã³ãã§ã®ç§»åã¯ã§ããŸããïŒäŸïŒCãã©ã€ãããDãã©ã€ããžïŒ
- ãã¡ã€ã«ã®æš©éã«ãã£ãŠã¯å€æŽã§ããªãå ŽåããããŸã
ãŸãšã
ãã¡ã€ã«æäœãšãã©ã«ã管çã¯ãExcel VBAãæŽ»çšããå¹ççãªæ¥åèªååã«äžå¯æ¬ ãªèŠçŽ ã§ãããã®èšäºã§ç޹ä»ãããã¡ã€ã«éžæãã€ã¢ãã°ã®è¡šç€ºããã¡ã€ã«ã®ééãä¿åæ¹æ³ããããŠãã©ã«ãã®äœæã»ç®¡çãªã©ã®åºæ¬æäœã身ã«ã€ããããšã§ãããå®çšçãªVBAã¢ããªã±ãŒã·ã§ã³ãéçºããããšãå¯èœã«ãªããŸãã
å®åã§ã¯ããšã©ãŒåŠçãé©åã«çµã¿èŸŒãããšãéåžžã«éèŠã§ãããã¡ã€ã«ãååšããªããã¢ã¯ã»ã¹æš©ããªããååãã¡ã€ã«ãæ¢ã«ååšãããªã©ãæ§ã ãªç¶æ³ã«å¯Ÿå¿ã§ããããããšã©ãŒãã³ããªã³ã°ãèæ ®ããã³ãŒãã£ã³ã°ãå¿ãããŸãããããŸãããŠãŒã¶ãŒãæäœããããã€ã³ã¿ãŒãã§ãŒã¹ãæäŸããããã®åæãã©ã«ãèšå®ããé©åãªãã£ã«ã¿èšå®ãªã©ãéèŠãªãã€ã³ãã§ãã
ãããã®ãã¡ã€ã«æäœæè¡ããååãŸã§ã«è§£èª¬ããé åãæ¡ä»¶åå²ãç¹°ãè¿ãåŠçãªã©ãšçµã¿åãããããšã§ãããé«åºŠã§å®çšçãªExcel VBAã¢ããªã±ãŒã·ã§ã³ãéçºããããšãã§ããŸããäŸãã°ãç¹å®ãã©ã«ãå ã®ãã¹ãŠã®Excelãã¡ã€ã«ãéããŠéèšããçµæãæ°ãããã¡ã€ã«ã«ä¿åãããšãã£ãè€éãªåŠçããä»å玹ä»ããæè¡ãçµã¿åãããããšã§å®çŸå¯èœã§ãã
ããèšäºã®å 容ã§äžæãªç¹ãããã詳ããç¥ãããéšåããããŸããããã³ã¡ã³ãã§ãç¥ãããã ããããŸããå®åã§ã®ãã¡ã€ã«æäœã®æŽ»çšäŸããããå¹ççãªå®è£ æ¹æ³ãªã©ãçæ§ã®ããŠããŠããã²å ±æããŠããã ããã°å¹žãã§ãã
次åã¯ãFileSystemObjectïŒFSOïŒã䜿ã£ãé«åºŠãªãã¡ã€ã«æäœã«ã€ããŠè§£èª¬ããäºå®ã§ãããã¡ã€ã«ã®èªã¿æžãããã©ã«ãå ã®ãã¡ã€ã«äžèЧååŸãããã¹ããã¡ã€ã«ã®æäœãªã©ãããæè»ã§åŒ·åãªãã¡ã€ã«ç®¡çãã¯ããã¯ãã玹ä»ããŸããã©ãããæ¥œãã¿ã«ïŒ