Дластуйте всем
. Ссори если не туда пишу. :oops:
Для собственных нужд пришлось заняться программированием на VBA. Изучаю его недолго, что-то около месяца (и это мой первый серьезно изучаемый язык
). Возникающие вопросы стараюсь решать самостоятельно, но вот на следующие, пока два, вопроса ответа не нашел:
(программирую для Excel-я, VBA 6)
1) Как запрограммировать кнопку "Cancel" стандартного диалогового окна "InputBox" на выход из процедуры? Или это решается только через проверку введеного значения?
(Не хотелось бы громоздить свою форму для простенькой процедуры, да и просто так, любопытства ради. Как я понял, по умолчанию, щелчок на этой кнопке закрывает окно и выполняет операцию следующую за вызовом этого "диалога" :?: )
2) Есть ли какая-нибудь стандартная функция для преобразования hex-числа в десятичное (типа, как hex() для обратного)?
(Есть функция val(), но она, к сожалению, некорректно работает с числами в диапазоне 8000 (дес. - 32768) - FFFF (дес. - 65535): возвращает отрицательное значение. Кстати, если у кого VBA 7 (Office XP), "не в службу, а в дружбу", не проверите, исправлен ли этот баг? Вот код для этого:
Sub temp()
Dim a
Dim b
' вводим шестнадцатиричное число из вышеуказанного диапазона (8000 - FFFF)
a = InputBox("Введите hex-число :")
' сообщаем функции val(), что введенная строка это - шестнадцатиричное число
b = "&H" & a
a = Val(b)
Debug.Print a
End Sub
А то не хочется, ради проверки такого пустяка новый "офис" ставить
)
Вот собстно пока и все.