I would like to know if there is a way to limit the visibility of enemy units; I would like to make a campaign map in which you can see the enemy only when he is near your units not when he is far from them.
Is this possible?
You could do some things with triggers to replace enemy units with alternate, invisible enemy units in distant territories, and then switch them back to the visible versions in near territories. But this would be messy, I'm not sure you could have the territories change as the game progressed, it would make more sense for the AI than for a human player because the units would be "invisible" to all players, and the "invisible" units wouldn't be totally invisible since anyone could still get a count of the units (if not the type) in the territory by using the Territory tab in-game.
All of which is just another way of saying no.
In terms of strategy, you might achieve some of the desired results (and introduce myriad unintended factors) by allowing unplaced units to be "banked" or by stockpiling PUs, and also allowing unlimited units to be placed in any territory. Players could stockpile units and wait to unleash them, gaining the element of surprise, but they couldn't wait too long because they'd have to commit some for defense. If the placement phase happened before combat move the new units could even fight in the same round that they're placed.
That might be an interesting game mechanic, but probably not what you're after.