Visual basic html = vbscript объект document

Содержание

10.4.3 Работа с объектом Document , его свойства и методы

Объект Word.Document, программная работа со свойствами и методами документа в VBA

После того, как мы при помощи объекта Application запустили Word, при помощи коллекции Documents создали (или открыли, или нашли среди уже открытых) — в общем, получили ссылку на нужный нам документ, можно выполнять с этим документом различные действия, реализованные при помощи свойств, методов и событий объекта Document. У этого объекта десятки свойств и методов, и здесь мы рассмотрим только наиболее важные и часто используемые из них. Для самостоятельного рассмотрения будут оставлены очевидные и редкоиспользуемые свойства.

Обратите внимание, что к объекту Document можно обращаться и не создавая специальную объектную переменную. Существует еще по крайней мере три способа получения доступа к объекту Document:

  • работать с документом как с элементов коллекции Documents. Формате обращения может выглядеть, например, так: Documents.Item(1);
  • использовать специальное ключевое слово ThisDocument. При помощи него можно получить ссылку на объект документа, которому принадлежит исполняемый программный модуль, например:
  • использовать свойство объекта Application ActiveDocument. Это свойство возвращает нам объект активного документа:

Самые важные свойства объекта Document представлены ниже:

  • ActiveWritingStyle — текущий активный стиль (заголовок определенного уровня, обычный текст, гиперссылка и т.п.). Рекомендуется проверить перед вводом текста.
  • AttachedTemplate — возможность подключить шаблон (со всеми макросами, стилями, записями автотекста и т.п.) или проверить, какой шаблон подключен (вручную это можно сделать через меню Сервис ->Шаблоны и надстройки).
  • Background — возвращает объект Shape, представляющий фоновый рисунок (фоновые рисунки видны только в режиме Web-документ);
  • BuiltInDocumentProperties — возможность получить ссылку на коллекцию DocumentProperties с одноименными объектами, представляющими встроенные свойства документа (название, автор, категория, комментарии и т.п.);
  • Characters — возвращает коллекцию объектов Range, каждый из которых представляет один символ. Это свойство есть не только у объектов Document, но и у объектов Selection и Range. Может использоваться, например, для выполнения операция поиска и замены или статистических подсчетов (например, для если переводчику платят за количество символов);
  • Content — свойство, возвращающее объект Range, представляющий главную цепочку документа (main document story). Если говорить проще — просто текст документа, без колонтитулов, сносок, комментариев и т.п.
  • CustomDocumentsProperty — свойство, возвращающее коллекцию объектов DocumentProperties, представляющих пользовательские свойства документа. Можно использовать для сохранения вместе с документом любых значений переменных. Очень удобно, например, для подсчета количества открытий документов, флажков печатался/не печатался, сколько раз вызывалась та или иная функция, на каких компьютерах и каким пользователем открывался и т.п.
  • DefaultTabStop — определить отступ по умолчанию при использовании символа табуляции. По умолчанию — 35 пунктов, что примерно равно 1,25 см;
  • DisableFeatures — отключить возможности, которые понимают только последние версии Word (для совместимости с пользователями, у которых на компьютерах стоят старые версии). Обычно само свойство DisableFeatures просто включает этот режим, а конкретный уровень совместимости задается при помощи свойства DisableFeaturesIntroducedAfter.
  • DoNotEmbedSystemFonts — не вставлять в документ системные шрифты (по умолчанию для русского, японского и т.п. вставляются). Позволяет сократить размер документа — но тогда пользователи в системе, где не стоит русский язык, не смогут прочесть этот документ.
  • EmbedTrueTypeFonts — очень полезное свойство, если вы работаете с документом в месте, где используются экзотические шрифты (например, в издательстве). Вставка true-type шрифтов гарантирует, что получатели документа будут видеть его точно таким же, как и создатель.
  • Envelope — позволяет получить ссылку на специальный объект Envelope, который используется для создания почтовых конвертов.
  • Fields — возможность получить ссылку на коллекцию Fields одноименных объектов. Очень полезна при работе с полями.
  • Footnotes — возможность получить коллекцию сносок.
  • свойства Formatting… — что показывать в списке стилей в панели инструментов Форматирование.
  • FormFields — аналогично Fields, но в этом случае мы получаем ссылку на поля в формах.
  • FulName — полное имя объекта (вместе с путем к нему в файловой системе или Web). Доступно, конечно, только для чтения.
  • GrammarChecked — пометить весь документ, как проверенный с точки зрения грамматики (фактически отключить проверку грамматики для данного документа). Такое же свойство существует и у объекта Range. Коллекцию ошибок, выловленных при проверке грамматики, можно получить при помощи свойства GrammaticalErrors, а выделить ошибки зеленым волнистым подчеркиванием (если они еще не выделены) — при помощи свойства ShowGrammaticalErrors. Для орфографических ошибок существует аналогичные свойства SpellingChecked, SpellingErrors и ShowSpellingErrors.
  • HasPassword — проверить, назначен ли пароль для указанного документа. Password — назначить пароль. По причине крайней слабости парольной защиты пароли в Word, Excel и Access использовать не рекомендуется.
  • Indexes — возвращает коллекцию индексов (то есть предметных указателей) для документа.
  • Name — возвращает имя документа (без пути к нему).
  • OpenEncoding — возвращает кодовую страницу, которая использовалась для открытия документа. Для русского языка по умолчанию, конечно, 1251.
  • PageSetup — позволяет получить ссылку на одноименный объект. Используется, конечно, в основном при реализации печати.
  • Paragraphs — возвращает ссылку на коллекцию абзацев в данном документе.
  • Path — возвращает путь к документу в файловой системе (без имени). Может пригодиться, чтобы создать еще один файл по тому же пути.
  • Permission — возможность получить доступ к объекту Permission, который позволяет управлять системой внутренних разрешений документа Word (не разрешений файловой системы).
  • PrintRevisions — печатать или нет пометки редактора (исправления) вместе с документом. По умолчанию — печатать.
  • ProtectionType — проверить защиту данного документа (разрешено все, или только комментарии, чтение, изменения в полях форм и т.п.). Сама защита устанавливается при помощи метода Protec()t.
  • ReadOnly — здесь объяснений не требуется. Это свойство доступно только на чтение (поскольку соответствующий атрибут устанавливается в файловой системе).
  • RemoveDateAndTime и RemovePersonalInformation — удалить информацию о дате и времени произведенных изменений и всю информацию о пользователе из документа (включая свойства документа). Может быть полезным при создании файла-образца.
  • Saved — очень важное свойство. Позволяет определить, изменялся ли документ со времени последнего изменения.
  • SaveEncoding — позволяет явно указать (или получить) кодировку, которая будет использоваться при сохранении документа.
  • SaveFormat — позволяет получить информацию о формате документа (DOC, RTF, TXT, HTML и т.п.). Доступно только для чтения.
  • Sections — возвращает коллекцию разделов документа. Sentences — то же самое для предложений. Аналогично работают свойства Shapes , Styles, Subdocuments, Tables, Windowsи Words .
  • Type — возвращает тип документа (обычный, шаблон или Web-страница с фреймами).
  • Variables — еще одно очень удобное свойство. Можно использовать для сохранения своих служебных данных вместе с документом, как и пользовательские атрибуты ( custom attributes), но в отличие от пользовательских атрибутов документа, пользователям эти свойства не видны.

