Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как изменить текст в SmartArt через VBA - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как изменить текст в SmartArt через VBA (Макросы/Sub)
Как изменить текст в SmartArt через VBA
slAvIk159 Дата: Вторник, 15.08.2017, 23:43 | Сообщение № 1
Группа: Проверенные
Ранг: Участник
Сообщений: 83
Репутация: 13 ±
Замечаний: 0% ±

Excel 2013
Здравствуйте.
Во вложении файл, в файле есть объект SmartArt, в ньом один елемент.
Вопрос в том как через VBA изменить текст "ВВВВ". Как изменить "АААА" нашол, а вот как изменить "ВВВВ" никак не могу найти.
К сообщению приложен файл: 9371218.xlsx (17.9 Kb)
 
Ответить
СообщениеЗдравствуйте.
Во вложении файл, в файле есть объект SmartArt, в ньом один елемент.
Вопрос в том как через VBA изменить текст "ВВВВ". Как изменить "АААА" нашол, а вот как изменить "ВВВВ" никак не могу найти.

Автор - slAvIk159
Дата добавления - 15.08.2017 в 23:43
AndreTM Дата: Среда, 16.08.2017, 02:21 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
[vba]
Код
ActiveSheet.Shapes(1).SmartArt.Nodes(1).Shapes(1).TextFrame2.TextRange.Text = "AAAA"
ActiveSheet.Shapes(1).SmartArt.Nodes(1).Shapes(2).TextFrame2.TextRange.Text = "BBBB"
[/vba]
Короче, вы вообще сначала должны проверить, что ваша
[vba]
Код
ActiveSheet.Shapes("Diagram 1").HasSmartArt = msoTrue
[/vba]затем вы уже можете проверить, что
[vba]
Код
ActiveSheet.Shapes("Diagram 1").SmartArt.Nodes(1).Shapes.Count = 2
[/vba]и вот только потом вы с полной уверенностью можете читать/писать текст в соответствующие шейпы ноды вашего смартарта...
А всё потому,что вы сделали эти ваши надписи привязанными к одной и той же ноде объекта SmartArt, соотвественно, они попали уже в коллекцию шейпов этой самой ноды.


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение[vba]
Код
ActiveSheet.Shapes(1).SmartArt.Nodes(1).Shapes(1).TextFrame2.TextRange.Text = "AAAA"
ActiveSheet.Shapes(1).SmartArt.Nodes(1).Shapes(2).TextFrame2.TextRange.Text = "BBBB"
[/vba]
Короче, вы вообще сначала должны проверить, что ваша
[vba]
Код
ActiveSheet.Shapes("Diagram 1").HasSmartArt = msoTrue
[/vba]затем вы уже можете проверить, что
[vba]
Код
ActiveSheet.Shapes("Diagram 1").SmartArt.Nodes(1).Shapes.Count = 2
[/vba]и вот только потом вы с полной уверенностью можете читать/писать текст в соответствующие шейпы ноды вашего смартарта...
А всё потому,что вы сделали эти ваши надписи привязанными к одной и той же ноде объекта SmartArt, соотвественно, они попали уже в коллекцию шейпов этой самой ноды.

Автор - AndreTM
Дата добавления - 16.08.2017 в 02:21
slAvIk159 Дата: Среда, 16.08.2017, 13:00 | Сообщение № 3
Группа: Проверенные
Ранг: Участник
Сообщений: 83
Репутация: 13 ±
Замечаний: 0% ±

Excel 2013
AndreTM, Большое спасибо, помогло
 
Ответить
СообщениеAndreTM, Большое спасибо, помогло

Автор - slAvIk159
Дата добавления - 16.08.2017 в 13:00
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как изменить текст в SmartArt через VBA (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!