Ненастоящий программист

Вы знаете, а я вот своего рода тоже программист. Правда, плюшевый).

Давным-давно с самого детства изучал разные языки программирования, но так сложилось, что уже лет 20, наверное, на практике требуется только VBA – встроенный в Word, Excel, Corel Draw ну и т.п. Вот какая нужна прикладная задача – такую и решаю. Последнее время всё конечно на Excel.

Формулы Excel – они, конечно, очень массивный инструмент, но зачастую мал. Например, вместо того чтобы возится с формулами массива, и не забывать каждый раз Ctrl+Enter, быстрее накалякать простенький макрос, в котором полноценный For/Next. А как только нужно изобразить сколько-нибудь дружественный пользовательский интерфейс, а если еще и динамический – ну тут сразу пиши пропало.

И вот я собственно об Excel VBA. А конкретно - о его костылях. Прям слова другого нет. Бесят!  Итак, погнали:

Раз. Это гребаный десятичный разделитель в Excel. Все пользователи, конечно же, херачат Double в ячейке через запятую. Ну вот вообще всегда. И когда из-под VBA пишешь в ячейку – тоже запятая. Да, я знаю, как сменить разделитель, но чтобы одновременно в голове у всех пользователей – мдя. А разработчик-то американский, и поэтому на формах VBA разделитель конечно же точка. А теперь картина маслом: чтобы взять в переменную Double с листа – то просто равно, а если с формы – то через Val(). Я пробовал с листа брать через Val(), но пару раз получил Overflow, на ровном вообще месте, и завязал с этим. Просто приходится помнить, откуда ты берешь дробь.

Два. А есть вообще какой-нибудь механизм, который, как в нормальном языке, реализует глобальные переменные? Ну, то есть, наверное, и есть, но по факту проще сделать, чтобы каждая форма скидывала результаты куда-нибудь на лист. А следующая брала с листа. АААРРГГГХХХ!!!!!! Ну ведь это не настоящий язык программирования, да?

Три. А теперь адресация на листе. Вот представьте себе шахматную доску. Ну или поле в морской бой. По горизонтали у тебя буковки, по вертикали – циферки. Смотрим на лист – вуаля! А теперь давайте из-под VBA обратимся на лист. Способ раз – через Range. Что-нибудь типа Sheets(“Лист1”).Range(“A1”). Пока все хорошо, правда? Но это если ты знаешь куда обратиться, типа константа. А как в цикле перебирать ячейки? Не, ну я знал человека, который в цикле через ASCII таблицу перебирал символы и складывал в String, которой потом кормил Range… Ну чтож, мы все тут в Excel немножко не настоящие программисты. А теперь смотрим способ два – через Cells. Sheets(“Лист1”).Cells(x,y) – и вуаля, вот тут то и циклы поперли. Вот только ЧЕТЫРЕЖДЫБЛЯДСКАЯ ЯРОСТЬ!!!!!! Х - это строка, а Y это столбец. Почему, блять, тут-то наоборот??? Про ситуацию, когда сначала выбираешь диапазон Range, а потом к нему индексация Cells – я пока не буду, а то совсем ярость.

Четыре. Я, когда был еще почти настоящим программистом, привык, что индексация начинается с нуля. Любой массив тебе, любая куча, да хоть что – потому что индекс - это смещение, и для первого элемента оно очевидно нулевое. Ситуация первая – берем ComboBox, заполняем через AddItem, перебираем ListIndex – а он с нуля начинается. Красота. А тут мне потребовалось перебрать кучку таких ComboBox, а они с разными именами. Действия над ними одинаковые, а имена у них разные. Ну, напихал их в Collection, и что я вижу? Внутри Collection, какого то ХУЯ!!!!! Индексация с 1 начинается.

В общем, программисты бывают разные, в том числе не совсем настоящие. Но все равно всем бобра!

P.S. Не надо только мне доказывать что на 1С это было бы удобнее. Такой друг у меня уже есть!))

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества