Макросы не работают в PowerPoint для Mac 2016 - PullRequest
0 голосов
/ 17 ноября 2018

У меня есть файл PowerPoint с табло, который использует следующий код.Код отлично работает для Powerpoint в Windows, но обнаружил, что при запуске Powerpoint в Mac код / ​​кнопки не работают (все макросы были включены в настройках).Насколько я понимаю, макросы / vba поддерживаются в Mac после 2008 года. Любое понимание будет высоко ценится.Файл сохраняется как презентация с поддержкой PPTM / макросов.
(Я искал, но не смог найти информацию по этому ответу. Спасибо, я новичок в этом и сам учусь на ходу)

Sub Label1Plus100()
Label1.Caption = (Label1.Caption) + 100
End Sub

Sub Label1Minus100()
Label1.Caption = (Label1.Caption) - 100
End Sub

Sub LabelReset()
Label1.Caption = 0
End Sub

Sub ResetandExit()
Label1.Caption = 0
ActivePresentation.SlideShowWindow.View.Exit
End Sub

1 Ответ

0 голосов
/ 18 ноября 2018

ОК, опять же, избегайте объектов ActiveX.

Далее я бы поместил все на слайд, а не вставил биты в мастер слайдов. Используйте текстовое поле вместо объектов ActiveX для текста, который изменится. Дайте текстовым полям имя, например «Оценка», сначала выбрав его, а затем в непосредственном окне VBA:

ActiveWindow.Selection.ShapeRange(1).Name = "Score"

Затем в редакторе VBA вставьте новый модуль и добавьте что-то вроде:

Sub IncrementScore()
   With SlideShowWindows(1).View.Slide.Shapes("Score")
       .TextFrame.TextRange.Text = .TextFrame.TextRange.Text + 100
   End With
End Sub

Затем примените этот макрос в качестве настройки действия для кнопки «плюс». Измените минус и очистите кнопки аналогично.

И, строго говоря, хотя VBA попытается покрыть вас, не рекомендуется добавлять числовые и строковые (т. Е. Текстовые) значения, поэтому было бы лучше использовать:

.TextFrame.TextRange.Text = Cstr(Clng(.TextFrame.TextRange.Text)+100)

Это преобразует существующий текст в длинный, добавляет к нему 100, а затем преобразует результат обратно в строку для вставки в текстовое поле.

...