Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2012, 21:41   #1
vfayans
Пользователь
 
Регистрация: 14.01.2010
Сообщений: 13
Вопрос Вставка символа средствами VBA

Как вставить символ в строку WORD или ячейку Excel в программе на VBA?
Обратная задача: как программно определить, является ли очередной символ строки "штатным" или результатом вставки символа и если результатом вставки, то каков код этого символа?
vfayans вне форума Ответить с цитированием
Старый 21.03.2012, 01:17   #2
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Одинаково успешно в Word и Excel работает инструкция SendKeys:
Код:
Sub paster()
SendKeys Chr(48), True   'вставляет 0 в точку ввода
'SendKeys "{enter}", True 'жмёт Enter
End Sub
Код символа (активного) и там и там можно узнать выполнив
Код:
Sub WhatCode()
MsgBox Asc(Selection) 'код 1-го символа активной ячейки (или за курсором - в Word)
End Sub
По поводу "коренных" отличий вставок и "штатного" контента документов, я думаю, надо как-то работать со списком возвратов (1-й рисунок); сам не пробовал.
Цитата:
Сообщение от viter.alex Посмотреть сообщение
Какая разница, как он был вставлен? Никак это не отследить
Вообще-то документ (пока не закрыт) хранит все действия над ним. Ну не суть уже.
Изображения
Тип файла: jpg ПосылНуля.jpg (31.3 Кб, 165 просмотров)
Тип файла: png Список_Undo.png (47.0 Кб, 411 просмотров)

Последний раз редактировалось Sasha_Smirnov; 21.03.2012 в 18:31.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 21.03.2012, 03:08   #3
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Что значит "штатным" символом? Возьмите код символа, и проверьте его на вхождение в заданный диапазон символов. Какая разница, как он был вставлен? Никак это не отследить
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 21.03.2012, 11:10   #4
vfayans
Пользователь
 
Регистрация: 14.01.2010
Сообщений: 13
Восклицание Вставка символа средствами VBA

Проблема возникает, когда вставляется "нештатный" символ, например греческая буква. И определить его код с помощью ф-ий Asc, AscW не удаётся.
vfayans вне форума Ответить с цитированием
Старый 21.03.2012, 15:34   #5
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Однако, что касаестся ворда и AscW, то удачи случались: http://programmersforum.ru/showthrea...highlight=AscW

Код:
MsgBox AscW(Selection)
пробовали?
Sasha_Smirnov вне форума Ответить с цитированием
Старый 21.03.2012, 16:41   #6
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,034
По умолчанию

"нештатный" символ и "штатный" символ выбросьте из лексикона
Ципихович Эндрю вне форума Ответить с цитированием
Старый 21.03.2012, 18:28   #7
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Думаю, можно сказать "из нештатной раскладки" — а в кавычках и подавно!

А не выбросить ли и "лексикон" из "штатного" жаргона?!
Sasha_Smirnov вне форума Ответить с цитированием
Старый 21.03.2012, 20:15   #8
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

Цитата:
InsertSymbol Method
See AlsoApplies ToExampleSpecificsInserts a symbol in place of the specified range or selection.

Note If you don't want to replace the range or selection, use the Collapse method before you use this method.

expression.InsertSymbol(CharacterNu mber, Font, Unicode, Bias)
expression Required. An expression that returns a Range or Selection object.

CharacterNumber Required Long. The character number for the specified symbol. This value will always be the sum of 31 and the number that corresponds to the position of the symbol in the table of symbols (counting from left to right). For example, to specify a delta character at position 37 in the table of symbols in the Symbol font, set CharacterNumber to 68.

Font Optional Variant. The name of the font that contains the symbol.

Unicode Optional Variant. True to insert the unicode character specified by CharacterNumber; False to insert the ANSI character specified by CharacterNumber. The default value is False.

Bias Optional Variant. Sets the font bias for symbols. This argument is useful for setting the correct font bias for East Asian characters. Can be one of the following WdFontBias constants: wdFontBiasDefault, wdFontBiasDontCare, or wdFontBiasFareast. This argument may not be available to you, depending on the language support (U.S. English, for example) that you’ve selected or installed.

Example
This example inserts a double-headed arrow at the insertion point.

With Selection
.Collapse Direction:=wdCollapseStart
.InsertSymbol CharacterNumber:=171, _
Font:="Symbol", Unicode:=False
End With

This example inserts a bullet and a tab stop at the beginning of the first paragraph in the selection.

Set myRange = Selection.Paragraphs(1).Range
With myRange
.Collapse Direction:=wdCollapseStart
.InsertSymbol CharacterNumber:=183, _
Font:="Symbol", Unicode:=False
.MoveStart Unit:=wdCharacter, Count:=1
.InsertAfter vbTab
End With
что мешает просто посмотреть HELP?
Aent вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка символа Waqq Помощь студентам 4 03.09.2011 21:11
Вставка символа:) WizarD.89 Microsoft Office Excel 13 03.05.2011 21:47
Выделение строки цветом и вставка символа konistra Microsoft Office Excel 4 16.06.2010 21:16
Вставка изображения в word средствами delphi MeTeOpA БД в Delphi 2 03.06.2010 22:09
Вставка символа в строку ArniLand Общие вопросы C/C++ 1 28.04.2010 18:11