С Новым годом! Форум программистов, компьютерный форум, киберфорум
MS Office Powerpoint
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для Ozymandius
1 / 1 / 1
Регистрация: 15.08.2012
Сообщений: 60

Презентация на VBA. Проблема с макросом

29.10.2024, 12:44. Показов 1147. Ответов 3

Студворк — интернет-сервис помощи студентам
Здравствуйте, уважаемые!
Учусь писать презентации на Visual Basic для power point, написал макрос презентации, но эта редиска все время выдает ошибку синтаксиса начиная со строки
Visual Basic
1
2
 content = Array( _
        "Рожистое воспаление (erysipelas) – это инфекционное заболевание, вызванное стрептококками группы А. Заболевание поражает кожу и слизистые оболочки, вызывая воспаление, отек и боль.", _
Вроде и строки не слишком длинные, и синтаксис норм... Всю голову сломал!
Подскажите плиз, где может быть ошибка? Спасибо!
Вот весь код:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
Sub Рожистое воспаление()
    ' Создаем новую презентацию PowerPoint с названием "Рожистое воспаление"
    Dim pptApp As Object
    Dim pptPresentation As Object
    Set pptApp = CreateObject("PowerPoint.Application")
    pptApp.Visible = True
    Set pptPresentation = pptApp.Presentations.Add
    pptPresentation.Windows(1).Caption = "Рожистое воспаление"
 
    ' Заголовки, содержимое и изображения для слайдов
    Dim titles As Variant
    Dim content As Variant
    Dim images As Variant
    
    ' Пути к изображениям для каждого слайда
    images = Array("/Users/username/Pictures/erysipelas_overview.jpg", _
                   "/Users/username/Pictures/erysipelas_definition.jpg", _
                   "/Users/username/Pictures/erysipelas_form_erythematous.jpg", _
                   "/Users/username/Pictures/erysipelas_form_bullous.jpg", _
                   "/Users/username/Pictures/erysipelas_form_hemorrhagic.jpg", _
                   "/Users/username/Pictures/erysipelas_form_necrotic.jpg", _
                   "/Users/username/Pictures/erysipelas_risk_factors.jpg", _
                   "/Users/username/Pictures/erysipelas_symptoms.jpg", _
                   "/Users/username/Pictures/erysipelas_diagnosis.jpg", _
                   "/Users/username/Pictures/erysipelas_treatment.jpg", _
                   "/Users/username/Pictures/erysipelas_prevention.jpg", _
                   "/Users/username/Pictures/erysipelas_complications.jpg", _
                   "/Users/username/Pictures/erysipelas_emergency.jpg", _
                   "/Users/username/Pictures/erysipelas_conclusion.jpg")
 
    ' Основные заголовки и содержание для слайдов
    titles = Array("Рожистое воспаление: Обзор", _
                   "Определение и характеристика", _
                   "Формы: Эритематозная", _
                   "Формы: Буллёзная", _
                   "Формы: Геморрагическая", _
                   "Формы: Некротическая", _
                   "Факторы риска", _
                   "Симптомы", _
                   "Диагностика", _
                   "Лечение", _
                   "Профилактика", _
                   "Осложнения", _
                   "Алгоритм помощи", _
                   "Заключение")
 
    content = Array( _
        "Рожистое воспаление (erysipelas) – это инфекционное заболевание, вызванное стрептококками группы А. " & _
        "Заболевание поражает кожу и слизистые оболочки, вызывая воспаление, отек и боль.", _
        
        "Рожистое воспаление проявляется как острое ограниченное воспаление с четкими границами и отеком. " & _
        "Иногда оно переходит в хроническую форму с частыми рецидивами.", _
        
        "Эритематозная форма – наиболее распространенная. Появляется ярко-красное пятно с четкими границами, " & _
        "болью и отеком в пораженной области. Часто сопровождается лихорадкой.", _
        
        "Буллёзная форма рожистого воспаления – образование пузырей с жидкостью, которые могут вскрываться и " & _
        "оставлять эрозии, увеличивая риск инфицирования.", _
        
        "Геморрагическая форма – характеризуется пузырями с кровянистым содержимым, что придает воспалению " & _
        "сине-багровый цвет и сопровождается выраженным отеком.", _
        
        "Некротическая форма – самая тяжелая, включает отмирание тканей, гангрену, интенсивную боль и " & _
        "требует немедленного вмешательства для предотвращения осложнений.", _
        
        "К факторам риска относятся хронические заболевания (например, диабет), плохая гигиена, лимфедема и " & _
        "иммунодефицит, что повышает восприимчивость к инфекции.", _
        
        "Основные симптомы: покраснение кожи, боль, отек, жжение и высокая температура. Пораженные участки " & _
        "имеют четкие границы и могут распространяться при отсутствии лечения.", _
        
        "Диагностика включает осмотр пораженных участков, анализы крови на наличие воспаления, а также " & _
        "ультразвук для оценки состояния тканей и исключения других инфекций.", _
        
        "Лечение: назначение антибиотиков (например, пенициллины), противовоспалительных и обезболивающих " & _
        "средств. В тяжелых случаях требуется госпитализация и интенсивная терапия.", _
        
        "Профилактика включает соблюдение гигиенических норм, обработку ран антисептиками и контроль " & _
        "за хроническими заболеваниями для снижения риска заражения.", _
        
        "Осложнения: абсцессы, гангрена, лимфостаз и сепсис. Рецидивы могут привести к хроническому воспалению " & _
        "и нарушению лимфатического оттока.", _
        
        "Алгоритм скорой помощи включает оценку состояния, обезболивание, противошоковые меры, антибиотики " & _
        "и транспортировку в стационар.", _
        
        "Рожистое воспаление требует быстрой диагностики и лечения для предотвращения осложнений и " & _
        "появления рецидивов.")
 
    ' Добавляем слайды с заголовками, содержимым и анимацией
    Dim i As Integer
    For i = 0 To 13
        Dim slide As Object
        Set slide = pptPresentation.Slides.Add(i + 1, 1)
        
        ' Заголовок слайда
        Dim titleShape As Object
        Set titleShape = slide.Shapes.AddTextbox(msoTextOrientationHorizontal, 50, 50, 600, 50)
        titleShape.TextFrame.TextRange.Text = titles(i)
        titleShape.TextFrame.TextRange.Font.Size = 28
        titleShape.TextFrame.TextRange.Font.Bold = msoTrue
        ' Анимация заголовка
        slide.TimeLine.MainSequence.AddEffect titleShape, msoAnimEffectFly, , msoAnimTriggerAfterPrevious
        
        ' Основной текст
        Dim contentShape As Object
        Set contentShape = slide.Shapes.AddTextbox(msoTextOrientationHorizontal, 50, 150, 600, 300)
        contentShape.TextFrame.TextRange.Text = content(i)
        contentShape.TextFrame.TextRange.Font.Size = 18
        ' Анимация текста
        slide.TimeLine.MainSequence.AddEffect contentShape, msoAnimEffectFade, , msoAnimTriggerAfterPrevious
 
        ' Проверка, что изображение существует, и добавление его на слайд
        If i <= UBound(images) Then
            Dim imgShape As Object
            Set imgShape = slide.Shapes.AddPicture(images(i), msoFalse, msoCTrue, 650, 150, 250, 200)
            ' Анимация изображения
            slide.TimeLine.MainSequence.AddEffect imgShape, msoAnimEffectFade, , msoAnimTriggerAfterPrevious
        End If
    Next i
End Sub
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.10.2024, 12:44
Ответы с готовыми решениями:

Проблема с макросом в VBA Excel
Проблема состоит в том, что я вроде понимаю как и что надо сделать, но не могу это воплотить через макросы в Excel. Задание: Даны 3...

Помощь с макросом VBA
Возникла необходимость реализовать форматирование текста в формирующемся отчете. Сам я с vba по долгу службы фактически не знаком. Буду...

VBA: Outlook открытие файла макросом
Добрый день! Подскажите пожалуйста, какой макрос необходимо прописать в Outlook, чтобы тот при нажатии на кнопку(она уже подготовлена)...

3
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,931
Записей в блоге: 4
29.10.2024, 13:09
Лучший ответ Сообщение было отмечено Ozymandius как решение

Решение

Цитата Сообщение от Ozymandius Посмотреть сообщение
эта редиска все время выдает ошибку синтаксиса начиная со строки
есть ограничение на количество строк продолжения(20), как и на суммарную длину (1024)строки
я бы оформила текст немного иначе, вдруг потребуется переставить/ убрать/добавить слайды
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 ' Заголовки, содержимое и изображения для слайдов
    Dim titles (20) 'c запасом 
    Dim content (20)
    Dim images (20)
    dim nc as long
    ' Пути к изображениям для каждого слайда
 
    nc=nc+1:images(nc) = "/Users/username/Pictures/erysipelas_overview.jpg"
    titles(nc) = "Рожистое воспаление: Обзор"
    content(nc) ="Рожистое воспаление (erysipelas) – это инфекционное заболевание, вызванное стрептококками группы А. " _
                       "Заболевание поражает кожу и слизистые оболочки, вызывая воспаление, отек и боль.", 
   
    nc=nc+1:images(nc) = "/Users/username/Pictures/erysipelas_definition.jpg"
    titles(nc) = "Определение и характеристика"
    content(nc) ="Рожистое воспаление проявляется как острое ограниченное воспаление с четкими границами и отеком. " &  _
                        "Иногда оно переходит в хроническую форму с частыми рецидивами."
 
''''''' и т.д.
1
Нарушитель
110 / 86 / 32
Регистрация: 10.05.2023
Сообщений: 323
29.10.2024, 13:20
Лучший ответ Сообщение было отмечено Ozymandius как решение

Решение

Цитата Сообщение от Ozymandius Посмотреть сообщение
Sub Рожистое воспаление()
1) тут не должно быть пробела, пишите так: Sub РожистоеВоспаление() или Sub Рожистое_воспаление()
2)
Цитата Сообщение от Ozymandius Посмотреть сообщение
Set imgShape = slide.Shapes.AddPicture(images(i), msoFalse, msoCTrue, 650, 150, 250, 200)
тут опечатка, должно быть msoTrue

