Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > Visual Basic
Перезагрузить страницу Как считывать переменные?
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
kminas kminas вне форума
Member
 
Сообщений: 140
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.10.2005
По умолчанию Как считывать переменные? - 11.02.2006, 23:23

До сих пор не научился работать с переменными.
Я создал форму, объявляю объектную переменную:

Код:
Dim oapp As Object
Затем кнопкой открываю Word-овский документ с таблицей, которую придется заполнять готовым текстом из Word-овских макросов и добавлением информации из элементов формы:
TextBox, ComboBox, OptionBox, CheckBox

Код:
Private Sub cmdSave_Click() 
Set oapp = CreateObject("Word.Application") 
oapp.Visible = True 
oapp.ChangeFileOpenDirectory "c:WINDOWSApplication DataMicrosoftTemplates" 
oapp.Documents.Open FileName:="Спецификация.doc" 
oapp.ActiveDocument.SaveAs FileName:="Мои документыСпецификацииЗадай ИМЯ файла", FileFormat:=wdFormatDocument, _ 
        LockComments:=False, Password:="", AddToRecentFiles:=True, WritePassword _ 
        :="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _ 
        SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _ 
        False 
oapp.Selection.MoveDown Unit:=wdLine, Count:=3 

oapp.Dialogs(wdDialogFileSaveAs).Show 

Form1.Show 
End Sub
Код:
 Private Sub Text1_Change() 
Dim pos As String 
pos = Text1.Text 
End Sub
Вот начало одного макроса:

Код:
 Private Sub Command1_Click() 
oapp.Selection.TypeText Text:="pos" 'вместо pos должна вставляться информация, например, из TextBox 
oapp.Selection.MoveRight Unit:=wdCell 
oapp.Selection.ParagraphFormat.Alignment = wdAlignParagraphLeft 
oapp.Selection.TypeText Text:= _ 
        "Нория производительностью 175 т/час, с электродвигателем " 
oapp.Selection.MoveRight Unit:=wdCharacter, Count:=1 
oapp.Selection.TypeText Text:="У8-УН-175 по графической " 
oapp.Selection.MoveRight Unit:=wdCharacter, Count:=1 
oapp.Selection.TypeText Text:="---" 
oapp.Selection.MoveRight Unit:=wdCharacter, Count:=1 
oapp.Selection.TypeText Text:= _ 
        "ОАО Грязинский     "