Теперь — о самых важных методах объекта Document:

  • Activate() — этот метод позволяет сделать указанный вами документ активным (например, для ввода текста).
  • AddToFavorities() — добавить ссылку на документ в каталог «Избранное». Может быть полезным, если пользователь будет работать с ним постоянно.
  • CheckSpelling() и CheckGrammar() — запустить проверку орфографии и грамматики соответственно.
  • Close() — закрыть документ. Можно закрыть с сохранением (по умолчанию), а можно — без (если указать соответствующий параметр).
  • Compare() — сравнить документ с другим и сгенерировать редакторские пометки в местах, где обнаружены различия.
  • DataForm() — возможность редактирования форм данных — то есть данных, которые в документе разделены разделителями полей и строк. Вообще говоря, формы данных в Word рекомендуется использовать только в случае крайней необходимости — гораздо больше дл работы с упорядоченными данными приспособлены Excel и Access.
  • DetectLanguage() — определить язык текста. Проверка производится по предложениям, на основе сверки слов в них со встроенными словарями. Такая проверка производится автоматически во время ввода текста или открытия нового документа. Чтобы заново провести проверку языков, свойство LanguageDetected нужно перевести в False.
  • FitToPages() — очень интересный метод. Размер шрифта автоматически меняется таким образом, чтобы текст стал занимать на одну страницу меньше. Можно использовать для устранения «висячих страниц» и других проблем верстки.
  • FollowHyperlink() — открыть указанный вами документ в соответствующем приложений (если HTML, то в Internet Explorer).
  • GoTo() — очень мощный метод, существует для объектов Document, Range и Selection. В первых двух случаях он возвращает объект Range, в третьем — просто перемещает указатель ввода текста на нужное место. Умеет переходить на начало страницы, строки, закладки, комментария, таблицы, секции, поля, ссылки, формулы и т.п. Может на определенный номер этого объекта, первый, последний, следующий и т.п. Очень удобно использовать для установки указателя в нужное место для автоматического ввода текста.
  • Merge() — возможность произвести слияние двух документов. Метод очень сложный и мощный, основывается на применении редакторских пометок.
  • PresentIt() — открывает данный документ Word в PowerPoint.
  • PrintOut() — очень сложный метод, который позволяет вывести на печать весь документ или его часть. Принимает два десятка параметров (все — необязательные). Может использоваться для объектов Application, Document и Window.
  • PrintPreview() — перевести документ в режим предпросмотра.
  • Protect() — возможность ограничить внесения изменений в документ при помощи пароля или IRM.
  • Range() — очень важный метод. Возвращает объект Range (он будет рассмотрен ниже), принимает в качестве параметров номер начального символа диапазона и номер конечного символа.
  • Redo() — повторить последнее действие. В качестве параметра принимает количество последних действий, возвращает True, если повтор был произведен успешно.
  • Repaginate() — переразбить документ на страницы. Обычно используется, если автоматическая разбивка была ранее отключена.
  • Save() — смысл этого метода очевиден. Если документ еще не сохранялся, открывается диалоговое окно Save As.
  • SaveAs() — очень мощный и сложный метод. Можно определить путь для сохраняемого документа, его формат, кодировку, пароли на открытие и изменение документа, вставку шрифтов и многое другое. Очень полезный метод, например, для автоматической конвертации документов.
  • Select() — позволяет просто выделить весь документ. Этот метод существует для очень большого количества объектов, в том числе Selection и Range.
  • TransformDocument() — исключительно мощный метод, но только для программистов, которые хорошо разбираются в XML и XSLT. Позволяет применить к документу таблицу преобразований стилей (Extensible Stylesheet Language Transformation, XSLT), при помощи которой можно поменять все, что угодно.
  • Undo() — отменить определенное количество последних действий. По синтаксису и принципам работы — полный аналог Redo().
  • UndoClear() — очистить буфер отмены изменений, чтобы пользователь не смог откатить произведенные действия.
  • UnProtect() — снять защиту с документа (определенную методом Protect() или на графическом интерфейсе). Может быть очень полезным перед программным внесением изменений в защищенный документ.

Часто используемых событий у объекта Document всего три — New() (можно определить только для шаблона, срабатывает, когда на основе этого шаблона создается новый документ), Open() и Close(). Все эти свойства очевидны и изначально доступны в окне редактора кода Visual Basic.

Функция CreateObject CreateObject function

Создает и возвращает ссылку на объект ActiveX. Creates and returns a reference to an ActiveX object.

Синтаксис Syntax

CreateObject(класс, [ имя_сервера ]) CreateObject(class, [ servername ])

Синтаксис функции CreateObject состоит из следующих частей: The CreateObject function syntax has these parts:

Часть Part Описание Description
класс class Обязательный элемент, Variant (String). Required; Variant (String). Имя приложения и класс создаваемого объекта. The application name and class of the object to create.
имя_сервера servername Необязательный элемент, Variant (String). Optional; Variant (String). Имя сетевого сервера, где будет создан объект. The name of the network server where the object will be created. Если имя_сервера является пустой строкой («»), используется локальный компьютер. If servername is an empty string («»), the local machine is used.

Для аргумента класс используется синтаксис имя_приложения.тип_объекта, содержащий указанные ниже части: The class argument uses the syntax appname.objecttype and has these parts:

Часть Part Описание Description
имя_приложения appname Обязательный элемент; Variant (String). Required; Variant (String). Имя приложения, предоставляющего объект. The name of the application providing the object.
тип_объекта objecttype Обязательный элемент, Variant (String). Required; Variant (String). Тип или класс создаваемого объекта. The type or class of object to create.

Примечания Remarks

Каждое приложение, поддерживающее автоматизацию, предоставляет как минимум один тип объекта. Every application that supports Automation provides at least one type of object. Например, в приложении для обработки текстов могут быть объекты Application, Document и Toolbar. For example, a word processing application may provide an Application object, a Document object, and a Toolbar object.

Чтобы создать объект ActiveX, назначьте объект, возвращаемый функцией CreateObject, переменной объекта. To create an ActiveX object, assign the object returned by CreateObject to an object variable.

Этот код запускает приложение, в котором создается объект, в данном случае электронная таблица Microsoft Excel. This code starts the application creating the object, in this case, a Microsoft Excel spreadsheet. После создания объекта на него можно ссылаться в коде, используя переменную объекта. After an object is created, you reference it in code by using the object variable you defined. В приведенном ниже примере доступ к свойствам и методам нового объекта осуществлялся с помощью объектной переменной ExcelSheet и других объектов Microsoft Excel, включая объект Application и коллекцию Cells . In the following example, you access properties and methods of the new object by using the object variable, ExcelSheet , and other Microsoft Excel objects, including the Application object and the Cells collection.

При объявлении объектной переменной с помощью предложения As Object создается переменная, которая может содержать ссылку на любой тип объекта. Declaring an object variable with the As Object clause creates a variable that can contain a reference to any type of object. Однако обращение к объекту через эту переменную выполняется с поздним связыванием, то есть привязка создается при выполнении программы. However, access to the object through that variable is late bound; that is, the binding occurs when your program is run. Чтобы создать объектную переменную с ранним связыванием, то есть со связыванием при компиляции программы, объявите объектную переменную с определенным идентификатором класса. To create an object variable that results in early binding, that is, binding when the program is compiled, declare the object variable with a specific class ID. Например, можно объявить и создать следующие ссылки Microsoft Excel: For example, you can declare and create the following Microsoft Excel references:

Ссылка с ранней привязкой может обеспечить большее быстродействие, но может содержать ссылку только на класс, указанный в объявлении. The reference through an early-bound variable can give better performance, but can only contain a reference to the class specified in the declaration.

Можно передать объект, возвращаемый функцией CreateObject, функции, которая использует объект в качестве аргумента. You can pass an object returned by the CreateObject function to a function expecting an object as an argument. Например, в следующем коде создается и передается ссылка на объект Excel.Application: For example, the following code creates and passes a reference to a Excel.Application object:

Вы можете создать объект на удаленном компьютере, подключенном к сети, указав его имя в аргументе имя_сервера функции CreateObject. You can create an object on a remote networked computer by passing the name of the computer to the servername argument of CreateObject. Это имя совпадает с именем компьютера в имени общего ресурса; для имени «\\MyServer\Public» имя_сервера будет «MyServer». That name is the same as the Machine Name portion of a share name; for a share named «\MyServer\Public,» servername is «MyServer.»

[!NOTE] > Refer to COM documentation (see _Microsoft Developer Network_) for additional information about making an application visible on a remote networked computer. You may have to add a registry key for your application.

Приведенный ниже код возвращает номер версии экземпляра приложения Excel, запущенного на удаленном компьютере с именем MyServer : The following code returns the version number of an instance of Excel running on a remote computer named MyServer :

Если удаленный сервер не существует или недоступен, возникает ошибка во время выполнения. If the remote server doesn’t exist or is unavailable, a run-time error occurs.

Используйте функцию CreateObject, если текущий экземпляр объекта отсутствует. Use CreateObject when there is no current instance of the object. Если экземпляр объекта уже запущен, запускается новый экземпляр и создается объект указанного типа. If an instance of the object is already running, a new instance is started, and an object of the specified type is created. Для использования текущего экземпляра или запуска приложения с одновременной загрузкой файла используйте функцию GetObject. To use the current instance, or to start the application and have it load a file, use the GetObject function.

Если объект зарегистрировал себя как объект типа «единственный экземпляр», создается только один экземпляр этого объекта независимо от того, сколько раз выполнялась функция CreateObject. If an object has registered itself as a single-instance object, only one instance of the object is created, no matter how many times CreateObject is executed.

Пример Example

В этом примере функция CreateObject используется для создания ссылки ( xlApp ) на Microsoft Excel. This example uses the CreateObject function to set a reference ( xlApp ) to Microsoft Excel. Эта ссылка используется для доступа к свойству Visible Microsoft Excel, а затем используется метод Quit Microsoft Excel, чтобы закрыть это приложение. It uses the reference to access the Visible property of Microsoft Excel, and then uses the Microsoft Excel Quit method to close it. В конце ссылка освобождается. Finally, the reference itself is released.

См. также See also

Поддержка и обратная связь Support and feedback

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь. Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

Visual basic html = vbscript объект document

Copyright© 1998 Моховой Алексей. wanderfly@chat.ru

Все примеры скриптов действуют только в MSIE 3.0 и выше!

Предисловие.

Я не ошибусь, если назову Бейсик (BASIC — Begginners Allpurpose Symbolic Instruction Code, т.е символический командный универсальный код для начинающего :) самым простым языком программирования. Даже при небольшом опыте, программы можно писать практически не задумываясь. Свою историю этот язык программирования высокого уровня начал в далеком 1963 году. Именно тогда небольшой группой студентов последнего курса Дортмутского колледжа под чутким руководством профессора Дж. Кемени и была разработана самая первая версия этого языка. В то время, помимо Бейсика, широко были распространены также Fortran, Cobol, Algol, PL/1, Focal и Pascal. Из них, до настоящего времени дожили, пожалуй лишь Паскаль и Бейсик, сильно изменившись при этом.

Как это не прискорбно для ярых противников Microsoft, но именно эта компания способствовала широкому распространению Бейсика (вспомним Quick Basic). По моему опыту писать на нем было удобнее, чем на Turbo Bacic компании Borland, которая более известна по языку C++. Повсеместная «Виндуализация» PC компьютеров, вынудила к разработке версии Бейсика для Windows приложений. Таким клоном в 1991 году стал Visual Basic, позволяющий визуально создавать прикладные программы, довольно приличного уровня. Но все же, по моему мнению, из за простоты Visual Basic сдает свои позиции тем же Си и Java. С появлением всемирной сети Internet, и языка HTML стало возможным создание активных приложений на веб страницах. Единственным языком для этих целей был Java Script. Да, именно был. Когда свет увидел Microsoft Internet Explorer 3.0, в нем, помимо поддержки Java script появилась и поддержка Visual Basic Scripting Edition, или просто VBscript. Как известно, JavaScript был разработан Netscape и поначалу стал известен как LiveScript. После шумихи вокруг Java, Netscape переименовала его в JavaScript, когда получила лицензию от Sun. Microsoft самостоятельно разработала JScript для своего броузера, за что правда тоже не избежала разбирательств с Sun.

Кроме Java, MSIE3.0 (и выше), может еще и исполнять программы на VBScript. Netscape Navigator не поддерживает пока (надеюсь, что пока) VBScript, поэтому этот язык не очень широко применяется, а многим даже не известен. А жаль, человеку умеющему писать на обычном QB достаточно месяца, а то и меньше, чтобы перейти на VBscript и создавать красивые активные веб страницы, ни чем не уступающие страницам с JavaScript и даже во многим превосходящие их. Поэтому, если с надеждой смотреть в будущее, то изучить VBScript можно уже сейчас. В этой статье я попытаюсь рассказать основы VBScript, не вдаваясь в тонкости. Моя цель, только заинтересовать рядового пользователя и начинающих WebДизайнеров. Вот и все из истории:) Начнем.

Cравнение VBScript и JavaScript.

Прежде чем начинать познавать VBScript, давайте сравним две одинаковые, простые программы на JS и VBS. Это будет полезным для тех, кто знает JavaScript (к коим я не отношусь:(.
Суть программы: вводим текст в верхнее поле, нажимаем кнопку «Скопировать» и текст копируется в нижнее поле.

Да, как видно, различий практически нет. JS поддерживает только функции, VBS и функции и процедуры (подпрограммы). Так же следует отметить, что VBS отличие от JS не чувствителен к регистру символов, т.е. для него что copyfun(), что CoPYfuN() — один пес:). Так что можете сделать выводы, тем, кто знает ява скрипт, будет легко освоить VBS, а тем кто не знает пока ни того не другого будет еще легче, поскольку переучиваться не придется. Учиться лучше на примерах, поэтому постараюсь их здесь приводить побольше. Я надеюсь, что Вы хотя бы умеете писать программы на обыкновенном Бейсике (QB или TB)? Тогда эта статья именно для Вас.

От QuickBasic до VBscript — один шаг.

Начнем изучение не стандартным подходом. Обычно сначала все пишут программу, выводящую на экран строку «ПРИВЕТ ПИПЛЫ :)» Мы же попробуем перевести обычную «Бейсиковскую» программу — на VBscript, чтобы показать — как между ними много общего. Поставим задачу, написать программу, которая бы случайным образом загадывала число от 1 до 100, и предлагала Вам его угадать. При неправильном предположении, программа должна выводить сообщение о том, больше загаданное число или меньше. Ведется подсчет попыток. В случае победы выводится поздравление.

Программа на обычном Бейсике:

Как видите, такая программа пошла бы даже на БК0010:) Я даже оставил ненавистные операторы GOTO (интересно, об них еще помнят?). Для тех кто не понимает, опишу алгоритм:

10 очистка экрана и включение генератора случайных чисел.
20 переменной «a» присваивается целое случайное значение
от 1 до 100, счетчику числа попыток присваивается
значение=1.
30, 40 выводится сообщение.
50 ввод Вашего варианта «v».
60 если загаданное число больше Вашего варианта, то
выводится сообщение, на единицу увеличивается счетчик
попыток и программа отправляется на строку 40.
70 если загаданное число меньше Вашего варианта, то
выводится сообщение, на единицу увеличивается счетчик
попыток и программа отправляется на строку 40.
80 Если числа совпадут то выводится поздравление, кстати,
по идее, проверку этого условия можно и опустить.
90 THE END

WSH: преобразуем макрос VBA в скрипт VBScript

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Сообщения 4

1 Тема от alexii 2011-03-31 04:12:37

  • alexii
  • Разработчик
  • Неактивен

Тема: WSH: преобразуем макрос VBA в скрипт VBScript

При автоматизации Microsoft Office средствами Windows Script Host довольно часто бывает проще записать макрос непосредственно в самом приложении Microsoft Office, а затем перенести текст полученного макроса Visual Basic for Apllication в скрипт Windows Script Host. Как правильно осуществить этот перенос?

Далее упоминания об использовании обычного скрипта *.vbs обозначены как VBS, об использовании формата скрипта *.wsf (WSH: пишем сценарии в формате WSF) — как WSF.

1. Константы

При переносе констант Microsoft Office в скрипт Windows Script Host нужно помнить следующее:

VBS: нужно вручную описать все используемые константы посредством ключевого слова Const.
WSF: достаточно добавить тэг reference, либо же использовать методику, изложенную в предыдущем пункте.

2. Оператор «:=», именованные и необязательные аргументы

Оператор «:=» присваивания значения некоторому параметру метода (используемый в макросах VBA для сокращения записи, когда задаются значения не всех параметров, либо параметры перечисляются в порядке, отличающемся от заданного прототипом) в Windows Script Host не поддерживается, поскольку Windows Script Host не поддерживает именованные аргументы, а только позиционные. Посему требуется убрать наименования аргументов (вместе с оператором «:=») и расставить аргументы в правильную позицию, так, как это описано в объектной модели того или иного метода или события. В большинстве случаев при работе с приложениями Microsoft Office необязательные аргументы допускается просто пропускать.

3. Глобальные объекты, раннее и позднее связывание

В глобальном контексте приложения Microsoft Office обычно наличествуют один или более глобальных объектов, таких, как объект Apllication целевого приложения, объекты CommandBars, FileDialog, Scripts (и т.д.) объектной модели самого Microsoft Office, объект UserForms объектной модели Visual Basic for Apllication. Ссылки на библиотеки, реализующие поддержку этих объектов изначально присутствуют в свойствах проекта VBA (\Tools\References…). В отличие от VBA, поддерживающего как раннее, так и позднее связывание, Windows Script Host поддерживает только позднее связывание при создании объектов. Исходя из вышеизложенного, надо помнить, что любой глобальный объект Microsoft Office требует явного предварительного создания перед использованием, как правило, завершения работы приложения методом «.Quit()» и очистки объектной переменной путём присвоения ей значения Nothing.

VBS:

WSF: объект может быть создан при помощи тэга object, либо может быть использована та же методика, что и для VBS.

Замечание: последний способ не рекомендуется использовать для Microsoft Word, ибо может возникать ситуация (при вызове скрипта *.wsf с параметром «/?», чтобы посмотреть справку скрипта), когда приложение останется в памяти после завершения работы скрипта. Особенности поведения приложений Microsoft Office при использовании технологии Automation изложены в KB288902: GetObject and CreateObject behavior of Office automation servers, в частности:

Note For Word, the UserControl property is read-only. It cannot be set to True or False. Word always remains running when the last reference is released.

Поэтому для Microsoft Word рекомендуется использовать методику, описанную в предыдущем пункте — непосредственное создание объекта в коде и завершение его методом «.Quit()».

4. Обработка событий

Поддержка обработки событий в Windows Script Host для объектов Microsoft Office осуществляется стандартными способами.

VBS:

WSF: можно добавить атрибут events со значением «true» в тэг «object». Кроме того, поддерживается использование методики, описанной в предыдущем пункте.

Замечание: к сожалению, большую часть событий приложений Microsoft Office обрабатывать не удаётся.

Создание страниц с помощью VBScript

В связи с тем,что язык создания сценариев Microsoft VBScript работает только в браузере Microsoft Internet Explorer а другие браузеры попросту не понимают этого языка сейчас VBScript имеет ограниченное распространение.Но некоторые пользователи используют в своих страницах VBScript,поэтому кратко рассмотрим объекты,свойства,и методы при работе с этим яэыком.
Visual Basic Scripting Edition или VBScript создан на основе Visual Basic специально для работы в VEB приложениях,внедряясь в страницу HTML,и отдельно существовать не может. Если используется VBScript, то следует указать строку вида:

how to make an “include” activeX object in vb6 for vbscript?

this is what i’m trying to make:

VB6 com.dll, name and classname: scripting.includefile

vbscript:

is this possible? thanks in advance :)

2 Answers 2

You just read a file with it and assign the text to the scripting control.

This is vbscript but vbscript is legal VB6.

Here I am reading a script from the command line and applying it to each line of stdin. Note I use the Script Control to check for syntax errors (you can’t continue a program after a syntax error unlike runtime errors). I actually execute the script in vbscript (which VB6 can’t do) rather than the script control to make passing data simple.

Use colons to seperate statements and lines. Use single quotes in place of double quotes, if you need a single quote use chr(39). Escape brackets and ampersand with the ^ character. If you need a caret use chr(136).

The function is called UF (for UserFunction). It has two parameters, L which contains the current line and LC which contains the linecount. Set the results of the script to UF. See example.

There are three global objects available. An undeclared global variable gU to maintain state. Use it as an array if you need more than one variable. A Dictionary object gdU for saving and accessing previous lines. And a RegExp object greU ready for use.

Example

This vbs script inserts the line number and sets the line to the function UF which Filter prints.

This is how it looks in memory

If there is a syntax error Filter will display debugging details.

User function syntax error

User function runtime error

Visual basic html = vbscript объект document

Visual Basic + HTML = VBScript

Данная статья предназначена тем, кто хотел бы получить представление о программировании на Visual Basic Script, подмножестве языка Visual Basic. VBScript позволяет решать задачи, связанные с Internet, а именно создавать сценарии (или скрипты) управления объектами (кнопками, списками, ниспадающими меню и т. д.) на Web-страничках. Для понимания этого материала нужно иметь представление о структуре HTML-документа, а также основах программирования на Visual Basic. Описанные в статье сценарии могут быть использованы в браузере Microsoft Internet Explorer 3.0. Другие браузеры попросту не понимают этого языка. В настоящее время существуют всего два языка создания сценариев по управлению объектами — Microsoft VBScript и Sun JavaScript. Оба поддерживаются IE 3.0. Браузер же компании Netscape воспринимает только JavaScript.

С помощью VBScript вы можете быстро создавать собственные страницы или даже писать игры. И все это размещается внутри вашего HTML-документа. Если вы уже имели дело с Visual Basic или Visual Basic for Applications, то легко справитесь и с VBScript.

Для того чтобы браузер мог различать команды VBScript, нужно все операторы VBScript на HTML-страницах обрамлять тегами . Первый из них используется в паре с атрибутом LANGUAGE для определения языка создания сценария. В нашем случае — Visual Basic Script (хотя может быть и JavaScript). Значением для этого языка является «VBScript»:

Тег . Всегда употребляйте их парой! Сценарий в нашем примере помещается в специальные скобки , которые в языке HTML обозначают комментарий. Это делается для того, чтобы старые браузеры, которые не умеют работать со скриптовыми языками, случайно не отобразили сценарий на экране. Для них он — просто комментарий.

При разработке приложения на VBScript необходимо знать концепцию этого языка, а также иметь представление о том, как работают объекты, события и процедуры. Это поможет вам в дальнейшем разобраться в функционировании объектной модели Internet Explorer 3.0 и объектов ActiveX. Помните, что объекты и VBScript связаны друг с другом.

Процедуры — это относительно самостоятельные фрагменты программы, оформленные особым образом и обозначенные именами. Упоминание этих имен в тексте программы называется вызовами процедур. Процедуры помогают разбить программу на ряд независимых частей, что необходимо для экономии памяти. Каждая процедура существует в программе в единственном экземпляре, но обращаться к ней можно из разных точек программы. При вызове процедуры вступает в действие последовательность операторов, которые находятся внутри этой процедуры. Процедуре могут быть переданы некоторые параметры.

В VBScript существует два вида процедур: подпрограмма (Sub) и функция (Function). Подпрограмма (Sub) — это последовательность VBScript-операторов, обрамляемая операторами Sub и End Sub. Подпрограммы могут принимать параметры (константы, переменные или выражения, которые передаются при вызове процедуры), но не возвращают значений. Если подпрограмма не содержит параметров, то ее оператор должен включать пустой набор круглых скобок. Следующая подпрограмма использует две функции языка VBScript — InputBox и MsgBox. Она запрашивает у пользователя ввод температуры в градусах Фаренгейта, переводит ее в градусы Цельсия и отображает результат. Вычисление температуры происходит в функции Celsius.

Функция (Function) — это последовательность операторов VBScript, обрамляемая операторами Function и End Function. Она похожа на подпрограмму, но отличается от последней тем, что может возвращать некоторое значение. Функция может принимать параметры (константы, переменные или выражения, передаваемые при вызове). Если она не содержит параметров, то оператор Function должен включать пустой набор круглых скобок. Возвращаемый тип у Function — Variant.

В следующем примере функция Celsius переводит градусы Фаренгейта в градусы Цельсия. Когда вызывается функция из подпрограммы ConvertTemp, переменная, содержащая параметр-значение, передается в функцию. Результат вычисления возвращается в вызывающую процедуру и отображается в MsgBox.

Перед использованием процедур в своей программе вы должны их объявить. Их нужно всегда размещать в самом начале раздела вашей HTML-странички. Весь последующий текст должен также находиться в разделе . Операторы Function и Sub, подобно другим элементам языка VBScript, располагаются между парой тегов для правильного их распознавания браузером. Кроме того, теги комментария ( ) окружают текст программы внутри тега

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

