while wait() do
for i = 1,10,1 do
wait(.5)
script.Parent.Size = Vector3.new(script.Parent.Size.X,i,script.Parent.Size.Z)
script.Parent.CFrame = CFrame.new(Vector3.new(script.Parent.Position.X,script.Parent.Position.Y+.5,script.Parent.Position.Z))
end
for i = 10,1,-1 do
wait(.5)
script.Parent.Size = Vector3.new(script.Parent.Size.X,i,script.Parent.Size.Z)
script.Parent.CFrame = CFrame.new(Vector3.new(script.Parent.Position.X,script.Parent.Position.Y-.5,script.Parent.Position.Z))
end
end
Even though with CFrame, parts can go through parts, for some reason this isn't working properly.

4 comments
How exactly isn't it working?
You know how CFrame allows parts to go through each other? Well It's kinda working as if I just changed the Position. Like the parts won't collide with each other.
I'm not sure, since i don't use CFrame a lot, but i would recommend you to unanchor the parts first, and then when u end u can anchor them.
You don't need to anchor them.