"Let's agree. This is going to be your last Christmas with them, so next year we won't be coming."
Probably too harsh, but so tempting.
And she will be paying for gas or airline tickets, right? Or is that suppose to be your present to her.
No, it's supposed to be simply the cost that people pay to travel to the places they need or want to go.
I really object to this "if you want me to visit you, you pay my way."
The kid's parents should pay the kid's expenses, yes, even if they are travel expenses to see someone else. We all pay for fulfilling our own family obligations.
If you can't afford to pay to go, then you don't take on the obligation to visit this Christmas, and you fulfill your obligation to be a loving granddaughter, etc., some other, more affordable way. It may mean no travel, but that's how it is.
It would be fine to say to the kid's other parent, "please fork over the money for your child to fulfill her family obligations."
But absolutely, no one should say to the grandma, "please fork over the money so your grandchild can come visit you." And it doesn't matter if Grandma has said, "it's so important, you must come visit me." That doesn't change things. At all. Except perhaps for the kid & parent to realize that this is an important thing, and to factor that in while deciding; if I truly thought it would be a last time, I personally might borrow money to be able to go. Or, if that was unacceptable to me, I'd call more often, or something.
If you can't afford it, you say, "Sorry, it's too expensive." If grandma decides to solve that problem using her own cash, as a gift, fine, but nobody -- no, not even your fellow E-Hellions -- should be trying to spend other people's money.