Использование подпрограмм и функций

Для применения функций в вашей программе необходимо поставить ее название справа от переменной или выражения, в которое будет возвращаться результат выполнения функции, например:

Чтобы вызвать одну процедуру из другой, необходимо написать имя первой со значениями требуемых параметров, каждый из которых должен отделяться от предыдущего запятой. Оператор Call не требуется. Но если вы все-таки используете его, то нужно заключить любые параметры в круглые скобки. Следующий пример показывает две возможности вызова процедуры MyProc. Один использует оператор Call, другой — нет. Оба выполняют одно и то же.

Обратите внимание, что круглые скобки опускаются при вызове подпрограммы, если оператор Call не применяется.

Объект (Object) — это простой объект, методами, свойствами и событиями которого вы можете управлять. Метод — это процедура или просто набор команд, сообщающих объекту, что нужно выполнить некоторую задачу. Свойство — это некоторый вид параметра объекта. Событие — это сигнал, подаваемый, если с объектом что-то происходит. И методы, и свойства, и события разработчик выбирает сам, исходя из потребностей задачи. Так, если в вашей программе нужно отследить время окончания работы, то имеет смысл обращать внимание на событие, сигнализирующее об этом. В противном случае эта информация бесполезна.

Рассмотрим объект ActiveX Label (объект и элемент управления для VBScript фактически означают одно и то же). Он состоит из свойств и имеет один метод. Некоторые из его свойств включают заголовок (Caption), цвет фона (BackColor), цвет шрифта (ForeColor), размер (FontSize) и стиль шрифта (FontName). Его методом является About Box, отображающий при вызове окно с информацией об ActiveX. Событием для Label является перемещение указателя мыши над Label. Существует специальный тег

Для тега , а для установки значений его свойств — тег

. Если вы имели дело с программированием на Visual Basic, то использование тегов

будет напоминать вам размещение какого-либо компонента или элемента управления на форме. Например, следующие значения тегов

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

Обработчик события нажатия кнопки cmdChangeIt изменяет текст объекта Label:

Некоторые теги (прежде всего для управления вводом информации в форму) и элементы ActiveX могут обращаться к отдельным процедурам вашего сценария (скрипта), запускаемого событием. События могут вызываться из тегов , , и

В этом примере, помимо объекта Label, добавлены некоторые возможности сценария и несколько событий. Во-первых, определяется элемент управления Label, затем с помощью тега добавляется элемент управления Button. Когда пользователь нажимает на кнопку, то текст Label изменяется. При повторном нажатии кнопки возвращается прежний текст. Оба эти действия являются событиями. Когда пользователь нажимает на кнопку, возникает событие, заставляющее метку изменяться. Атрибут OnClick в теге используется для того, чтобы вызвать событие. Сам по себе атрибут OnClick является событием, и его значение вызывает процедуру VBScript, которая заставляет метку изменяться. Прежний текст возвращается с помощью сценария, имеющего две процедуры. Первая используется элементом Button (кнопка), а вторая — Label (метка), если пришло время вернуть ее старое содержание. Как вы заметили, во второй процедуре имя объекта Label (MyLabel) сопровождается подчеркиванием, после которого стоит имя события (MyLabel_Click). Это означает, что когда происходит событие OnClick для названного объекта, то должны выполняться последовательности операций, перечисленные в этой процедуре.

При интенсивном программировании лучше всего использовать программу Microsoft ActiveX Control Pad, великолепно выполняющую связывание команд Visual Basic с разными событиями и элементами управления на вашей страничке. Таким образом, вы можете больше внимания обращать на сам процесс разработки приложения.

Установка свойств для элементов управления и объектов

Установка свойств для разных объектов на странице является одной из простейших задач при программировании на VBScript. Стандартная схема этого действия выглядит так:

Здесь ObjectName — имя вашего объекта, определенное с помощью параметров ID или NAME; property — свойство объекта, называемого ObjectName; value — присваиваемое свойству значение. Пример ниже иллюстрирует, как это делается:

Свойству Caption (заголовок) присваивается строка «Watch me change!». Затем устанавливаются свойства ForeColor (цвет текста), BackColor (цвет фона) и FontName (стиль шрифта). Так можно устанавливать свойства для любого объекта на странице.

VBScript — событийно-ориентированный язык. Некоторые события, перечисленные в табл. 3, работают со многими элементами управления. Существует несколько методов определения того, что должно происходить в сценарии при возникновении события. Можно определить событие как параметр тега для объекта на странице. Значением этого атрибута должно быть имя процедуры, которую нужно заранее определить внутри тега. Если надо использовать определенную процедуру, то параметр LANGUAGE тега

FOR определяет имя элемента управления или объекта, для которого используется последующий код; EVENT задает событие, при возникновении которого следующий код будет вызван.

Определение обработчика события через процедуру — самый простой способ выполнения некоторого кода, когда обрабатываемое событие имело место. Этот метод использует процедуру с таким же именем, как у элемента управления, который вы предполагаете использовать, плюс подчеркивание между именами объекта и события:

Следующий фрагмент исходного текста иллюстрирует оба рассмотренных метода. Обработчики события определяются как атрибуты, а также используются как процедуры внутри кода:

В нашем случае это Click, т. е. пользователь должен щелкнуть мышкой на этом объекте. Это не будет работать для функции, потому что функция — это процедура, возвращающая значение. Что касается функций, то они сами могут быть возвращены как значение, например:

Следующий пример иллюстрирует вызовы подпрограммы и функции из сценария:

Когда пользователь щелкает мышью по метке Label, то вызывается метод About Box. Поля ввода используются для вычисления синуса заданного угла (в градусах). Если ввести некоторое значение в первое поле ввода, помеченное текстом «Enter Angle», и щелкнуть на кнопке мышью, то введенный аргумент будет переведен в радианы и затем вычислен синус, результат чего будет отображен. Первая процедура вызывается по нажатию мышью на единственный объект на странице — кнопку, называемую button1. Когда это событие обрабатывается, то вызывается сразу несколько методов. Сначала обновляются все переменные, которые вы собираетесь использовать для вашей программы. Затем отыскивается значение, называемое AngleInpt, которое пользователь набрал в поле ввода. Далее вызывается функция, в которую заносится введенный параметр из поля AngleInpt. Она преобразует угловые градусы в радианы, затем вычисляет его синус (радианы являются основной мерой измерения углов для тригонометрических функций в VBScript). Значение связывается с именем функции (getsin), которая возвращает его для определенной нами ранее переменной. В итоге это значение отображается в текстовом поле, называемом SineInpt.

В данном примере задействовано два метода: подпрограмма button1_OnClick, которая, если вы помните, вызывается, когда пользователь щелкает мышью по кнопке, и функция getsin(angle), где angle — параметр, используемый для преобразования градусов в радианы. У элемента ActiveX Label используются два включаемых метода (методами называются собственные подпрограммы и функции объекта): тот, который вызывается, когда по метке щелкнули мышкой (ieLabel1_Click), и метод отображения диалоговой панели ieLabel.AboutBox(). Когда обращаются к методам объектов, обычно используют следующий синтаксис:

Ключевое слово call применяется для вызова определенного метода. ObjectName — это имя объекта, для которого вы хотели бы вызвать метод, а MethodName() — это имя метода, который будет использовать сам объект. Имя объекта и вызываемый метод отделяются точкой. Также для вызова метода не требуется никаких скобок, потому что у него нет никаких параметров.

Объектная модель Internet Explorer 3.0

Все объекты являются дочерними от объекта Window. Объект Window содержит несколько методов, свойств и событий. Некоторые из них перечислены в табл. 1 — 3. Объект Window является исходным объектом, так что вам не требуется добавлять его имя к свойствам или дочерним объектам. Например, вместо window.name вы могли бы использовать только name.

Таблица 1.
Свойства объекта Window.

Java Script VB Script
Свойство Назначение
Frames Используется, когда в текущем документе существует набор кадров (фреймов). Это свойство является массивом фреймов на странице
Location Определяет местоположение текущего окна
Name Имя того окна, чьи свойства определяются
Parent Указывает родительский фрейм или окно, чьи свойства определяются на данный момент

