Za DATA v užším smyslu považujeme množinu hodnot definovaných příkazem Data.
Příklad datových tabulek v makru:

Pro celé makro existuje pouze jeden globální ukazatel hodnoty v datech. Po spuštění makra ukazuje tento ukazatel na první hodnotu v první tabulce dat. V našem příkladu je to hodnota 788. Příkazem Read budou hodnoty čteny v pořadí:
Příkazem Restore lze ukazatel dat umístnit na první hodnotu libovolné tabulky dat. Například Restore 11 umístní ukazatel dat na hodnotu 999. Restore 12 hledá nejbližší vyšší tabulku (protože tabulka s číslem 12 neexistuje) a umístní proto ukazatel dat na první hodnotu v tabulce 20 tedy: "ABC 1".
Pohodlnější způsob průchodu po tabulce dat nabízí funkce _DFirst a _DNext. Tyto funkce nikterak neovlivní globální ukazatel hodnoty v datech používaný příkazy Restore a Read.
Příklad:
data 10: 788,566,999,0;
data 11: 999,566,888,0;
data 20: "ABC 1","ABC 2","ABC 3","ABC 4","ABC 5", "";
call Test2;
Exit
procedure Test2
dim Num : Longint;
dim Pos : Longint;
if _DFirst(10, Pos, Num) then
repeat
Trace(Num);
until _DNext(10, Pos, Num) = false;
endif
endproc