A numerical control device arranged to perform machining on a workpiece while moving a tool and the workpiece relative to each other along a movement path with vibrations by drive shafts with which the tool or the workpiece is provided, the device comprising: a vibration amplitude-to-feed ratio analysis unit arranged to analyse whether a ratio between an amplitude of vibrations and a feed speed of the tool to the workpiece is included in a machining program and arranged to obtain the ratio between an amplitude of the vibrations and a feed speed of the tool to the workpiece when it is included in the machining program; a phase-difference calculation unit arranged to calculate, as a phase difference, a time lag in a vibrational backward-moving position relative to a vibrational forward-moving position generated on a basis of a command block in the machining program from the ratio between an amplitude of the vibrations and a feed speed of the tool to the workpiece, the ratio being designated for the movement and the ratio being made constant; a movement-path generation unit arranged to generate the vibrational forward-moving position and the vibrational backward-moving position as the movement path for each of the drive shafts on a basis of the phase difference; a vibrational-movement-amount generation unit arranged to calculate a vibrational-movement amount on the movement path for each of the drive shafts on a basis of a reference vibration waveform to be superimposed on the movement path; and a movement-amount combining unit arranged to generate a combined movement amount for each of the drive shafts by adding the vibrational-movement amount to the movement path, wherein the ratio between an amplitude of the vibrations and a feed speed of the tool of the workpiece, Q, is represented as: Q = A / F wherein A is the amplitude on a movement path relative to time and F is the feed speed, the feed amount per revolution, wherein the phase-difference calculation unit is arranged to calculate, as a phase difference, a time lag in a vibrational backward-moving position relative to a vibrational forward-moving position generated on a basis of a command block in the machining program based on the equation: A / W = F / T, which is rearranged to: W = AT / F = QT wherein W is the calculated phase difference, A is the amplitude, F is the feed amount per revolution, and T is the required time per revolution of a main shaft, wherein the phase difference is a difference between a vibrational forward-moving position and a vibrational backward-moving position. a vibration amplitude-to-feed ratio analysis unit arranged to analyse whether a ratio between an amplitude of vibrations and a feed speed of the tool to the workpiece is included in a machining program and arranged to obtain the ratio between an amplitude of the vibrations and a feed speed of the tool to the workpiece when it is included in the machining program; a phase-difference calculation unit arranged to calculate, as a phase difference, a time lag in a vibrational backward-moving position relative to a vibrational forward-moving position generated on a basis of a command block in the machining program from the ratio between an amplitude of the vibrations and a feed speed of the tool to the workpiece, the ratio being designated for the movement and the ratio being made constant; a movement-path generation unit arranged to generate the vibrational forward-moving position and the vibrational backward-moving position as the movement path for each of the drive shafts on a basis of the phase difference; a vibrational-movement-amount generation unit arranged to calculate a vibrational-movement amount on the movement path for each of the drive shafts on a basis of a reference vibration waveform to be superimposed on the movement path; and a movement-amount combining unit arranged to generate a combined movement amount for each of the drive shafts by adding the vibrational-movement amount to the movement path, wherein the ratio between an amplitude of the vibrations and a feed speed of the tool of the workpiece, Q, is represented as: Q = A / F wherein A is the amplitude on a movement path relative to time and F is the feed speed, the feed amount per revolution, wherein the phase-difference calculation unit is arranged to calculate, as a phase difference, a time lag in a vibrational backward-moving position relative to a vibrational forward-moving position generated on a basis of a command block in the machining program based on the equation: A / W = F / T, which is rearranged to: W = AT / F = QT wherein W is the calculated phase difference, A is the amplitude, F is the feed amount per revolution, and T is the required time per revolution of a main shaft, wherein the phase difference is a difference between a vibrational forward-moving position and a vibrational backward-moving position.