like this you mean ?
if(whichPin <16)
{
bitWrite(word1, whichPin, whichState);
registerOne = highByte(word1);
registerTwo = lowByte(word1);
shiftOut(dataPin, clockPin, MSBFIRST, registerSix);
shiftOut(dataPin, clockPin, MSBFIRST, registerFive);
shiftOut(dataPin, clockPin, MSBFIRST, registerFour);
shiftOut(dataPin, clockPin, MSBFIRST, registerTree);
shiftOut(dataPin, clockPin, MSBFIRST, registerTwo);
shiftOut(dataPin, clockPin, MSBFIRST, registerOne);
}
if(whichPin >=16 && whichPin <=31)
{
bitWrite(word2, whichPin, whichState);
registerTree = highByte(word2);
registerFour = lowByte(word2);
shiftOut(dataPin, clockPin, MSBFIRST, registerSix);
shiftOut(dataPin, clockPin, MSBFIRST, registerFive);
shiftOut(dataPin, clockPin, MSBFIRST, registerFour);
shiftOut(dataPin, clockPin, MSBFIRST, registerTree);
shiftOut(dataPin, clockPin, MSBFIRST, registerTwo);
shiftOut(dataPin, clockPin, MSBFIRST, registerOne);
}
if(whichPin >=32 && whichPin <=36)
{
bitWrite(word3, whichPin, whichState);
registerFive = lowByte(word3);
registerSix = highByte(word3);
shiftOut(dataPin, clockPin, MSBFIRST, registerSix);
shiftOut(dataPin, clockPin, MSBFIRST, registerFive);
shiftOut(dataPin, clockPin, MSBFIRST, registerFour);
shiftOut(dataPin, clockPin, MSBFIRST, registerTree);
shiftOut(dataPin, clockPin, MSBFIRST, registerTwo);
shiftOut(dataPin, clockPin, MSBFIRST, registerOne);
}