Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Basic / VBA


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Basic/VBA

Выпуск № 578
от 25.07.2007, 17:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 286, Экспертов: 40
В номере:Вопросов: 3, Ответов: 4


Вопрос № 95726: ПРИВЕТ ВСЕМ! помогите с написанием макроса: ЕСть документ WORD, при нажатии на клавиши CTRL+F открывается окно поиска, в котором ставим галочку в поле "выделить все элементы, найденные в". В результате во всем документе выделяется ...
Вопрос № 95737: Добрый вечер! подскажите, пожалуйста, какой программой на Basic, в EXCEL -таблице ( например): 7820 1550 6970 1890 7450 1900 7040 3110 6730 1440 6370 960 6350 1090 6040 530 6020 1110 5890 560 6840...
Вопрос № 95745: Доброго времени суток! Помогите с решением! Как из VBA Excel 2003 нажать Num Lock нашел: Set WSHShell = CreateObject("WScript.Shell") WSHShell.SendKeys "{NUMLOCK}" А вот как узнать горит ли индикатор ...

Вопрос № 95.726
ПРИВЕТ ВСЕМ!
помогите с написанием макроса:
ЕСть документ WORD, при нажатии на клавиши CTRL+F открывается окно поиска, в котором ставим галочку в поле "выделить все элементы, найденные в". В результате во всем документе выделяется искомый текст. МОжно ли написать макрос, который бы выводил на печать все страницы, на которых был найдет этот текст?

Или упрощенный вариант - написать макрос, который бы искал в документе текст, - выводил на печать всю страницу на которой нашел этот текст, затем искал следующую страницу, и тоже выводил на печать, и так до конца документа, и потом сам останавливался.
Помогите если не трудно.
Заранее спасибо.
Отправлен: 19.07.2007, 19:57
Вопрос задал: Gkv
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Черников Игорь Владимирович
Здравствуйте, !
Если чё, пиши!
Упрощённый вариант. вставь в ворд:

Sub macros1()
Selection.EndKey Unit:=wdStory
Selection.TypeText Text:=Chr(182)
Selection.HomeKey Unit:=wdStory
КоличествоСтраниц = ActiveDocument.BuiltInDocumentProperties(14)

слово = InputBox("Введите искомое слово или выражение", "Поиск и печать")

10 simvol$ = ActiveDocument.Range(Start:=Selection.End, End:=Selection.End + 1)
Искомое = ActiveDocument.Range(Start:=Selection.End, End:=Selection.End + Len(слово))
Selection.MoveRight Unit:=wdCharacter, Count:=1
If слово = Искомое Then
Application.PrintOut FileName:="", Range:=wdPrintCurrentPage, Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
Application.Browser.Next
ТекущаяСтраница = Selection.Information(wdActiveEndPageNumber)
If ТекущаяСтраница = КоличествоСтраниц Then
Selection.EndKey Unit:=wdStory
Selection.Delete
End
End If
End If
ТекущаяСтраница = Selection.Information(wdActiveEndPageNumber)
If simvol$ = Chr(182) Then
Selection.Delete
End
End If
GoTo 10
End Sub
---------
От каждого по способностям, каждому по труду
Ответ отправил: Черников Игорь Владимирович (статус: 2-ой класс)
Ответ отправлен: 20.07.2007, 20:40


Вопрос № 95.737
Добрый вечер!
подскажите, пожалуйста, какой программой на Basic,
в EXCEL -таблице ( например):
7820 1550
6970 1890
7450 1900
7040 3110
6730 1440
6370 960
6350 1090
6040 530
6020 1110
5890 560
6840 2250
6490 1770
6580 2420
6320 1450
6250 1740

вставить запятую:
78,20 15,50
69,70 18.90