Таблица 2.
Несколько основных методов объекта Window.

Метод Назначение
Open Открывает или закрывает документ внутри текущего окна или другого определенного окна. У него есть два аргумента: имя файла, который вы хотите открыть, и имя окна, на котором вы хотите его разместить. Например, window.open(filename,windowname), где filename — имя файла, а windowname — имя окна. Для этого метода требуются оба параметра
Prompt Определяет всплывающую подсказку. Имеет два параметра: текст подсказки и любой заданный по умолчанию текст, который входит в подсказку. Например: window.prompt(ExpString, DftString), где ExpString — текст подсказки, а DftString — исходный текст в подсказке. Оба параметра необязательны. Если этот метод связан с переменной (как x=prompt(«stuff»,»more stuff»)), то эта переменная получит любые данные, которые были введены в подсказку, если не была нажата «отмена»
Close Используется для закрытия окна
Navigate Переключает окно на другой адрес URL. Например: window.navigate(URL), где URL — имя того URL, на который нужно перейти

Таблица 3.
События загрузки объекта Window.

Событие Назначение
OnLoad Вызывается, когда загружается страница, содержащая данное событие. Используется в тэге как атрибут при вызове процедуры
OnUnLoad Вызывается, когда выгружается страница, содержащая данное событие. Используется в тэге как атрибут при вызове процедуры
Объект Document

Объект Document имеет дело прежде всего с телом HTML-страницы. Он имеет три дочерних объекта: Link, Anchor и Form, каждый из которых является индексированным массивом объектов link, anchor и form. Кроме того, объект Form содержит подобъект Element, который является индексированным массивом всех объектов и элементов управления на странице. Некоторые важные свойства и методы перечислены в табл. 4. Для Document, заметим, не существует никаких событий.

Таблица 4.
Некоторые методы объекта Document.

Метод Назначение
BgColor Устанавливает цвет фона текущего документа. Этот цвет может иметь шестнадцатеричное представление #rrggbb или соответствующее название
FgColor Устанавливает цвет текста документа. Аналогичен по функциям свойству BgColor
Referrer Указывает URL документа, на который ссылается пользователь в настоящее время. Например, если кто-то обратился по адресу: http://www.nm.org/welcome.htm с сервера http://www.someplace.com, то свойством Referrer будет: http://www.someplace.com, если это свойство было в странице вышеупомянутого расположения; в противном случае оно обращается в Null
LastModified Показывает дату последней модификации документа
Open Открывает документ для записи дополнительных строк в формате HTML. Синтаксис: document.open()
Write Записывает HTML-текст в текущий документ и должен вызываться, когда документ открывается для записи. Синтаксис: document.write(somestring), где somestring может быть одной строкой, переменной или же несколькими связанными строками в формате HTML, которые выводятся на экран
Close Закрывает документ после того, как имели место следующие вызовы: document.write, document.close.
Объект Frame

Объект Frame — это индексированный массив из фреймов (кадров) на странице. Первый кадр из списка соответствует кадру в верхнем левом углу браузера. Вы можете использовать данный объект для установки или получения различных URL-адресов разных фреймов, которые находятся на экране браузера. Фреймовый массив очень похож на объект Window, поскольку он использует другие объекты похожим способом. Например, вы можете использовать расположение объекта для получения или установки расположения соответствующего фрейма.

Основной целью объекта History является доступ к списку введенных адресов в браузере. Существуют три метода, используемых для навигации по папке History. Наиболее важные методы перечислены в табл. 5. Объект History не генерирует никаких событий.

Таблица 5.
Некоторые методы объекта History.

Метод Назначение
Go Используется для того, чтобы определить, сколько раз браузер должен пролистать вперед историю введенных адресов. Формат вызова: history.go(n), где n — номер файла истории, на который нужно перейти
Forward Используется для определения того, сколько раз браузер должен пролистать вперед историю введенных адресов. Формат вызова: history.forward(n), где n — число раз, которые нужно «идти вперед»
Back Используется, чтобы определить, сколько раз браузер должен «идти назад» по текущей истории вашего браузера. Формат вызова: history.back(n), где n — число раз, которое браузер должен «идти назад»
Объект Location

Этот объект необходим для получения информации относительно текущего расположения Internet Explorer. Наиболее важные свойства перечислены в табл. 6. Этот объект не имеет никаких событий или методов.

Таблица 6.
Наиболее важные свойства объекта Location.

Свойство Назначение
Href Используется для получения URL текущего окна или для создания нового URL
Protocol Устанавливает тип протокола (FTP или HTTP) текущего документа
Host Используется для установки главной части URL текущего документа вместе с номером используемого порта
Hostname Используется для установки имени хоста в URL

Теперь вы имеете представление о объектах, их функционировании, а также их событиях, методах и свойствах. Вы познакомились с тем, как использовать VBScript для вызова процедур, которые основаны на различных событиях, происходящих с объектом. Надеемся, что это поможет вам в дальнейшей работе.

Использование VBScript с объектами

Использование объектов

Независимо от того, используете вы элементы ActiveX (ранее они назывались OLE) и Java объекты, Microsoft Visual Basic Scripting Edition и Internet Explorer обрабатывают их одинаково. Если вы используете Internet Explorer с установленным элементом управления Label, вы можете проверить работу следующего кода.

Вы включаете объект, используя тег

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

Событие, связанное с кнопкой cmdChangeIt, изменяет текст элемента Label: Связь элементов управления, находящихся внутри формы и значений полей ввода/вывода выполняется также, как это описано в разделе VBScript и формы.

Несколько элементов ActiveX доступны для использования в Internet Explorer. Вы можете найти полную информацию о свойствах, методах и событиях, а также об идентификаторах классов (CLSID) для элементов управления на сайте Microsoft (http://www.microsoft.com). Вы можете найти больше информации о теге на странице Internet Explorer 4.0 Author’s Guide and HTML Reference.

ПРИМЕЧАНИЕ
Простая реализация Internet Explorer требует наличия фигурных скобок (<>) вокруг атрибутов класса, что не соответствует спецификации W3C. Использование фигурных скобок в текущей реализации генерирует сообщение «This page uses an outdated version of the tag»

Боюсь, что всё вышесказанное, для многих из вас не очень понятно, особенно если вы раньше никогда не использовали тег . В таком случае лучше всё проверить на практике. Однако. Скорее всего у вас (как и у меня), элемент управления Label не установлен, поэтому приведённый здесь пример работать не будет. Чтобы исправить это недоразумение, приведу постой пример использования описанного в этом разделе подхода. Отличие будет заключаться в том, что в качестве объекта в моем примере будет использоваться тег .

Здесь одна кнопка увеличивает размер картинки на 10% при каждом щелчке, а другая кнопка — уменьшает. Ну а всё остальное вам должно быть понятно, если вы читали предыдущие разделы. А ниже вы можете проверить работу этого кода (если ваш браузер — Internet Explorer):

Visual basic html = vbscript объект document

Основы программирования на VBScript

VBScript — это язык сценариев, который предназначен для разработки интерактивных WEB -страниц. Коды VBScript загружаются в HTML документ, после чего браузер осуществляет выполнение этого сценария.

Кроме того, для обеспечения защиты из VBScript были изъяты возможности доступа к жестким дискам и операционной системе. Т.к. WEB — страницы запускаются на ПК пользователя, то этим исключается возможность испортить что-либо на его ПК при запуске WEB -страницы.

Сценарий- это обычный текстовый файл и для его редактирования можно использовать любой текстовый редактор.

Для вставки сценария в HTML документ предназначен тег Script . Атрибут Language определяет язык сценария. Для языка VBScript следует указать

Для языка JavaScript следует указать

HTML страницы могут содержать стандартные элементы управления: текстовые поля, кнопки, переключатели и другие. Для внедрения элементов управления на Web -страницу предназначен тег Input .

Пример вставки текстового поля.

Input Type = text Name =” txt 1” value =”АИС”>

Атрибут Type определяет тип элемента управления.

Атрибут Name определяет имя элемента управления, которое используется при написании сценариев.

Атрибут Value определяет исходное содержание текстового поля.

Атрибут Size определяет размер поля в символах.

Атрибут Maxlength определяет максимальное количество символов, вводимое пользователем.

Для вставки флажка тег Input имеет вид:

Каждый раз, когда пользователь щелкает на флажок, состояние элемента меняется на противоположное. Для исходной установки флажка используется атрибут Checked . Checked =1, если флажок установлен, и наоборот, если Checked =0, флажок сброшен.

Для вставки переключателя тег Input имеет вид:

В группе может быть установлен только один переключатель.

В отличие от флажков, обладающих собственными именами, группа переключателей объединяется общим именем. Для исходной установки одного из переключателей группы используется атрибут Checked .

Для вставки стандартной кнопки тег Input имеет вид:

При каждом нажатии на кнопку происходит событие kn 1_ onClick .

С помощью языка VBScript можно определить, как различные элементы управления будут реагировать на те или иные события.

HEAD > TITLE >Пример странички с VBScript TITLE >

В данном примере на Web -страницу вставлена кнопка, а сценарий запускается при щелчке на кнопку. Экрана обозревателя после загрузки Web -страницы представлен на рисунке 1.

Глава 21. Visual Basic и Интернет

В этой главе мы рассмотрим, как знание Visual Basic поможет вам добавить в вашу Web-страничку такие элементы, которые подвластны только программистам. Вы обнаружите, что ваше знание не только полезно, но и опасно для окружающих. Эта глава дает понятие о работе с Web-страницей, но ни в коем случае не систематические знания в этой области. Основываясь на примерах, приведенных в главе, вы сможете легко сделать что-нибудь интересное на своей страничке. Однако, чтобы стать экспертом, читайте более толстые книжки.

Понятие об Интернет, Web-станицах и языке HTML

Интернет- это сто миллионов компьютеров на земном шаре, соединенные между собой телефонными линиями и другими каналами связи. Упрощенно структуру Интернет можно представить следующим образом. Забудем пока о миллионах. В мире существуют многие тысячи (не миллионы) мощных компьютеров, которые соединены между собой более-менее скоростными линиями связи и никогда не выключаются. Называют их узламиили Web-серверами. Они-то и составляют «спинной хребет» Интернета. Схема их соединения на карте Земли напоминает паутину дорог, соединяющих города. Города — узлы, дороги — линии связи, такая аналогия. Если вы хотите подключить ваш домашний компьютер к Интернет, то можете это сделать, только подключившись к какому-нибудь узлу, чаще всего ближайшему. Узлом (Web-сервером) владеет фирма, которая называется провайдером, она берет с вас деньги и разрешает подключаться к своему Web-серверу. Чаще всего это подключение идет по низкоскоростной телефонной линии. К этому же серверу подключены и тысячи других желающих из ваших мест. Вот таким образом и получается сеть из ста миллионов компьютеров.

Вы знаете, что для большинства владельцев компьютеров путешествие по Интернет — это бесконечное перелистывание огромного числа занимательных, полезных, скучных, грязных, глупых, добрых Web-страничек. Любая из этих страничек круглосуточно доступна каждому подключившемуся к Интернет. В настоящее время любой подключившийся к Интернет имеет также возможность простыми средствами создать свою собственную Web-страницу и сделать ее видимой в Интернет всему миру. Страничку вы не спеша создаете на своем компьютере, затем соединяетесь со своим (можно и с некоторыми другими) сервером и щелкнув несколько раз мышкой, помещаете ее на сервере. Иначе, если она будет помещена не на сервере, а на вашем компьютере, то когда ваш компьютер выключен, она никому не будет доступна. На жестком диске сервера ваша и тысячи других Web-страниц будут неограниченно долго храниться.

Итак, все странички в Интернет размещены на серверах.

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

Все вы видели Web-странички, они напоминают страницы красочных журналов, на них много текста на красочном фоне, есть фотографии, простейшая анимация. Тот, кто знаком с красочной графикой, знает, что она требует для своего представления большого объема информации. Такое количество слишком долго будет передаваться по линиям связи. Как же решается эта проблема? Приведу аналогию. Два художника живут в разных городах. Один звонит другому и говорит, что хочет посмотреть на его новую картину. Тому посылать картину по почте долго и дорого, поэтому вместо картины он присылает письмо такого содержания: «Возьми холст и краски. В нижнем левом углу холста нарисуй златокудрую нимфу, фотография которой вложена в письмо. В правом верхнем углу нарисуй грозовую тучу. …» И так далее. Первый художник, выполнив все, что сказано в письме, будет иметь перед собой картину, очень похожую на оригинал.

Итак, в Интернете по линиям связи передается не сама страница, а описание того, как ее рисовать, что и каким шрифтом писать плюс очень экономно закодированные фотографии с этой страницы и некоторые другие элементы. В вашем компьютере эту информацию поджидает программа, которая играет роль художника, рисующего картину по ее описанию в письме. Эта программа называется броузером. Броузер не только рисует на экране страничку по описанию, но и позволяет удобно листать странички и делать почти все, что нужно для работы в Интернет. В мире наиболее распространены два броузера: Internet Explorer и Netscape Navigator.

Описание Web-страницы выполняется на специальном языке, который называется HTML. Язык этот прост и понятие о нем дается в следующем разделе.

Создание Web-страницы

В этой главе мы с вами для примера будем создавать Web-страницус игрой «Угадай число». Начнем с малого. Пусть пока ваша страничка должна выглядеть так:

Для этого вам достаточно в Notepad (это «Блокнот» — простейший текстовый редактор Windows) создать документ такого содержания:

Игра «Угадайте число»

Если на угадывание числа вам удалось затратить меньше 30 попыток — вы хороший математик

· Любой документ на языке HTML должен начинаться с тега и заканчиваться тегом .

· Строка приказывает броузеру задать цвет фона страницы в 16-й системе счисления (см. 9.6).

обозначает «самый крупный заголовок», поэтому на нашей страничке первая строка получилась крупным шрифтом. Тег

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

· Тег обозначает «курсив», поэтому на нашей страничке вторая строка получилась курсивом.

Этот HTML-документ и является описанием нашей Web-страницы. После создания HTML-документа его необходимо сохранить с расширением htm или html. Теперь, чтобы увидеть получившуюся Web-страничку живьем, вам достаточно открыть этот документ в броузере, имеющемся на вашем компьютере.

Вообще, для создания Web-страницы совсем не обязательно вручную создавать HTML-документ. Вы можете сконструировать Web-страничку в редакторе Microsoft Word или в специальной программе FrontPage Express, не написав ни одного тега, подобно тому, как в Visual Basic мы конструируем проект в режиме проектирования. HTML-документ при этом создается автоматически. Рассматривая страничку в броузере Internet Explorer, вы всегда можете увидеть и редактировать породивший его HTML-документ при помощи View®Source.

Я предлагаю вам такой порядок доработки Web-страницы. Вы дописываете в HTML-документ очередную строку, сохраняете его, затем в броузере нажимаете кнопку обновления страницы (Refresh). Страница приобретает вид в соответствии с последними изменениями в HTML-документе. Затем вы снова изменяете HTML-документ и так далее.

Сценарий на Web-странице

Итак, мы решили развлечь читателя нашей Web-страницы. Мы предложим ему поиграть на нашей странице в игру «Угадай число». Задание на создание такой игры в Visual Basic вы уже получали раньше (16.2). Напомню условие. Компьютер загадывает число из диапазона от 1 до миллиарда. Человек должен его отгадать. Причем за наименьшее число попыток. При каждой попытке компьютер выводит номер попытки и подсказку — «мало» или «много«. Сохраняться, как того требовало задание 127, мы для простоты не будем.

Сначала запрограммируем игру не на Web-странице, а как мы привыкли — в Visual Basic. Разместим на форме:

· Кнопку cmdTry с надписью «Попытка»

· Текстовое поле txtNumber — для того, чтобы человек вводил туда очередное число

· Текстовое поле txtMessage — для слов «Много», «Мало» и «Вы угадали»

· Текстовое поле txtNumberTry — для отображения количества попыток

Dim A As Long ‘это число — очередная попытка человека

Dim SecretNumber As Long ‘это загаданное число

Private Sub Form_Load() ‘Начальные установки:

SecretNumber = Round(1000000000 * Rnd)

txtNumber.Text = 0

txtMessage.Text = «Попыток не было»

txtNumberTry.Text= 0

‘Процедура обработки нажатия на кнопку:

Sub cmdTry_Click()

A = Val(txtNumber.Text) ‘превращение строки в число

If A > SecretNumber Then

txtMessage.Text = «Много»

Игра «Угадайте число»

Введите в текстовое поле

число от 1 до миллиарда и нажмите кнопку «Попытка»

Если на угадывание числа вам удалось затратить меньше 30 попыток — вы хороший математик

Пояснения: Сценарий располагается между строками

Сравните текст сценария с текстом программы на Visual Basic. Они очень похожи. Полужирным шрифтом я выделил фрагменты сценария, которые отличают его от соответствующих фрагментов программы на Visual Basic. Так, новостью является запрет указания типа в операторах Dim. В этом случае переменные имеют тип Variant. Вместо свойства Text используется свойство Value. Вместо Click — OnClick. вместо Val — Int.

Для работы сценария необходимо было разместить на странице следующие элементы:

· КнопкуcmdTry с надписью «Попытка»

· Текстовое полеtxtNumber — для того, чтобы человек вводил туда очередное число

· Текстовое поле txtMessage — для слов «Много», «Мало» и «Вы угадали»

· Текстовое поле txtNumberTry — для отображения количества попыток

Но откуда взять эти элементы, если мы Visual Basic даже не запускали? Оказывается, размещаются они на странице средствами языка HTML. Язык VBScript для этого тоже не нужен.

Давайте не спеша читать HTML-документсверху вниз. Вот первая незнакомая строка:

Введите в текстовое поле

число от 1 до миллиарда и нажмите кнопку «Попытка»

Посмотрите, какая строка Web-страницы ей соответствует. Выражение

как раз и размещает в этой строке Web-страницы текстовое поле. То, что это должно быть именно текстовое поле, а не, скажем, кнопка, задает выражение input type=»text», размер по горизонтали 20 задается выражением size=»20″, а имя поля задается выражением name=»txtNumber».

В этой строке есть незнакомый нам тег —

. Это просто перевод строки на Web-странице.

Аналогично изложенному, следующая строка HTML-документа

размещает в следующей строке Web-страницы кнопку (благодаря выражению input type=»button»). Надпись на кнопке задается выражением value=»Попытка».

Следующие три строки поясняются аналогично.

Доступ к локальному диску

Будем называть локальным дискомжесткий диск чужого компьютера, на котором читается ваша Web-страница (если она читается на вашем же компьютере, то тогда локальный диск — это жесткий диск вашего компьютера). Доступом к локальному диску будем называть возможность при помощи сценария вашей Web-страницы читать, стирать или записывать информацию в файлы локального диска (примерно так, как мы это делали в 16.2 с файлами на диске нашего компьютера), а также осуществлять все другие операции с файлами и папками.

Спрашивается, хорошо это или плохо — при помощи вашей Web-страницы иметь доступ к диску чужого компьютера? Это примерно то же самое, что спросить, хорошо это или плохо — прийти к незнакомому человеку в гости и пользуясь его доверчивостью иметь доступ ко всем вещам и секретным документам в его квартире. Если вы честный человек, то ничего не украдете и подглядывать не будете. Зачем вам тогда доступ? Получается, что доступ — это плохо? Не всегда. Он часто бывает нужен в общении между знакомыми людьми, которые доверяют друг другу и которым было бы удобно считывать информацию с локальных дисков друг друга.. Или возьмите ситуацию сохранения в играх. Пользователь, играющий на вашей страничке в «Угадай число» и желающий после 20-й попытки сохраниться, должен иметь возможность это сделать. Сделать же это проще всего на локальном диске. Но для этого нужен доступ к нему со стороны сценария игры. Выходит, что без доступа все-таки не обойтись.

Создатели VBScript предоставили программистам доступ к локальным дискам, но они прекрасно понимали опасность такого доступа, поэтому вся работа с файловой системой в VBScript организована совсем по-другому, чем в Visual Basic. Вместо непосредственной работы с файлами, как мы это делали с файлами на диске нашего компьютера, организованы специальные объекты, представляющие файловую систему и обеспечивающие более безопасную работу.

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

Идея сценария такова. При первом открытии страницы на данном компьютере сценарий выдает на страницу сообщение «Вы на этой страничке ни разу не были», создает на локальном диске в корне диска С: файл INFORMAT.TXT и записывает в него значение счетчика посещений — число 0.

При каждом открытии страницы сценарий ищет в корне диска С: файл INFORMAT.TXT и если находит, то считывает с него значение счетчика, увеличивает его на 1 и отображает на странице в виде «Вы здесь были 5 раз». Если же файл не найден, сценарий делает вывод, что на этом компьютере страница еще не открывалась, и делает то, что я описал в предыдущем абзаце.

Вот HTML-документ нашей страницы со включенным в него сценарием:

Кое-что о разведении слонов в Антарктиде

Пояснения: Прочтите строки объявлений. Далее рассмотрим строку

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

Set objFs = CreateObject («Scripting.FileSystemObject»)

создает экземпляр объекта Файловая система. С этого мгновения вступают в действие меры безопасности. На экране компьютера, читающего вашу Web-страницу, возникает сообщение:

которое предупреждает пользователя, что программы на этой страничке могут быть опасными и не рекомендует разрешать их выполнение. У пользователя еще есть возможность нажать на No. Мой совет прост: Если эта страничка не принадлежит вашему лучшему другу — жмите No. Теперь рассмотрим строку

If objFs.FileExists (sAdres) Then

Здесь используется метод FileExists объекта objFs, который определяет, существует ли файл по указанному адресу sAdres. Смысл строки такой: Если файл c:\INFORMAT.TXT существует, то …

Set objFile = objFs.OpenTextFile(sAdres, 1)

открывает объект — текстовый файл для чтения (потому что 1). Строка

считывает из него строку и присваивает счетчику. Следующая строка увеличивает счетчик на 1, а строка

Document.Write «Вы здесь были » & intSchetchik & » раз»

записывает на страничку указанный текст.

Из дальнейших строк поясню следующие:

Set objFile = objFs.CreateTextFile (sAdres)

создает на диске файл по указанному адресу.

закрывает файл, независимо от того, какая ветвь оператора If выполнялась — Then или Else.

Set objFile = objFs.OpenTextFile(sAdres, 2)

открывает файл для записи (потому что 2).

записывает в файл значение счетчика.

Set ObjFs = Nothing

освобождает память компьютера от объекта Файловая система.

Собственный броузер

Вы можете внутри своего проекта создать собственный броузер, который даст вам возможность просматривать Web-страницы в окне, открытом прямо на форме. Ваши действия: Project ® Components ® Microsoft Internet Controls ® OK. Затем поместите на форму элемент управления WebBrowserразмером побольше. Теперь вам достаточно выполнить строку

И если вы в данный млмент подсоединены к Интернету, в окне вашего броузера появится страничка с указанным в кавычках адресом:

Здесь Navigate— метод объекта WebBrowser1.

В отличие от фирменных броузеров у вашего броузера нет ни кнопок, ни списков, ни других инструментов, облегчающих навигацию по Интернет. Вы сами прекрасно сможете организовать все, что вам нужно, используя в проекте кнопки, списки и другие стандартные элементы управления Visual Basic. В этом вам помогут следующие элементы объекта WebBrowser1:

· Свойство Busy. Оно равно True, если броузер занят — ищет или скачивает страницы.

· Событие DocumentComplete. Наступает, когда страница или фрейм страницы загружены в окно броузера.

· Метод Stop. Пользуйтесь им, чтобы прервать слишком медленную загрузку Web-страницы.

Кроме описанных возможностей работы в Интернет, Visual Basic позволяет организовать работу с электронной почтой (E-mail), запускать Internet Explorer, не выходя из проекта, и т.д.

Если вы хотите совершенствоваться в создании Web-страничек, то сначала освойте стандартные средства HTML или Word или FrontPage, не используя программирования. И только затем снова беритесь за программирование.

Последнее изменение этой страницы: 2020-08-12; Нарушение авторского права страницы

Илон Маск рекомендует:  Фон и цвет
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL