Можно ли любое GUI положение сперва реализовать в консольном варианте, а потом уже привязывать к нему GUI?
Едва ли. Для простых еще можно, а для сложных, как Excel?
Начинать нужно с проектирования:
- расписать какие есть сценарии работы
- начать собирать макеты интерфейса
- определить что требуется на входе и на выходе каждого действия
- декомпозировать на мелкие задачи
- спроектировать интерфейсы вызовов
API
- разделить их на логические модули - DLL и их аналоги
- написать заглушку для каждого вызова
- написать некоторые тесты
- реализовать интерфейсы поэтапно
- пробовать на тестовом стенде: можно консольное, а можно и графическое приложение.
- и из кубиков собирать приложение.
Ну как-то так.