заранее благодарна !
Отправлен: 19.07.2007, 22:26
Вопрос задала: Шубейко Маргарита (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Черников Игорь Владимирович
Здравствуйте, Маргарита!
Вставьте этот код в свой макрос и всё получится!
Данные должны распологаться, начиная с ячейки А1 количество столбцов может быть любое, лишь бы не было пустых ячеек в столбцах. Пустая ячейка означает конец столбца.

Do
НомерСтолбца = НомерСтолбца + 1
Do
НомерСтроки = НомерСтроки + 1
temp = Cells(НомерСтроки, НомерСтолбца)
If temp = "" Then Exit Do
Cells(НомерСтроки, НомерСтолбца) = Mid(temp, 1, Len(temp) - 2) & "," & Mid(temp, Len(temp) - 1, 2)
Loop While Not temp = ""
НомерСтроки = 0
If Cells(НомерСтроки + 1, НомерСтолбца + 1) = "" Then End
Loop
---------
От каждого по способностям, каждому по труду
Ответ отправил: Черников Игорь Владимирович (статус: 2-ой класс)
Ответ отправлен: 21.07.2007, 15:24
Оценка за ответ: 5


Вопрос № 95.745
Доброго времени суток!
Помогите с решением!
Как из VBA Excel 2003 нажать Num Lock нашел:

Set WSHShell = CreateObject("WScript.Shell")
WSHShell.SendKeys "{NUMLOCK}"

А вот как узнать горит ли индикатор Num Lock (VBA Excel)?
Заранее благодарен.
Отправлен: 20.07.2007, 02:10
Вопрос задал: Obana (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Залетин Виталий Викторович (мь!тарь)
Здравствуйте, Obana!
Почитайте вот это:
http://www.rusedu.info/modules.php?op=modload&name=News&file=article&sid=273
http://www.rusedu.info/index.php?module=News&catid=&topic=18

Далее - сам вариант решения проблемы: надо использовать АПИ-функции:

'Объявления АПИ-функций:
Private Declare Function GetKeyboardState Lib "user32.dll" (lpKeyState As Byte) As Long
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

'Константы:
Private Const KEYEVENTF_KEYUP = &H2 'событие отпускания клавиши
Private Const VK_NUMLOCK = &H90 'Клавиша NUMLOCK

'Код:
'Функция вернет состояние клавиши NUMLOCK на момент ее вызова
'Если NUMLOCK включен и параметр bOff=True, то выключаем NUMLOCK
Function TestNumLock(Optional ByVal bOff As Boolean = False) As Boolean
'Получаем состояние всех клавиш клавиатуры
Dim kbd(255) As Byte
GetKeyboardState kbd(0)

'Если NUMLOCK включен, смотрим наш параметр bOff
'И если он равен True, то выключаем NUMLOCK
If kbd(VK_NUMLOCK) And 1 Then 'NUMLOCK включен
If bOff = True Then 'Да, выключаем
keybd_event VK_NUMLOCK, 0, 0, 0
keybd_event VK_NUMLOCK, 0, KEYEVENTF_KEYUP, 0
End If

'Возвращаем состояние клавиши на момент вызова:
'вдруг кому охота узнать, была она включена или нет...
TestNumLock = True
Else
'Возвращаем состояние клавиши на момент вызова:
'NumLock была выключена
TestNumLock = False
End If
End Function

В принципе, это универсальное решение: главное подставлять коды нужных клавиш и все.
---------
Учиться никогда не поздно. Особенно программированию!
Ответ отправил: Залетин Виталий Викторович (мь!тарь) (статус: Студент)
Ответ отправлен: 21.07.2007, 16:26

Отвечает: Черников Игорь Владимирович
Здравствуйте, Obana!
Воспользуйтесь этой ссылкой, пожалуйста, там всё сказано.
http://www.sources.ru/vb/system/read_numlock_and_capslock.shtml

---------
От каждого по способностям, каждому по труду
Ответ отправил: Черников Игорь Владимирович (статус: 2-ой класс)
Ответ отправлен: 21.07.2007, 16:54


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.53 beta от 09.07.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное