Přejít na hlavní obsah

Čas změny souboru v aplikaci VBA Excel: metody a příklady použití

V aplikaci VBA (Visual Basic for Applications) Excel existují různé metody pro určení času změny souboru. To může být užitečné, když je třeba sledovat, kdy byl soubor naposledy změněn, nebo zkontrolovat, zda soubor od svého posledního otevření provedl změny.

Jedním z nejjednodušších způsobů, jak určit čas změny souboru, je použití funkce FileDateTime. Vrátí datum a čas poslední změny souboru jako hodnotu typu Date. Například následující kód umožňuje získat čas změny souboru " Example.xlsx":

Pokud chcete zkontrolovat, zda soubor provedl nějaké změny, můžete porovnat dobu jeho poslední změny s dobou posledního otevření souboru VBA. K tomu lze využít vlastnosti Workbook.BuiltinDocumentProperties a metodou Find Chcete-li najít vlastnost "Last Save Time".

Dim wb As Workbook

Set wb = ThisWorkbook

Dim lastSaveTime As Date

lastSaveTime = wb.BuiltinDocumentProperties("Last Save Time").Value

Metody určování času změny souboru v aplikaci VBA Excel

V aplikaci Visual Basic for Applications (VBA) v aplikaci Excel existuje několik způsobů, jak určit čas změny souboru. To může být užitečné při automatickém monitorování a aktualizaci dat a při implementaci složité logiky práce se soubory.

Metoda 1: Funkce FileDateTime

Funkce FileDateTime umožňuje získat datum a čas poslední změny souboru. Bere jako argument název souboru a vrací hodnotu typu Date.

Dim filePath As StringDim fileDate As DatefilePath = "C:\Путь\к\файлу.xlsx"fileDate = FileDateTime(filePath)

V tomto příkladu funkce FileDateTime vrací datum a čas poslední změny souboru "soubor.xlsx " umístěný na uvedené cestě.

Metoda 2: Metoda FileSystemObject

Metoda FileSystemObject z objektové knihovny Microsoft Scripting Runtime umožňuje přístup k vlastnostem souboru, včetně vlastnosti DateLastModified, která obsahuje datum a čas poslední změny souboru.

Dim filePath As StringDim fso As ObjectDim file As ObjectDim fileDate As DatefilePath = "C:\Путь\к\файлу.xlsx"Set fso = CreateObject("Scripting.FileSystemObject")Set file = fso.GetFile(filePath)fileDate = file.DateLastModifiedSet file = NothingSet fso = Nothing

V tomto příkladu se vytvoří objekt FileSystemObject, který vám umožní získat soubor po zadané cestě. Vlastnost DateLastModified daného souboru je pak přiřazena proměnné fileDate.

Metoda 3: Funkce Dir

Funkce Dir umožňuje získat název souboru, který splňuje daná kritéria, ze zadaného adresáře. Bere jako argumenty cestu k adresáři, masku názvu souboru a volitelné možnosti, včetně vbDirectory, která označuje adresáře spíše než soubory. Pokud použijete funkci Dir bez argumentů, vrátí se další název souboru podle zadaných kritérií nebo prázdný řádek, pokud již nejsou žádné soubory.

Dim filePath As StringDim fileDate As DatefilePath = "C:\Путь\к\файлам\"filePath = Dir(filePath & "*.xlsx")Do While filePath <> ""fileDate = FileDateTime(filePath)' Действия с файломfilePath = DirLoop

V tomto příkladu funkce Dir vrací první nalezený název souboru podle zadané masky"*.xlsx". Poté se použije funkce FileDateTime k získání data a času poslední změny souboru a následný cyklus vám umožní zpracovat zbytek souborů.

Volba metody určování času změny souboru v aplikaci VBA Excel tedy může záviset na konkrétním úkolu a požadavcích projektu. Všechny popsané metody jsou poměrně snadno použitelné a umožňují efektivní práci se soubory.

Funkce FileSystemObject

Chcete-li použít funkce FileSystemObject, musíte nejprve vytvořit instanci objektu:

Dim fso As ObjectSet fso = CreateObject("Scripting.FileSystemObject")

Po vytvoření instance objektu lze použít jeho metody a vlastnosti. K získání informací o souboru lze například použít metodu GetFile:

Dim file As ObjectSet file = fso.GetFile("C:\путь\к\файлу.txt")MsgBox file.DateLastModified

V tomto příkladu obdržíme objekt souboru umístěný na zadané cestě a pomocí vlastnosti DateLastModified zobrazíme datum poslední změny tohoto souboru. Chcete-li získat čas poslední změny souboru, můžete použít vlastnost DateLastModified nebo DateLastModifiedUTC, která vrací čas ve formátu UTC.

Také pomocí objektu FileSystemObject můžete kontrolovat existenci souboru nebo složky, vytvářet nové soubory nebo složky, mazat je a další. Všechny dostupné metody a vlastnosti objektu FileSystemObject jsou podrobně popsány v dokumentaci společnosti Microsoft.

Metody Workbooks a Sheets

MetodaPopis
OpenOtevře knihu na uvedené cestě
AddVytváří novou knihu
CloseZavře knihu
SaveUkládá knihu
MetodaPopis
ActivateAktivuje list
AddPřidává do knihy nový list
DeleteOdstraní list z knihy
CopyKopíruje list

Tyto metody umožňují automatizovat různé operace s knihami a listy, což výrazně usnadňuje práci s daty v aplikaci VBA Excel.