One option is to use Drivers to automatically set the scale based on the distance to the camera. This way, whenever the object or the camera moves the object will automatically scale to match.
To achieve this, add drivers to the Scale properties of your objects (move the mouse over the Scale properties and press Ctrl+D). Set each of the driver as Type 'Scripted Expression', Expr 'var / 10' (use a different constant in place of '10' for a different 'at rest' scale - how many units away from the camera that the scale should be '1'), the variable type (the icon alongside the variable name ('var')) to Distance, and set Object 1 and Object 2 for the object and the camera (both using World Space). Do the same for each of the X, Y, Z channels.

Now, moving the object (Cube) should result in the scale automatically adjusting to suit.
NOTE : You might need to go into User Preferences and enable the Auto Run Python Scripts option on the File tab to enable Scripted Expressions.
If all is set up correctly this should now produce the following result :

(To explain the animated image, the cube is moving purely along the X/Y plane - no vertical motion at all. From the top view you can see its motion along the grid and how it actually changes scale depending on how far it is from the camera (bottom-right). From the camera's perspective it appears that the object doesn't change size at all - it also doesn't appear to move away from or towards the camera but this is an optical illusion due to its changing scale - at its most distant (towards the top edge of the top view) you can see the grid overlap the bottom of the cube when viewed from the camera when it's at its largest scale)