A variable valve timing apparatus for an internal combustion engine, comprising: an actuator that activates a variable valve timing mechanism that varies a valve characteristic of an engine valve; a detection unit that detects a driving position of the actuator; a control unit that drive-controls the actuator within a driving range thereof on the basis of the driving position detected by the detection unit, and when a predetermined execution condition is established, executes one of a first initialization process and a second initialization process that match the driving position of the actuator detected by the detection unit with an actual driving position of the actuator; and an abnormality determination unit that determines whether or not an abnormality is present in the driving position detected by the detection unit and stores an abnormality history after determining that an abnormality is present, wherein when the abnormality history is stored, the control unit executes the first initialization process in which the driving position detected by the detection unit in a state where the actuator is driven to one end of the driving range is set at an initial value, the actuator is then driven to an opposite end of the driving range that is opposite to the one end of the driving range, and an offset amount from an appropriate value of the driving position detected by the detection unit in a state where the actuator is driven to the opposite end of the driving range is reflected in the driving position to compensate for the offset amount, and when the abnormality history is not stored, the control unit executes the second initialization process in which a current driving position detected by the detection unit is set at an initial value of the driving position, the actuator is then driven to one end of the driving range, and the offset amount from the appropriate value of the driving position detected by the detection unit in a state where the actuator is driven to the one end of the driving range is reflected in the driving position to compensate for the offset amount. an actuator that activates a variable valve timing mechanism that varies a valve characteristic of an engine valve; a detection unit that detects a driving position of the actuator; a control unit that drive-controls the actuator within a driving range thereof on the basis of the driving position detected by the detection unit, and when a predetermined execution condition is established, executes one of a first initialization process and a second initialization process that match the driving position of the actuator detected by the detection unit with an actual driving position of the actuator; and an abnormality determination unit that determines whether or not an abnormality is present in the driving position detected by the detection unit and stores an abnormality history after determining that an abnormality is present, wherein when the abnormality history is stored, the control unit executes the first initialization process in which the driving position detected by the detection unit in a state where the actuator is driven to one end of the driving range is set at an initial value, the actuator is then driven to an opposite end of the driving range that is opposite to the one end of the driving range, and an offset amount from an appropriate value of the driving position detected by the detection unit in a state where the actuator is driven to the opposite end of the driving range is reflected in the driving position to compensate for the offset amount, and when the abnormality history is not stored, the control unit executes the second initialization process in which a current driving position detected by the detection unit is set at an initial value of the driving position, the actuator is then driven to one end of the driving range, and the offset amount from the appropriate value of the driving position detected by the detection unit in a state where the actuator is driven to the one end of the driving range is reflected in the driving position to compensate for the offset amount.