2013-10-22 9 views
7

मैंने एक्सेल में एक मैक्रो बनाया जो एक 3 डी चार्ट स्पिन करेगा। मैंने चार्ट को PowerPoint में कॉपी किया है, स्लाइड दिखाए जाने पर PowerPoint में चलाने के लिए कोड सेट अप करें। कोड चलता है, लेकिन स्क्रीन पर जो दिखाया गया है उसे वास्तव में बदलने के लिए मैं इसे प्राप्त नहीं कर सकता। जब स्लाइड संपादन मोड में होती है, तो ग्राफ घूमता है। कोई विचार नहीं कि कोड को न केवल चलाने के लिए कैसे प्राप्त करें (मैं डीबग संख्याएं दिखा रहा हूं), लेकिन प्रेजेंटेशन मोड में स्क्रीन अपडेट करें? मेरे कोड है:PowerPoint प्रस्तुति में 3 डी चार्ट स्पिनिंग

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 

Public Sub SpinTheChart() 

    RotateX = ActivePresentation.Slides(2).Shapes(2).Chart.ChartArea.Format _ 
        .ThreeD.RotationX 

    Do While ActivePresentation.SlideShowWindow.View.CurrentShowPosition = 2 
     RotateX = RotateX + 7 
     If RotateX > 360 Then RotateX = RotateX - 360 
     ActivePresentation.Slides(2).Shapes(2).Chart.ChartArea.Format _ 
        .ThreeD.RotationX = RotateX 
     DoEvents 
     Sleep 125 
     Debug.Print RotateX 
    Loop 

End Sub 

Sub OnSlideShowPageChange() 
    Dim i As Integer 
    i = ActivePresentation.SlideShowWindow.View.CurrentShowPosition 
    If i = 2 Then SpinTheChart 
End Sub 

अद्यतन: मैं अभी भी इस लड़ रहा हूँ। ऐसा लगता है कुछ recomendations आप, उपयोग करने की आवश्यकता DoEvents नीचे वर्तमान में प्रदर्शित चार्ट अद्यतन करने के लिए कहते हैं,:

SlideShowWindows(1).View.GotoSlide SlideSowWindows(1).View.CurrentShowPosition 

लेकिन यह काम नहीं करता। यह चल रहा है कि किसी भी कोड से बाहर निकलता है। तो पहले फंक्शन में डू/लूप निकल गया है और यह दूसरे पुनरावृत्ति पर नहीं जाता है।

+1

क्या आप वाकई वस्तुओं एक्सेल और पावरपोइंट के बीच एक ही इंटरफ़ेस का उपयोग करने के लिए जांच की है? –

+1

क्या आपका अद्यतन है: कोड से एक सटीक प्रति कोड कोड करें? यदि ऐसा है, तो दूसरी छमाही में वर्तनी जांचें, जहां 'स्लाइडशोविंडोज़' गलत वर्तनी है। –

+0

आपने चार महीने पहले इस प्रश्न से पूछा था और कोई जवाब नहीं है: क्या आपने कभी इस मुद्दे को हल किया है? –

उत्तर

0

यह चार्ट पर मौसम परिवर्तन लगता है ट्रिगर नहीं SlideShowView ताज़ा करें। लेकिन आकार में पाठ पर परिवर्तन यह करेंगे। एक PowerPoint प्रस्तुति के दौरान

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 

Public Sub SpinTheChart() 

Set oSlide = ActivePresentation.Slides("Slide1") 
Set oChart = oSlide.Shapes("Diagramm 4").Chart 
oChart.ChartArea.Format.ThreeD.RotationX = 20 

snRotationX = oChart.ChartArea.Format.ThreeD.RotationX 

Do While ActivePresentation.SlideShowWindow.View.Slide.Name = "Slide1" 

    snRotationX = snRotationX + 7 
    If snRotationX > 360 Then snRotationX = snRotationX - 360 
    oChart.ChartArea.Format.ThreeD.RotationX = snRotationX 

    'oSlide.Shapes("Rechteck 7").TextFrame.TextRange.Text = snRotationX 
    oSlide.Shapes.Title.TextFrame.TextRange.Text = oSlide.Shapes.Title.TextFrame.TextRange.Text 

    DoEvents 
    Sleep 125 

Loop 
End Sub 

Sub OnSlideShowPageChange(ByVal SSW As SlideShowWindow) 
If SSW.View.Slide.Name = "Slide1" _ 
    Then SpinTheChart 
End Sub 

आप मैक्रो के साथ अन्य मुद्दों से परिचित हैं: तो निम्न कोड चार्ट घूमती है? वे इस तरह के पर्यावरण में बहुत नाजुक हैं और उनके प्रभावों का ध्यानपूर्वक परीक्षण किया जाना चाहिए।

और OnSlideShowPageChange केवल तभी कारगर साबित VBA से पहले सक्रिय किया गया था। प्रस्तुति शुरू करने से पहले वीबीए संपादक को खोलना और बंद करना सबसे आसान तरीका है।

अभिवादन

एक्सल

+0

मुझे यह जानना अच्छा लगेगा कि यह काम करता है या नहीं। – peege

+0

मेरे लिए PowerPoint 2007 के साथ काम करता है। बेशक नाम सही होना चाहिए। 3 स्लाइड के साथ एक नई पीपीटी प्रस्तुति बनाएँ। दूसरी स्लाइड पर एक शीर्षक आकार और एक 3 डी-आरेख आकार है। ओपन वीबीए संपादक। कोड को मॉड्यूल में कॉपी करें। "स्लाइड 1" को "स्लाइड 2" में बदलें। 'सार्वजनिक उप स्पिनथी चार्ट() 'के माध्यम से' ओएसलाइड = सक्रिय प्रस्तुति सेट करें। स्लाइड (" स्लाइड 2 ")'। स्थानीय विंडो में देखें जिसमें नाम ओस्लाइड-आकार-आइटम 2 है। इस नाम को 'सेट oChart = oSlide.Shapes ("आरेख 4") में बदलें। चार्ट'। वीबीए बचाओ। वीबीए संपादक बंद करें। अब इसे प्रेजेंटेशन मोड में चलाना चाहिए। –

1

चार्ट संपादन मोड में घूमती है, तो क्यों आप एक .GIF एक के रूप में यह रिकॉर्ड न करें शामिल प्रस्तुति में है?

PowerPoint के लिए एक एनिमेटेड GIF जोड़ें: https://support.office.com/en-us/article/Add-an-animated-GIF-to-a-slide-3a04f755-25a9-42c4-8cc1-1da4148aef01

अपनी स्क्रीन रिकॉर्डिंग: http://www.screentogif.com

संबंधित मुद्दे