Все работает, текст вставляется в ячейки, но я не знаю как пользоваться переменными, как сделать, чтобы переменные из TextBox, ComboBox, OptionBox, CheckBox "воспринимались" этим и другими макросами из другой процедуры?
Ответить с цитированием
  (#2 (permalink)) Старый
pashulka pashulka вне форума
Member
 
Сообщений: 1,872
Сказал(а) спасибо: 2
Поблагодарили 57 раз(а) в 53 сообщениях
Регистрация: 11.03.2005
По умолчанию 12.02.2006, 00:29

Код:
Private Sub Command1_Click() 
oapp.Selection.TypeText Text:=Text1.Text
...
...
...
End Sub
Ответить с цитированием
  (#3 (permalink)) Старый
kminas kminas вне форума
Member
 
Сообщений: 140
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.10.2005
По умолчанию 12.02.2006, 00:46

Большое спасибо! Получилось
Ответить с цитированием
  (#4 (permalink)) Старый
pashulka pashulka вне форума
Member
 
Сообщений: 1,872
Сказал(а) спасибо: 2
Поблагодарили 57 раз(а) в 53 сообщениях
Регистрация: 11.03.2005
По умолчанию 12.02.2006, 01:29

Константин, Если использование переменных станет обязательным, то возможно Вам помогут несколько отрывков из руссифицированного help

1. Время жизни переменных

Временем жизни переменной называется время, в течение которого переменная может иметь значение. Значение переменной может меняться на протяжении ее времени жизни, но в течение этого времени она обязательно имеет какое-либо. Когда переменная теряет область определения, она более не имеет значения.

В начале выполнения процедуры все переменные инициализируются. Числовая переменная получает значение 0, строка переменной длины получает значение пустой строки (""), а строка фиксированной длины заполняется ASCII символом 0 или Chr(0). Переменные типа Variant получают при инициализации значение Empty. Каждый элемент массива переменных с определяемым пользователем типом при инициализации получает значение, которое он получил бы, если бы являлся одиночной переменной.

При описании объектной переменной для нее выделяется память, но ее значение определяется как Nothing до тех пор, пока ей не присвоена ссылка на объект с помощью инструкции Set.

Если значение переменной не изменяется во время выполнения программы, она сохраняет значение, полученное при инициализации, до тех пор, пока не потеряет область определения.

Переменная, описанная с помощью инструкции Dim на уровне процедуры, сохраняет значение до окончания выполнения процедуры. Если процедура вызывает другие процедуры, переменная сохраняет свое значение, пока не закончится выполнение и этих процедур.

Если переменная уровня процедуры описана с помощью ключевого слова Static, она сохраняет свое значение до тех пор, пока программа выполняется в каком-либо модуле. По завершении работы всей программы переменная теряет свою область определения и свое значение. Ее время жизни совпадает с временем жизни переменной уровня модуля.

Переменная уровня модуля отличается от статической переменной. В стандартном модуле или в модуле класса она сохраняет свое значение до завершения выполнения программы. В модуле класса она сохраняет значение пока существует экземпляр этого класса. Переменные уровня модуля занимают память, пока их значения не удалены, поэтому их следует использовать только при необходимости.

Если перед инструкциями Sub или Function имеется ключевое слово Static, значения всех переменных уровня процедуры сохраняются между вызовами процедуры.

© Microsoft Excel
Ответить с цитированием
  (#5 (permalink)) Старый
kminas kminas вне форума
Member
 
Сообщений: 140
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.10.2005
По умолчанию 12.02.2006, 15:55

Спасибо!
Если не секрет, откуда этот help?
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
pashulka pashulka вне форума
Member
 
Сообщений: 1,872
Сказал(а) спасибо: 2
Поблагодарили 57 раз(а) в 53 сообщениях
Регистрация: 11.03.2005
По умолчанию 13.02.2006, 15:08

Не секрет - help © Microsoft Excel
Ответить с цитированием
  (#7 (permalink)) Старый
kminas kminas вне форума
Member
 
Сообщений: 140
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.10.2005
По умолчанию 13.02.2006, 20:52

Спасибо!
Ответить с цитированием
  (#8 (permalink)) Старый
Митяй Митяй вне форума
Member
 
Сообщений: 31
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 25.01.2006
По умолчанию 14.02.2006, 20:06

А не подскажете в каких версиях Экселя руссифицированный хэлп? Не помешал бы
Ответить с цитированием
  (#9 (permalink)) Старый
pashulka pashulka вне форума
Member
 
Сообщений: 1,872
Сказал(а) спасибо: 2
Поблагодарили 57 раз(а) в 53 сообщениях
Регистрация: 11.03.2005
По умолчанию 14.02.2006, 20:11

Только в MS Excel 97
Ответить с цитированием
  (#10 (permalink)) Старый
kminas kminas вне форума
Member
 
Сообщений: 140
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.10.2005
По умолчанию 14.02.2006, 20:30

Кстати русифицированный help и в Word 97 тоже.
Ответить с цитированием
  (#11 (permalink)) Старый
pashulka pashulka вне форума
Member
 
Сообщений: 1,872
Сказал(а) спасибо: 2
Поблагодарили 57 раз(а) в 53 сообщениях
Регистрация: 11.03.2005
По умолчанию 15.02.2006, 00:34

Да, но MS Word не является "версией Экселя" … вдобавок в файле справки VBAXL8, наличествует ещё и руссифицированный справочник по DAO
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При обработке данные необходимо считывать из существующего файла dudy С/С++ 0 17.05.2011 09:44
Как считывать значения в программе COREL imported_RAVEN_ Visual Basic 0 06.04.2011 01:53
Как считывать посимвольно текст из консоли rotmaister С/С++ 2 20.05.2010 19:44
Как считывать данные из файла Minimbl Java 1 22.02.2010 09:25
Как считывать строку из файла mickey Lisp 1 12.02.2008 11:10
Как считывать файлы imported_Nas J2ME 0 27.02.2007 08:48
Как считывать в переменные значения, хранящиеся в базе данных unlex C++ Builder 4 27.10.2006 17:51
Как считывать состояние RU/EN и послать на LPT? Vladis Visual Basic 1 20.09.2006 00:12
Как считывать данные из ini файлов AlexPro81 Delphi 8 05.07.2006 19:37
Как считывать список из файла? prol Prolog 5 12.05.2005 07:47
FreeBSD и RS-232 как считывать данные bdmalex C++ на Unix 3 17.02.2005 13:31
Как считывать по секторам с харда под winXP Antony(Cyb) WinAPI 3 19.10.2003 18:17



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов