Вопрос № 58152: Здравствуйте, как сделать, что когда вводится значение Синуса - то ответом будет угол в радианах и градусах, и так для Косинуса, Тангенса, Котангенса?...Вопрос № 58204: Уважаемые эксперты, здравствуйте.
Не подскажите ли как на VB можно сделать изменение с помощью мышки двух-трех TextBox-ов или ImageList типа как в ACDSEE или FastStown ?То есть увеличивая один контрол, автоматически уменьшается второй.Заранее все...Вопрос № 58256: Здраствуйте всем...
Извините ... Я не изучал vba, хотелось бы узнать можно ли передавать как входной параметр выделенные ячейки?
Я так думаю если ячейка одна (то мне просто надо найти нужную функцию в msdn), а если их несколько? (тоже самое, ...
Вопрос № 58.152
Здравствуйте, как сделать, что когда вводится значение Синуса - то ответом будет угол в радианах и градусах, и так для Косинуса, Тангенса, Котангенса?
Отправлен: 08.10.2006, 19:15
Вопрос задал: ataman (статус: 2-ой класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: VLK
Здравствуйте, ataman!
Вообще-то в VB существуют такие функции, как:
ATN - возвращает арктангенс числа в радианах
COS - возвращает косинус числа
SIN - возвращает значение синуса угла
TAN - возвращает значение тангенса угла
Используются, например, так:
lblSinus = Sin(45),
txtCosinus = Cos(65) и т.д.
Перевод градусов в радианы и наоборот объяснить не смогу. Вообще, вопрос не совсем корректен: что значит ввести значение синуса ? Синус является функцией, которая сама принимает вводные данные и возвращает определенное значение. Аналогично косинус, тагенс и арктангенс.
Ответ отправил: VLK (статус: 7-ой класс)
Ответ отправлен: 08.10.2006, 22:36
Отвечает: AlexanderZh
Здравствуйте, ataman!
Обратная функция для синуса - арксинус = Atn(X / Sqr(-X * X + 1))
Для косинуса - аркскосинус = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1)
Для тангенса - арктангенс = Atn(X)
Для котангенса - арккотангенс = Atn(X) + 2 * Atn(1)
Ответ отправил: AlexanderZh (статус: Студент)
Ответ отправлен: 09.10.2006, 03:01
Вопрос № 58.204
Уважаемые эксперты, здравствуйте.
Не подскажите ли как на VB можно сделать изменение с помощью мышки двух-трех TextBox-ов или ImageList типа как в ACDSEE или FastStown ?То есть увеличивая один контрол, автоматически уменьшается второй.Заранее всем Big Thanks.
Отправлен: 09.10.2006, 04:37
Вопрос задал: Vavunchik (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: fsl
Здравствуйте, Vavunchik!
В качестве примера.
Бросаете на форму Frame1, Text1 и Text2.
Долее, в код вставляете следующее.
Private Sub Frame1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
Text1.Width = X - 50
Text2.Left = X + 50
Text2.Width = Frame1.Width - Text2.Left
End If
End Sub
P.S.
Контейнерами обоих текстбоксов является форма, а не frame1.
Ответ отправил: fsl (статус: 7-ой класс)
Ответ отправлен: 09.10.2006, 09:17
Отвечает: Макаренко Е.В.
Здравствуйте, Vavunchik!
Посмотрите эвенты объекта. Если там есть ObjectChange, WidthChange, HightChange или что-нибудь подобное - на них можно навешивать функции, отвечающие за перерисовку.
--------- осторожность, точность... и горит все синим пламенем! :))
Ответ отправил: Макаренко Е.В. (статус: Студент)
Ответ отправлен: 09.10.2006, 09:33
Вопрос № 58.256
Здраствуйте всем...
Извините ... Я не изучал vba, хотелось бы узнать можно ли передавать как входной параметр выделенные ячейки?
Я так думаю если ячейка одна (то мне просто надо найти нужную функцию в msdn), а если их несколько? (тоже самое, но работа с массивом?)
2. Есть ли возможность написания глобальных функций, которые бы по умолчанию действовали для всех открываемых проектах excel(если уровень безопасности позволяет)?
3. Можно ли как то получить доступ к excell функциям(формулам) из внешней программы (хоть к каким-нибудь)?
Отправлен: 09.10.2006, 13:17
Вопрос задал: Aris (статус: 1-ый класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: HookEst
Здравствуйте, Aris!
1. Что одна ячейка, что несколько, что все ячейки листа, обращение к ним идет через один интересный интерфейс Range. Посмотрите его в справке VBA для Excel, там много чего написано. Просто если ячеек несколько то Value - вернет двухмерный массив значений, также можно и присваивать значения сразу нескольким ячейкам:
Dim i, j As Long
Dim a(1 To 3, 1 To 3) As Variant
For i = 1 To 3
For j = 1 To 3
a(i, j) = i * 3 + j
Next j
Next i
Range("A1:C3").Value = a
доступ к ячейкам Range - через Range.Cells (Cells тоже возвращает Range).
доступ к выделеным ячейкам через Application.Selection
2. Или поместить нужные макросы в книгу автозагрузки, по умолчанию создается PERSONAL.XLS, но можно создавать свои и поместить их в папку автозагрузки и запускать как макросы(со стороны можно использовать Application.Run). Или же создать книгу с модулем, там прописать все функции, сохранить эту книгу как ADDIN (*.XLA) подключить его как надстройку и эти функции будут доступны всегда, но что бы использовать в VBA проектах нужно установить ссылку (Reference...).
3. Используя Application.WorksheetFunction:
MsgBox Application.WorksheetFunction.Degrees(10)
Если что не так подробно объяснил пишите в почту.
Удачи.
Ответ отправил: HookEst (статус: 4-ый класс)
Ответ отправлен: 10.10.2006, 14:36 Оценка за ответ: 5 Комментарий оценки: пасибо за ответ, только я не совсем правильно вопрос №1 сформулировал ...
подразумевалось, что я выделяю ячейки нажимаю горячие клавиши для запуска макроса и он работает с этими ячейками (если так нельзя, то может есть алгоритм, мне приходит в голову тогда только в виде установки и поиска спец. символов перед ячейками, но думаю это не совсем рационально,
выход на первое время ...)
Ещё раз спс. за ответы, теперь знаю, что искать (в хелпе)...