Load package and use exported macro, all within a macro

Can someone please explain why the following errors?

macro d(np::Integer)
    quote
        using Distributed
        addprocs($np)
        @everywhere begin
            using Pkg
            Pkg.activate(".")
        end
    end
end

julia> @d 2
ERROR: LoadError: UndefVarError: @everywhere not defined

(I often add the body of the macro as boiler-plate code when I want to parallelize my code, so I was hoping to write a macro to reduce the number of lines of code I have to add.)

If I split it into two macros (one with using Distributed; addprocs($np), and the other with the @everywhere block) it works. It also works if I use using Distributed before calling @d.

I also don’t know why the call to addprocs doesn’t error. If @everywhere isn’t defined, I would expect addprocs to be undefined as well.