Why is my variable not in scope?

You probably need to step into the for each body for the variable to enter into scope. I believe this is similar to this piece of code

for(int i = 0; i < MyArray.Num(); ++i) {
   // Array Element is only initialized (enter the scope) here.
   auto ArrayElement = MyArray[i];  
}

and in the pictures you attached the debugger is at the for line.