在PPT中,利用VBA能夠輕鬆調取Excel中數據,通過一張幻燈片就可以做...

2020-12-25 愛好者網站

在PPT中,利用VBA能夠輕鬆調取Excel中數據,通過一張幻燈片就可以做若干習題。

在課堂上,許多老師都是用PPT進行課堂練習。一般情況下,有多少道練習題就用多少張幻燈片。這樣的做法存一個弊端:就是要想將幻燈片中的試題修改成統一的字體或字號,需要一張一張地去修改。如果試題所用的幻燈片少了,這樣的方法還行;但是,試想一下,有幾十道、上百道練習題,如果要一張一張地修改,那實在是一件很麻煩、很費神的事。

筆者經過不斷研究,終於想到了一個非常行之有效的方法:就是將你所需要的若干試題存放在一個Excel工作表中,然後在PPT中利用VBA讀取Excel工作表中的數據到幻燈片中,這樣只需要一張幻燈片就可以練習若干道習題了。要修改的話,只需要修改這一張幻燈片中的文本框就可以了。如果你想知道這種方法是怎麼實現的,就請跟我來吧!

準備工作表和幻燈片

這個過程主要是準備好存放試題的Excel工作表和顯示試題的幻燈片。

首先,準備好一個Excel文件,在Sheet1工作表中存放好所需要試題,並將這個Excel文件和PPT文件放在同一文件夾中。然後,打開PowerPoint 2003,插入一張空白幻燈片。在這張幻燈片中先插入兩個文本框,它們的作用一個是用於存放試題題目,一個用於存放正確答案(在存放試題題目的文本框中可先輸入一個提示性語句,在存放正確答案的文本框中可先輸入一個空格)(圖1)。

最後,選擇「幻燈片放映→動作按鈕」菜單,在幻燈片的合適位置插入5個動作按鈕。可右擊相應的動作按鈕為它們添加相應的文字(圖2)。

添加VBA代碼

這個過程主要是編寫控制Excel工作表和PPT幻燈片中文本框的VBA代碼。

一提到編寫代碼,你可能就有些犯暈了。其實,程序代碼也沒那麼神秘,在這裡你可先將我的代碼輸入或複製到你的文件中,然後看看我給你的解釋,一切就簡單多了!

首先,我們選擇「工具→宏→Visual Basic編輯器」菜單,這時就會彈出Microsoft Visual Basic程序窗口,也就是VBA的編輯器。選擇「插入→模塊」菜單,這時在右側可以看到空白的代碼編輯區域,我們可以嘗試著輸入圖中代碼(圖3)。

看著這些代碼,你有些摸不著頭腦了吧!沒關係,你看看我給你解釋解釋,你就豁然開朗了。

在上述代碼中,首先用Public定義了xlApp、xlBook、xlSheet、i這4個變量,前3個是用來控制Excel工作表的,i是用來表示當前Excel工作表中的行數的。

然後,用了5個「Sub…End Sub」定義了5個事件過程,VBA中的事件都是放在Sub和End Sub之間的,每個過程都有一個相應的名字,如打開題庫()、下一題()等等。

現在我們來說明一下「打開題庫()」這個過程:

Set xlApp = CreateObject("Excel.Application")是用來建立一個Excel控制項;

xlApp.Visible = False表示這個控制項不可見,即隱藏Excel,不讓它顯示在當前窗口;

Set xlBook = xlApp.Workbooks.Open(CurDir() + "\book1.xls")表示讓Excel打開名字為book1.xls的文件,CurDir()表示當前目錄。

Set xlSheet = xlBook.Worksheets(1)表示把控制工作簿中的第1個工作表即Sheet1的權限賦給xlSheet。

ActivePresentation表示當前激活的演示文稿。

.Slides(1)表示演示文稿中的第1張幻燈片,.Shapes(1)表示幻燈片中的第1個文本框。

.TextFrame.TextRange.Text則表示文本框中的文本。

我們把它們連接起來即ActivePresentation.Slides(1).Shapes(1).TextFrame.TextRange.Text表示當前演示文稿中第1張幻燈片中第1個文本框的內容。

xlSheet.Range("a" & i)表示Sheet1中單元格的值,現在i=3,就獲取了A3單元格的值。

Replace函數的作用是替換,Chr(10)代表換行符,Chr(13)代表回車符,Replace(xlSheet.Range("b" & i), Chr(10), Chr(13))就表示把B3單元格中的換行符替換成回車符。

「&」這個符號起到連接的作用,可用來強制連接不同類型的值。

而整個語句ActivePresentation.Slides(1).Shapes(1).TextFrame.TextRange.Text = xlSheet.Range("a" & i) & "、" & Replace(xlSheet.Range("b" & i), Chr(10), Chr(13))表示將工作表Sheet1中單元格A3的值加上「、」再加B3中將換行符替換成回車符後的值一起賦給幻燈片中的第一個文本框。

在「下一題()」這個過程中,i=i+1表示將工作表中當前行下移一行,即現在是第3行,i+1後就可以取第4行的值了。這個過程應用了IF語句進行條件判斷,判斷是不是已到題庫尾,如果xlSheet.Range("a" & i) 的值不是空,就取相應的值賦給題目文本框;否則,用msgbox()函數進行消息的提示。同時為了不提示顯示正確答案,ActivePresentation.Slides(1).Shapes(2).TextFrame.TextRange.Text = " "表示讓幻燈片中的第二個文本框即正確答案文本框顯示為空格。

解釋了這麼多,這下你明白些了吧?那麼其他的過程和它的意思都是大同小異的,你理解理解就明白了。

為按鈕添加事件

這個過程主要是給各個按鈕添加相應的事件,即過程。

比如我們給「正確答案」這個按鈕添加事件,我們可以右擊它,選擇「動作設置」菜單,在彈出的「動作設置」窗口中選擇「運行宏」,單擊其右側箭頭選擇相應的過程,最後點擊「確定」即可。其他按鈕事件的添加和它的道理一樣的(圖4)。

激活VBA代碼

要想使這些事件即VBA代碼起作用,我們需要調整宏的安全性。選擇「工具→宏→安全性」,把宏的安全性設置為「低」,這樣你才能順利的運行VBA代碼(圖5)。

效果演示

以上的工作完成之後,我們就可以放映幻燈片了。

在使用時,我們先點擊「打開題庫」按鈕,這時就會呈現出題庫中的第1題,只有點擊「正確答案」按鈕時才會顯示相應題目的正確答案;如果點擊「下一題」按鈕,題目就會進行切換,而下一題的正確答案也不會顯示。

如果你覺得題目或是正確答案的字體、字號、顏色等不是太滿意,你只需要設置相應的文本框格式就行了。

看看,這個方法是不是特別爽呀!使用這個方法,你有多少題都沒關係的,還不趕快試試(圖6)!

*******************代碼*************

Public xlApp, xlBook, xlSheet

Public i As Integer

Sub 打開題庫()

Set xlApp = CreateObject("Excel.Application")

xlApp.Visible = False

Set xlBook = xlApp.Workbooks.Open(CurDir() + "\book1.xls")

Set xlSheet = xlBook.Worksheets(1)

i = 3

ActivePresentation.Slides(1).Shapes(1).TextFrame.TextRange.Text = xlSheet.Range("a" & i) & "、" & Replace(xlSheet.Range("b" & i), Chr(10), Chr(13))

End Sub

Sub 下一題()

i = i + 1

If xlSheet.Range("a" & i) <> "" Then

ActivePresentation.Slides(1).Shapes(2).TextFrame.TextRange.Text = " "

ActivePresentation.Slides(1).Shapes(1).TextFrame.TextRange.Text = xlSheet.Range("a" & i) & "、" & Replace(xlSheet.Range("b" & i), Chr(10), Chr(13))

Else

MsgBox ("已到最後一題了!")

End If

End Sub

Sub 上一題()

i = i - 1

If xlSheet.Range("a" & i) <> "" Or xlSheet.Range("a" & i) <> "序號" Then

ActivePresentation.Slides(1).Shapes(2).TextFrame.TextRange.Text = " "

ActivePresentation.Slides(1).Shapes(1).TextFrame.TextRange.Text = xlSheet.Range("a" & i) & "、" & Replace(xlSheet.Range("b" & i), Chr(10), Chr(13))

Else

MsgBox ("已是第一題了!")

End If

End Sub

Sub 正確答案()

ActivePresentation.Slides(1).Shapes(2).TextFrame.TextRange.Text = xlSheet.Range("c" & i)

End Sub

Sub 關閉題庫()

xlBook.Close (False)

xlApp.Quit

Set xlApp = Nothing

End Sub

 

