When Merle Kearns resigned from the House to take a position under Governor Bob Taft, McGregor was one of over a dozen candidates who sought to replace her. Despite not being recommended by Clark County Republicans, McGregor nonetheless received the appointment, and was seated in October 2005.
In his 2006 reelection bid, McGregor was seen by Democrats as a top target. They fielded former mayor and city commissioner Dale Henry to try and knock him off. While the race was contentious, McGregor maintained his seat with 53.40% of the electorate.[1]
Even with his 2006 victory, McGregor was again a top target in 2008, where Richard Spangler was fielded to run against him. However, once again, McGregor was victorious with a narrow victory of 500 votes, or 50.59%.[2]
For a third term, McGregor faced initial primary opposition from the right, due greatly to numerous votes McGregor had made on social issues. The opponent was eighteen-year-old Ethan Reynolds, who attended the local high school.[3] However, he easily secured the nomination with 71.18% of the votes.[4] McGregor easily defeated Democratic challenger Greg Krouse in the general election with 59.7% of the vote.[5]
Speaker of the House William G. Batchelder has named McGregor as a member of the Republican majority caucus' Policy Committee for the 129th General Assembly.[6] He also is serving on the committees of Insurance; Commerce and Labor; Transportation, Public Safety and Homeland Security; and Finance and Appropriations and its Transportation Subcommittee (as Chairman).[7] He is also the chairman of the Joint Committee on Agency Rule Review; and the Commission on Minority Health.
McGregor won a final term in 2012 with 55.65% of the vote over Democrat David Herier.