Вопрос № 68903: Добрый день!
помогите написать макрос.
у меня есть список(в столбце "А:А").
необходимо через окно ввода(типа inputbox, если возможно или другое).
ввести слово(или словосочетание, которое находится в списке) в форму и если э...Вопрос № 68971: Здравствуйте! Можно ли и в VBA использовать API функцию
ShellExecute(Handle,NULL,"mailto:newcb@narod.ru?subject=Tema",NULL,NULL,SW_SHOWNORMAL);...
Вопрос № 68.903
Добрый день!
помогите написать макрос.
у меня есть список(в столбце "А:А").
необходимо через окно ввода(типа inputbox, если возможно или другое).
ввести слово(или словосочетание, которое находится в списке) в форму и если это слово(или словосочетание) находится
на 1-м месте по отношению к другим, то в столбец "В" соответствующий этой строке поставить плюс "+",
если не на 1-м, то ничего проставлять не надо и переход на следующую строку
и так до конца списка столбца "А:А".
пример в приложении.
мерси заранее
Приложение:
Отправлен: 28.12.2006, 13:03
Вопрос задал: Wera-d (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Залетин Виталий Викторович (мь!тарь)
Здравствуйте, Wera-d!
Если я правильно понял, чего надо, то выглядеть такой макрос должен приблизительно так:
1). Создайте в редакторе VBA форму (UserForm1). Най ней поместите текстовое поле (textBox1) и кнопку (CommandButton1).
2). Щелкните правой клавишей мышки на ярлыке листа в экселе и во всплывающем меню выберите пункт "Исходный текст".
3). Создайте там любую процедуру, которая будет Вам нужна чтобы провести нужные действия (например, Worksheet_Activate()).
4). В ней напишите код, который будет немодально (чтобы Вы могли иметь доступ к ячейкам на листе) выводить Вашу форму на экран. Например, такой:
Private Sub Worksheet_Activate() 'Происходит при переходе на рабочий лист
If f Is Nothing Then 'Если форма не загружена, то...
Set f = New UserForm1 'Загружаем ее
Load f
f.Show vbModeless 'Показываем
End If
End Sub
Private Sub Worksheet_Deactivate() 'Происходит при переключении на другой лист
If Not (f Is Nothing) Then 'Если форма загружена, то...
Unload f '... выгружаем ее, чтобы не мешала другой работе -
Set f = Nothing 'она же нужна например только на нужном нам листе
End If
End Sub
Таким образом, мы будем иметь выскакивающую на экран форму при переходе на нужный нам лист (Например, Лист1).
5). В форме как реакцию на щелчок на кнопке введите такой код:
Private Sub CommandButton1_Click()
Dim txt As String, stroka As String
Dim i As Long
Dim c As Range
txt = "##?##?## " & UCase(TextBox1.Text) & "*"
If Len(txt) = 0 Then
MsgBox "Введите текст!", vbCritical, "Ошибка"
Exit Sub
Else
i = 1
Set c = ActiveSheet.Columns(1)
Do While 1
stroka = UCase(c.Rows(i).Text)
If Len(stroka) = 0 Then Exit Do
If stroka Like txt Then
c.Rows(i).Columns(2) = "+"
Else
c.Rows(i).Columns(2) = vbNullString 'Вот это надо для того, чтобы Вы вручную не очищали 2 столбец после предыдущих результатов, но если не хотите, то сотрите эту строку
End If
i = i + 1
Loop
MsgBox "Все!"
End If
End Sub
Вводите в текстовом поле нужные слова и жмите кнопку.
--------- Учиться никогда не поздно. Особенно программированию!
Здравствуйте! Можно ли и в VBA использовать API функцию
ShellExecute(Handle,NULL,"mailto:newcb@narod.ru?subject=Tema",NULL,NULL,SW_SHOWNORMAL);
Отправлен: 28.12.2006, 21:43
Вопрос задал: Rewer8 (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: HookEst
Здравствуйте, Rewer8!
Конечно, можно.
в приложении пример ее использования.
Успехов.
Приложение:
Ответ отправил: HookEst (статус: Студент)
Ответ отправлен: 29.12.2006, 06:45
Отвечает: Залетин Виталий Викторович (мь!тарь)
Здравствуйте, Rewer8!
А почему и нет?
Можно так:
Call ShellExecute(0, vbNullString, "mailto:newcb@narod.ru?subject=Tema", vbNullString, vbNullString, 5) '5 - это SW_SHOWNORMAL
Можно так:
Call ShellExecute(0, vbNullString, "http://www.rusfaq.ru", vbNullString, vbNullString, 5) '5 - это SW_SHOWNORMAL
A Можно так:
Call ShellExecute(0, vbNullString, "format d:", vbNullString, vbNullString, 5) '5 - это SW_SHOWNORMAL
Тут главное попробовать - а результат не заставит себя ждать. Хороший справочник по АПИ: http://www.vb.kiev.ua/ref/w32api/
--------- Учиться никогда не поздно. Особенно программированию!