I wonder if Walter Lord used that number when taking into account not just the Kido Butai at Midway, but all Japanese carriers that were involved with the Midway operation in one way or another. Let' see: For the Midway attack:
Akagi
Kaga
Hiryu
Soryu
For the diversionary raid in the Aleutians at Dutch Harbor:
Junyo
Ryujo
OK...that gives us six flattops. There was one carrier Hosho that was with the group of battleships well west of the flattops. That gives us seven. With that group was a seaplane carrier Chiyoda that was used to transport midget subs. Perhaps that was what Walter was thinking?
Yes, all of them were not present. Some were in the Indian ocean and some were damaged at the battle of Coral Sea.