A switch failure diagnosis device for using in a current path between an electric device and an electric storage device, the switch failure diagnosis device comprising: a plurality of switches (31A, 31B) connected parallel to each other in the current path between the electric device and the electric storage device; a switch terminal voltage detector configured to output a switch terminal voltage detection signal corresponding to a voltage across the switches (31A, 31B); a current detection circuit configured to detect an amount of current through the current path; a controller configured to: select the switches (31A, 31B) at different time in sequence and input an open instruction signal to each switch (31A, 31B) at the time when the switch (31A, 31B) is selected; and determine, based on the switch terminal voltage detection signal output (V3B) while the open instruction signal is given, that at least one of the switches (31A, 31B) has a failure if the detected voltage (V3B) is in a failure determination range; after inputting the open instruction signal, input a close instruction signal to determine if a variation amount of current flowing through the current path before inputting the open instruction signal and after inputting the close instruction signal is out of a predetermined range; and if the variation amount of current is out of the predetermined range then re-perform the open instruction signal and determining the failure. a plurality of switches (31A, 31B) connected parallel to each other in the current path between the electric device and the electric storage device; a switch terminal voltage detector configured to output a switch terminal voltage detection signal corresponding to a voltage across the switches (31A, 31B); a current detection circuit configured to detect an amount of current through the current path; a controller configured to: select the switches (31A, 31B) at different time in sequence and input an open instruction signal to each switch (31A, 31B) at the time when the switch (31A, 31B) is selected; and determine, based on the switch terminal voltage detection signal output (V3B) while the open instruction signal is given, that at least one of the switches (31A, 31B) has a failure if the detected voltage (V3B) is in a failure determination range; after inputting the open instruction signal, input a close instruction signal to determine if a variation amount of current flowing through the current path before inputting the open instruction signal and after inputting the close instruction signal is out of a predetermined range; and if the variation amount of current is out of the predetermined range then re-perform the open instruction signal and determining the failure. select the switches (31A, 31B) at different time in sequence and input an open instruction signal to each switch (31A, 31B) at the time when the switch (31A, 31B) is selected; and determine, based on the switch terminal voltage detection signal output (V3B) while the open instruction signal is given, that at least one of the switches (31A, 31B) has a failure if the detected voltage (V3B) is in a failure determination range; after inputting the open instruction signal, input a close instruction signal to determine if a variation amount of current flowing through the current path before inputting the open instruction signal and after inputting the close instruction signal is out of a predetermined range; and if the variation amount of current is out of the predetermined range then re-perform the open instruction signal and determining the failure.