Can someone help with shift register - i need more outputs but dont understand

You can daisychain (200/8 rounded up) = 25 shift registers.
Then have an array of 25 bytes (8 LEDs controlled per byte), and manipulate the data as you need, example:

byte dataArray[25];
// couple of  manipulation examples
dataArray[0] = 0b00001111; // define initial data
dataArray[0] = 0b11111101 & dataArray[0]; // clear bit 1, dataArray[0] is now 0b00001101
dataArray[1] = 0b11110000; // define initial data
dataArray[1] = 0b00000100; // set bit 2, dataArray[1] is now 0b11110100
// etc up thru dataArray[24]
//send the 25 bytes out to the  shift registers
digitalWrite (latchPin, LOW);
for (byte x = 0; x<25; x=x+1){
SPI.transfer(dataArray[x]); // or use shifOut(dataPin, clockPin, MSBFIRST, dataArray[x]);
}
digitalWrite (latchPin, HIGH); // all outputs update on this rising edge

However, that does need the 25 parts, assuming no multiplexing.
With MAX7219, it's like 8 shift registers in one, the outputs are multiplexed so 8 are on at time.
If you have 4 of them, and you give each its own chip select, then you can easily access just 1 register at a time:

digitalWrite (cs0Pin, LOW); // have cs0 to cs3
SPI.transfer(registerAddress); // 1 to 8 (not 0 to 7 in this case)
SPI.transfer(data Array[0]); // 0 to 7 for cs0, 8 to 15, for cs1, etc for 16-23, 24-31, and 32-39
digitalWrite (cs0Pin, HIGH);

with dataArray[ x ] manipulated as above, or pulled from memory, or read in from the serial port, or whatever.

If the LEDs are not wired in a matrix, but each individually, I offer a board that makes that easy to do, with separate pairs of pins for each LED:
http://www.crossroadsfencing.com/BobuinoRev17/


I've got a picture somewhere showing the LEDs wired to pairs of male pins (30 AWG wirewrap wire works well) that are stuck into the female headers.