Properly using separate tabs with Arduino IDE
This question is more about C/C++ header basics rather than Arduino. Anyways, you should have the following file structure: Code in .cppfiles, Header in .h files. Main sketch either .ino or .cpp (for cpp remember that you must explicitly write out the function prototypes!)

So for your small example that would be:

main.ino:

#include "driver.h"
void setup() {
  Serial.begin(500000);
  PrintMessage();
}

void loop() {
}


driver.cpp 

#include "driver.h"
byte PrintMessage () {
  Serial.println("printin");
  return 0; //previously had no return although returning 'byte'.
}


driver.h 

 //Always use include guards
 #ifndef DRIVER_H
 #define DRIVER_H

 #include &lt;Arduino.h&gt;
 //All function prototypes from driver.cpp.
 byte PrintMessage();

 #endif /* DRIVER_H */


Also corrected a typo from PrintMessge to PrintMessage. This is the "professional" way to do it, seperate implementation and header files.