Нужно проверить наличие необходимых для работы библиотек, пути к картинкам и прочее. Удачи))
1
 Аватар для Ozymandius
1 / 1 / 1
Регистрация: 15.08.2012
Сообщений: 60
29.10.2024, 19:31  [ТС]
Точно, затупил... Сейчас попробую

Добавлено через 1 час 49 минут
Вобщем спасибо всем!
Было познавательно. Пробел был явно лишний! Ошибку с
Visual Basic
1
content = Array( _
обошел через
Visual Basic
1
Case
, а msoCTrue работает и без исправлений!
Правда с мака переложил на винду.
Вот что в итоге получилось:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
Sub Рожа()
    ' Создаем новую презентацию PowerPoint
    Dim pptApp As Object
    Dim pptPresentation As Object
    Set pptApp = CreateObject("PowerPoint.Application")
    pptApp.Visible = True
    Set pptPresentation = pptApp.Presentations.Add
    
    ' Заголовки и изображения для каждого слайда
    Dim titles As Variant
    Dim images As Variant
    titles = Array("Рожистое воспаление: Обзор", "Определение и характеристика", _
                   "Формы: Эритематозная", "Формы: Буллёзная", "Формы: Геморрагическая", _
                   "Формы: Некротическая", "Факторы риска", "Симптомы", "Диагностика", _
                   "Лечение", "Профилактика", "Осложнения", "Алгоритм помощи", "Заключение")
                   
    images = Array("C:\Images\erysipelas_overview.jpg", "C:\Images\erysipelas_definition.jpg", _
                   "C:\Images\erysipelas_form_erythematous.jpg", "C:\Images\erysipelas_form_bullous.jpg", _
                   "C:\Images\erysipelas_form_hemorrhagic.jpg", "C:\Images\erysipelas_form_necrotic.jpg", _
                   "C:\Images\erysipelas_risk_factors.jpg", "C:\Images\erysipelas_symptoms.jpg", _
                   "C:\Images\erysipelas_diagnosis.jpg", "C:\Images\erysipelas_treatment.jpg", _
                   "C:\Images\erysipelas_prevention.jpg", "C:\Images\erysipelas_complications.jpg", _
                   "C:\Images\erysipelas_emergency.jpg", "C:\Images\erysipelas_conclusion.jpg")
    
    ' Цвет фона слайдов
    Dim slideColor As Long
    slideColor = RGB(152, 224, 173)  ' HTML код #98E0AD
    
    ' Создаем слайды
    Dim slide As Object, titleShape As Object, contentShape As Object, imgShape As Object
    For i = 0 To UBound(titles)
        Set slide = pptPresentation.Slides.Add(i + 1, 1)
        slide.FollowMasterBackground = msoFalse
        slide.Background.Fill.ForeColor.RGB = slideColor
        
        ' Добавляем заголовок
        Set titleShape = slide.Shapes.AddTextbox(msoTextOrientationHorizontal, 50, 50, 600, 50)
        titleShape.TextFrame.TextRange.Text = titles(i)
        titleShape.TextFrame.TextRange.Font.Size = 28
        titleShape.TextFrame.TextRange.Font.Bold = msoTrue
        slide.TimeLine.MainSequence.AddEffect titleShape, msoAnimEffectZoom, , msoAnimTriggerAfterPrevious
        
        ' Добавляем содержимое
        Set contentShape = slide.Shapes.AddTextbox(msoTextOrientationHorizontal, 50, 150, 600, 300)
        Select Case i
            Case 0
                contentShape.TextFrame.TextRange.Text = "Рожистое воспаление (erysipelas) – это острое инфекционное заболевание, вызванное стрептококками группы А, поражающее кожу и слизистые оболочки. " & _
                "Часто сопровождается болью, покраснением и отеком пораженной области. Затрагивает обычно конечности и лицо."
            Case 1
                contentShape.TextFrame.TextRange.Text = "Рожистое воспаление характеризуется воспалением с четкими границами, " & _
                "быстрым распространением по подкожным тканям, высокой температурой и возможными осложнениями. " & _
                "Важно быстро начинать лечение, так как заболевание может перейти в хроническую форму с частыми рецидивами."
            Case 2
                contentShape.TextFrame.TextRange.Text = "Эритематозная форма: проявляется как ярко-красное пятно с четкими границами, окружающее здоровую кожу. " & _
                "Боль, отек и лихорадка являются основными симптомами. В тяжелых случаях возможны симптомы интоксикации, усталость и слабость."
            Case 3
                contentShape.TextFrame.TextRange.Text = "Буллёзная форма: на воспаленных участках появляются пузыри, заполненные жидкостью, которые вскрываются, оставляя эрозии. " & _
                "Эта форма требует специального ухода для предотвращения инфекции, а в тяжелых случаях может осложняться."
            Case 4
                contentShape.TextFrame.TextRange.Text = "Геморрагическая форма: воспаление ярко выражено с кровянистыми пузырями, придающими поражению багровый оттенок. " & _
                "Эта форма может сопровождаться сильной болью и отеком, а также высокой температурой, часто требует госпитализации."
            Case 5
                contentShape.TextFrame.TextRange.Text = "Некротическая форма: это тяжелая форма, при которой происходит отмирание тканей. Может потребоваться хирургическое удаление. " & _
                "Высокий риск сепсиса и других осложнений. Срочная госпитализация необходима для предотвращения распространения инфекции."
            Case 6
                contentShape.TextFrame.TextRange.Text = "Факторы риска: пожилой возраст, иммунодефицит, диабет, наличие хронических заболеваний, плохая гигиена, травмы кожи."
            Case 7
                contentShape.TextFrame.TextRange.Text = "Основные симптомы включают лихорадку, боль, покраснение кожи, отек и четкие границы пораженной области. В тяжелых случаях — головная боль, усталость."
            Case 8
                contentShape.TextFrame.TextRange.Text = "Диагностика включает клинический осмотр, анализ крови и, при необходимости, ультразвуковое исследование для оценки состояния лимфатических узлов и тканей."
            Case 9
                contentShape.TextFrame.TextRange.Text = "Лечение проводится антибиотиками, а также назначаются обезболивающие и противовоспалительные препараты. В тяжелых случаях возможно хирургическое вмешательство."
            Case 10
                contentShape.TextFrame.TextRange.Text = "Профилактика включает соблюдение личной гигиены, контроль хронических заболеваний, предупреждение травм и своевременное лечение ран."
            Case 11
                contentShape.TextFrame.TextRange.Text = "Осложнения включают развитие абсцессов, некроз тканей, лимфостаз и сепсис, которые могут требовать длительного лечения."
            Case 12
                contentShape.TextFrame.TextRange.Text = "Алгоритм помощи: быстрое обезболивание, антибактериальная терапия и срочная госпитализация в случае тяжелого состояния. Поддержка основных функций организма."
            Case 13
                contentShape.TextFrame.TextRange.Text = "Заключение: своевременная диагностика и лечение необходимы для предотвращения осложнений и рецидивов. Обучение пациентов мерам профилактики играет ключевую роль."
        End Select
        contentShape.TextFrame.TextRange.Font.Size = 18
        slide.TimeLine.MainSequence.AddEffect contentShape, msoAnimEffectFade, , msoAnimTriggerAfterPrevious
 
        ' Добавляем изображение
        If i <= UBound(images) Then
            Set imgShape = slide.Shapes.AddPicture(images(i), msoFalse, msoCTrue, 650, 150, 250, 200)
            slide.TimeLine.MainSequence.AddEffect imgShape, msoAnimEffectFly, , msoAnimTriggerAfterPrevious
        End If
    Next i
End Sub
Добавлено через 4 часа 10 минут
Кстати, да, это будет не лишним!
Цитата Сообщение от shanemac51 Посмотреть сообщение
'
   
Visual Basic
1
2
3
4
    Dim titles (20) 'c запасом 
    Dim content (20)
    Dim images (20)
    dim nc as long
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.10.2024, 19:31
Помогаю со студенческими работами здесь

Отправка писем из MS Outlook макросом VBA
Подскажите пожалуйста, можно ли при отправке писем макросом изменить шрифт и цвет текста. Необходимо, чтобы текст, который вносится из...

Перенос контактов из Outlook в Excel макросом VBA
Доброго времени суток. Помогите с таким вопросом: Пытаюсь макросом VBA вытащить контакты из Outlook в Excel. На просторах...

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

VBA, как макросом сохранить лист в dbf`ный файл?
подскажите новичку в VBA как макросом сохранить лист в dbf`ный файл... и чтобы еще параметры указать все программно...

Удалить весь текст/данные из Word документа VBA макросом
Добрый день уважаемые господа. Столкнулся с некой задачей удаления данных из ms office word документа и вставки своего текста/данных в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru