Доказательство, что VBA калечит мозг

User avatar
perasperaadastra
Уже с Приветом
Posts: 20128
Joined: 21 Feb 2009 22:55
Location: Лох Онтарио

Доказательство, что VBA калечит мозг

Post by perasperaadastra »

Я считаю, что VBA нужно запретить, потому что ОНО необратимо калечит мозг. Вот смотрите, элеметарный вопрос в экселе — есть байт 10001101, а нужно получить 01110010. Очень простой вопрос, да? А теперь посмотрим ответ от знатока VBA:
Public Function binverse(wCell As String) As String
Dim x, y As Integer
Dim nResult As String
nResult = vbNullString
x = Len(wCell)
For y = 1 To x
If Mid(wCell, y, 1) = "1" Then
nResult = nResult & "0"
Else
nResult = nResult & "1"
End If
Next
binverse = nResult
End Function
https://www.excelforum.com/excel-genera ... verse.html

Аааааааааа! Это же необратимые повреждения мозга! Срочно нужна лоботомия! Микрософт нужно судить за предумышленное убийство! :angry:
User avatar
thinker
Уже с Приветом
Posts: 26853
Joined: 29 Aug 2000 09:01

Re: Доказательство, что VBA калечит мозг

Post by thinker »

For excel:
https://www.mrexcel.com/forum/excel-que ... excel.html

для vba лень искать
All rights reserved, all wrongs revenged.
User avatar
ALV00
Уже с Приветом
Posts: 1491
Joined: 08 Mar 2002 10:01
Location: NJ

Re: Доказательство, что VBA калечит мозг

Post by ALV00 »

На любом языке кроме Ассемблера и С решение будет неуклюжим. Но языках высокого уровня низкоуровневые операции делать неудобно.
User avatar
Medium-rare
Уже с Приветом
Posts: 9239
Joined: 04 Mar 2011 03:04
Location: SFBA

Re: Доказательство, что VBA калечит мозг

Post by Medium-rare »

Это старинный уже продукт для автоматизации действий в офисных продуктах, битовые операции в котором никогда не были приоритетом. А так да, нафиг VBA сейчас вообще, за пределами Офиса, в котором надо написать программку, что-то там агрегирующую с разных страниц в Экселе и выводящую в Ворд.
... and even then it's rare that you'll be going there...
User avatar
Flash-04
Уже с Приветом
Posts: 63377
Joined: 03 Nov 2004 05:31
Location: RU -> Toronto, ON

Re: Доказательство, что VBA калечит мозг

Post by Flash-04 »

LOL! ну нет там побитового XOR :)
Not everyone believes what I believe but my beliefs do not require them to.
User avatar
perasperaadastra
Уже с Приветом
Posts: 20128
Joined: 21 Feb 2009 22:55
Location: Лох Онтарио

Re: Доказательство, что VBA калечит мозг

Post by perasperaadastra »

Коллеги, вы чаво! Зачем там побитовые операции???

255 - 0b10001101 = 0b01110010 и всё

Эксел умеет переводить битовую строку в число и обратно. Thinker правильную ссылку привел. А вот в той ссылке, которую я привел, увы, случилось VBA головного мозга...
User avatar
thinker
Уже с Приветом
Posts: 26853
Joined: 29 Aug 2000 09:01

Re: Доказательство, что VBA калечит мозг

Post by thinker »

perasperaadastra wrote: 01 Apr 2017 17:14А вот в той ссылке, которую я привел, увы, случилось VBA головного мозга...
Только потому что кто-то привел неуклюжий способ перевода? Почему вы его назвали "знатоком"? :pain1: Какое это имеет отношение к "VBA головного мозга"? С каких это пор можно критиковать язык высокого уровня за то, что в нём нет простых, встроенных функций низкого уровня, коим является побитная инверсия? В VBA ещё нельзя переслать значение переменной в регистр процессора. Кому от этого холодно или тепло? :pain1:
All rights reserved, all wrongs revenged.
User avatar
perasperaadastra
Уже с Приветом
Posts: 20128
Joined: 21 Feb 2009 22:55
Location: Лох Онтарио

Re: Доказательство, что VBA калечит мозг

Post by perasperaadastra »

>С каких это пор можно критиковать язык высокого уровня за то, что в нём нет простых,

Я не за это критикую, а за "VBA way".
User avatar
perasperaadastra
Уже с Приветом
Posts: 20128
Joined: 21 Feb 2009 22:55
Location: Лох Онтарио

Re: Доказательство, что VBA калечит мозг

Post by perasperaadastra »

VBA ужасен и крив.

Если в powerpoint сделать shp.Line.DashStyle = msoLineRoundDot, то получится разряженный пунктир. А если это же самое сделать через меню, то пунктир будет нормальный (плотный). Чтобы в VBA получить такой же результат нужно сделать
сначала shp.Line.DashStyle = msoLineRoundDot
а потом shp.Line.DashStyle = msoLineSysDot

Но самое интересно, если зайти вот сюда (осторожно, сервер дает доступ через модем 56k — вы можете умереть, не дождавшись загрузки!): https://msdn.microsoft.com/VBA/PowerPoi ... powerpoint
можно обнаружить, что msoLineSysDot не существует.

ЛОЛОЛОЛОЛО! Микрософт всех поимел!

Return to “Вопросы и новости IT”