It is pretty much widely accepted that this is not \'best practise\'.
dim rng as range
with thisworkbook \'<~~ possibly set an external workbook
w
No, the . is not required where the cell references inside the brackets are qualified, unless the code is in a Worksheet module. That said it is faster to run set rng = .range(.cells(...), .cells(...)) than it is to run set rng = range(.cells(...), .cells(...)) so including the . does some good.
For a Worksheet module, the . is required.