You need to tell us more. 'memory' is not 'hard macro' unless you mean in specific hardware instances or a software macro referring to fixed memory addresses.
You answer might be lying in this thread: https://www.edaboard.com/threads/29887/
Since a designer does not make any changes to the design of the memory cells so in most of the cases it is supplied as a hard-macro. "Hard" in the sense inflexible, cannot be changed, as opposed to soft-macros.