Macbeth could be considered a villain if a villain is defined as a character who sets out to be an obstacle for others and hurts people in the process. In true Shakespeare fashion, of course, we don't see Macbeth in this two-dimensional definition. Macbeth is a symbol of the human need for acceptance. We see this through his allegiance on the battlefield. At first, he is surprised to be given even a little taste of recognition. So, he starts out as a decent character. It is only when the hint of admiration occurs that he begins to thirst for more power. He succumbs to the witches' ideas and is overtaken by his wife's ambition. In some ways, he is a victim.
So, define a villain for yourself and apply Macbeth's actions and beliefs to those of a villain.
He does kill several innocent people and is motivated by greed. That is the villainous nature, and Macbeth is a play of tragedy.