相關焦點

  • 「Python替代Excel Vba」系列(終):vba中調用Python
    本文主要效果如下圖:處理數據的過程在 Python 中進行。輸入條件,輸出結果的過程在 Vba 進行。可以隨意修改匯總方式(求和、平均等)與匯總欄位。然後再定義一個做匯總的方法。如下圖:由於 DataFrame 幾乎所有的方法都可以傳入字符串表示,因此非常方便把這些匯總條件通過外部傳入。
  • 在Excel中執行我們的Access,你或許可以使用VBA來完成自動化
    我們通過VBA可以讓他們自動化Excel和其他的程序之間進行數據處理或者交換工作,加快我們的工作效率,減少時間的浪費。我們如果想要從Excel訪問其他的Office程序的話,那麼需要了解一下,綁定這個概念。為了可以順暢的訪問其他的Office程序,我們需要將Excel和另外的程序綁定起來,比如我們的字典的綁定,分為早期綁定和後期綁定。
  • ppt幻燈片封面怎麼做? ppt製作封面圖片教程
    ppt幻燈片封面怎麼做? ppt製作封面圖片教程時間:2017-07-16 15:03   來源:三聯   責任編輯:沫朵 川北在線核心提示:原標題:ppt幻燈片封面怎麼做? ppt製作封面圖片教程 ppt幻燈片封面怎麼做?本文介紹了ppt製作封面圖片演示的方法,一起跟著小編來看看吧!
  • excel VBA是什麼?VBA編程入門教程
    本篇將介紹excel vba是什麼?vba編程入門教程,有興趣的朋友可以了解一下!一、excel vba是什麼?VBA的英文全稱是Visual Basic for Applications,是一門標準的宏語言。VBA語言不能單獨運行,只能被office軟體(如:Word、Excel等)所調用。
  • Excel VBA 不可一世的宏中,基本數據構成你知道多少
    在上一期我們說到VBA的基本組織結構,那麼我們今天就來說說組成這些VBA代碼的磚瓦是由哪幾部分構成的,也就是說vba的處理數據的磚瓦。常量這值在我們的以後編寫中,也需要用到,比如我們需要引用某一天的匯率或者稅率,這個時候我們可以這些寫代碼,如下圖:以上就是我們定義了三個常量,就是把數字賦值給到某一個字符串,這樣做的好處就是,我們在用的時候,可以多次引用這個字符串即可,當我們需要修改的時候,只需要修改一次即可,是不是感覺很方面?
  • EXCEL的數據和圖表如何與ppt,Word關聯,看完你就會了
    在工作中我們經常要把excel中的數據放到ppt中去演示或作為word報告的一部分,在這個過程中excel的數據往往會做多次修改,如果每修改一次都要打開ppt或word做修改,非常的繁瑣,而且最關鍵的是一旦忘記修改,你做的ppt演講或發出去的word報告就是錯的,那後果就是不堪設想。
  • Excel表格函數--調取數據用法
    Vlookup數據調取公式應用製作表格過程中往往遇到之前數據引用問題,所以我們在表格中如果去查找以往的數據再進行手錄的話還是需要一定的操作時間的,萬一遇到需要採用的數據量較大的情況下我們按照一個一個的抄錄方式會浪費很大的工作時間,所以我們應該保持對
  • 「Python替代Excel Vba」系列(二):pandas分組統計與操作Excel
    本文只說重點細節,至於如何從 excel 中讀取數據,上一節已經有詳細介紹。怎麼可以用目前的結果數據關聯到原數據上。我們注意看得到的結果中的index。就是最左邊的那一列數字每個 DataFrame 都會有這樣的 index,不管你怎麼操作他,這個 index 都不會改變。因此我們可以利用 index 定位 excel 的單元格,然後通過 xlwings 標記底色就好了。
  • ppt教學(14):怎樣設置幻燈片的切換動畫,讓幻燈片更美
    ppt的美觀不僅在於內容和畫面的設計,幻燈片好的切換模式切換動畫也能讓幻燈片更美、更優雅,更震撼。幻燈片切換不僅可以加入美麗的動畫,也可以加入震撼的音響效果。我們一起來看看幻燈片切換動畫的設置方法和怎樣設置才能更美觀吧。
  • PPT如何使用演示者視圖功能,播放幻燈片時看文案不展示在幻燈片中?
    PPT的演示者視圖是在播放幻燈片的時候,可以在後臺進行操作,但是觀眾只能看到整體的ppt播放,下面來看看如何使用吧。1.我們點擊——幻燈片放映的按鈕。4.在下面可以看到當前播放幻燈片的數量。在ppt中的演示者視圖中根據情況可以添加備註,這樣的好處就是我們在播放ppt的時候,可以看到我們需要講解的內容,但是觀眾只能看到簡潔畫面,下面來看看如何操作。
  • excel中2000行數據以行排序,你需要多長時間
    vba代碼,錄製宏就是將我們的操作記錄下來,將其編譯為vba代碼,當我下次需要重複操作的時候只需要運行宏excel就會幫自動幫我們搞定。之前需要很久才能完成的工作,使用錄製宏之後可能幾秒就搞定了很多粉絲表示自己的excel找不到錄製宏,只需要在Excel設置中調出開發工具即可,過程如下動圖,我們在主選項卡中勾選開發工具點擊確定即可二、如何按照行來排序排序一般情況下我們都是默認以列來排序的,
  • ppt幻燈片實用教程,ppt課堂作業,第三課《PowerPoint課程》
    ,製作的演示文稿可以通過計算機屏幕或者投影機播放。演示文稿與幻燈片:利用PowerPoint做出來的文件就叫演示文稿,它是一個文件。而演示文稿中的每一頁就叫幻燈片,每張幻燈片都是演示文稿中既相互獨立又相互聯繫的內容。啟動:雙擊桌面上的快捷方式圖標;退出:單擊標題欄右上角的「關閉」按鈕。二、窗口界面的介紹
  • 學遍Excel+Word+PPT全部應用,office三合一速成班(1期)招生開始了
    有綠卡的同學可免費報名,綠卡會員一年內還可以免費學習所有幾十個班級在線課程(excel速成班+excel中高級班+函數精講班+數據透視表班+VBA宏入門班+VBA高級編程班+數據分析班+PPT速成班+excel與財務、HR應用班具體課程表聯繫客服特特)最新:除節假日前後,周一至周五每晚8~10點也有課,綠卡可以免費聽,一年超200個晚上。
  • PPT如何使用演示者視圖功能,播放PPT看文案不展示在幻燈片中?
    PPT的演示者視圖是在播放幻燈片的時候,可以在後臺進行操作,但是觀眾只能看到整體的ppt播放,下面來看看如何使用吧。1.我們點擊——幻燈片放映的按鈕。2.然後滑鼠右鍵點擊——顯示演示者視圖。4.在下面可以看到當前播放幻燈片的數量。5.然後在右側可以給幻燈片添加備註,但是此時觀眾只能看到播放的畫面,而看不到我們後臺的操作。二、如何在PPT的演示者視圖中添加備註?
  • Excel vba 利用定義名稱實現用戶登錄功能
    文/江覓易見在vba 中實現用戶登錄,並對登錄用戶進行身份識別,然後對用戶進行分組管理,此類功能值得進一步思考。這裡介紹一種方法,利用Excel中的名稱管理來進行身份識別,起到用戶登錄次數以及增減用戶的功能。
  • 做了五年的幻燈片,我總結了職場PPT製作的17個套路
    很多小夥伴拿到需求後,想也不想就開始製作幻燈片。文案、邏輯框架如何制定,明確是用來讀的ppt還是用來演示的ppt!圖表是ppt&Keynote裡面出現最多的地方,那麼對於職場幻燈片,圖表要注意什麼呢?1.第一步:突出數據表現的重點,要進行主觀的強化。如大小的強化,顏色的強化等。
  • ppt怎麼設置幻燈片的背景一樣?
    ppt怎麼設置幻燈片的背景一樣?怎樣將幻燈片的背景作成一樣的,我們首先要選擇一張圖片,然後下面我就告訴您怎麼將幻燈片的背景作成一樣的,需要的朋友可以參考下老師講課、培訓學生,要製作幻燈片,怎樣將幻燈片的背景作成一樣的,我們首先要選擇一張圖片,然後下面我就告訴您怎麼將幻燈片的背景作成一樣的。
  • PPT中的補間動畫,你了解多少?它的強大不可想像!
    補間動畫是ppt插件islide中的一個功能。經常做ppt的人基本都裝有ispide插件,這絕對是一款神器,今天就只介紹其中的一個功能。有需要的可以去官網下載。下面我們來看看補間動畫在ppt中都能做什麼吧。-- 線條之間的補間 --還記得這兩個曲線做出來的ppt頁面麼?在上期曲線工具文章中已經做了詳細介紹。感興趣的可以去看看【太驚豔了,ppt中的曲線工具,竟然可以做海報設計了!】在這裡,再講一遍吧。
  • vba第二十一課
    vba第二十一課工作薄運用實例在一些跨工作薄的數據調取數據或多個工作薄中循環調取數據,那麼我們就要熟練掌握工作薄的代碼的書寫,只要運行程序就可以獲得數據,下面看一段代碼例:Dim wk As Workbook
  • excel中自帶的這些可視化插件,製作動態圖表不發愁
    在我們日常工作中,很多人都會面對一堆數據,卻不知道如何更直觀地展示它們,其實excel中有很多圖表插件幫助我們美化,讓你不再是單純給老闆、客戶展示乾癟的數據~一、people gragh人物圖像,讓圖表更加簡單清晰