適用於小型團隊的簡易雙週工資追蹤 Excel 範本:新手友善設定
為小型團隊在 Excel 中建立一個簡單的雙週工資追蹤表,包含清晰的表格、公式、檢查和實用的限額,以確保工資核對的安全性。
幾天前,我想自動化創建一些 PowerPoint 幻燈片的相當平凡的任務。自動化 PowerPoint 時,您通常使用幻燈片和形狀集合。幻燈片是不言自明的,形狀幾乎是所有其他東西,包括文本框、操作按鈕、媒體對象、標籤、圖片、標註、流程圖等等。雖然我將使用 PowerPoint 展示這些技術,但其中一些語法實際上非常適用於 Microsoft Word 和 Excel。
回顧一下,在開始在 PowerPoint 中進行 VBA 宏開發之前,您需要啟用開發選項卡。
首先,讓我們開始使用一些幻燈片自動創建演示文稿,如本教程所示:在 VBA 中創建演示文稿。
現在我們可以開始使用 Shapes 了。首先,讓我們繼續按 Alt+F11 打開 VBA 編輯器。如果您按照上一個教程進行操作,您的模塊列表中應該有模塊 1(如下所示)
使用 VBA 處理形狀
使用 VBA 添加文本框
我們將首先在演示文稿的第一張幻燈片中添加一個垂直文本框。將以下代碼添加到 Module1,然後繼續並點擊保存按鈕 (Ctrl+s) 並運行您的宏(點擊 F5 或點擊運行子/用戶表單)。
Sub CreateTextBox()
Set MySlide = ActivePresentation.Slides(2)
With MySlide.Shapes
.AddTextbox(Orientation:=msoTextOrientationVertical, _
Left:=90, Top:=200, Width:=80, _
Height:=200).TextFrame.TextRange.Text _
= ("This is my vertical text box")
End With
End Sub
請注意,您可以使用 VBA 輕鬆調整文本框的尺寸。在這種情況下,我們將在第二張幻燈片中調整第一個形狀的大小,根據需要隨意修改。
Sub ResizeText()
Set MyShape = ActivePresentation.Slides(2).Shapes(1)
'Add your required dimensions as needed below
With MyShape
.Width = 200
.Height = 35
End With
End Sub
使用 VBA 的文本效果
現在讓我們假設我們想要為演示文稿中的所有幻燈片添加一個文本框,這一次更具視覺吸引力。為此,我們將使用 VBA 創建自定義文本效果,我們可以將其嵌入到演示文稿中的一張或多張幻燈片中。我們將首先循環瀏覽演示幻燈片,然後根據需要添加文本效果。
Sub SetEffects()
Dim i As Integer
For i = 1 To ActivePresentation.Slides.Count
ActivePresentation.Slides(i) _
.Shapes.AddTextEffect msoTextEffect12, "Draft for Review", _
"Segoe UI", 32, msoTrue, msoTrue, 650, 50
Next
End Sub
這是結果;-):

請注意,您不妨使用簡單的水印來完成此特定結果。
帶有 VBA 的 PowerPoint 標註
我們的下一個示例將在您的演示文稿中添加標註。在此示例中,我們將在第二張幻燈片中添加標註。
Sub CreateCallout()
ActivePresentation.Slides(2).Shapes.AddCallout(Type:=msoCalloutTwo, Left:=200, Top:=50, _ Width:=300, Height:=100).TextFrame.TextRange.Text = "My Callout"
End Sub形狀的許多格式化屬性不是由直接應用於 Shape 或 ShapeRange 物件的屬性所設定的。相反,相關的形狀屬性會分組在輔助物件下,例如 FillFormat 物件(其中包含與形狀填滿相關的所有屬性)或 LinkFormat 物件(其中包含連結的 OLE 物件特有的所有屬性)。若要設定形狀的屬性,必須先傳回表示相關形狀屬性集的對象,然後設定該返回對象的屬性。例如,使用 Fill 屬性傳回 FillFormat 對象,然後設定 FillFormat物件 的 ForeColor屬性 來設定指定形狀的填滿前景色,如下例所示。
VB
Set myDocument = ActivePresentation.Slides(1)
myDocument.Shapes(1).Fill.ForeColor.RGB = RGB(255, 0, 0)
在使用者介面中,您可以選擇多個形狀來執行一些操作;例如,您可以選擇多個形狀並一次設定它們的所有單獨填充。還有一些其他操作只能在選擇單一形狀的情況下執行;例如,如果選擇了單一形狀,則只能編輯形狀中的文字。
在 Visual Basic 中,有兩種方法可以將屬性和方法套用到一組形狀。這兩種方式可讓您在一系列形狀上執行您可以在單一形狀上執行的任何操作,無論您是否可以在使用者介面中執行相同的操作。
如果該操作適用於使用者介面中的多個選取形狀,則可以在 Visual Basic 中執行相同的操作,方法是建構包含要使用的 形狀的 ShapeRange集合,並將適當的屬性和方法直接應用於ShapeRange 集合。
如果該操作不適用於使用者介面中的多個選取形狀,您仍然可以在 Visual Basic 中執行該操作,方法是循環遍歷 Shapes集合或包含要 使用 的 形狀的ShapeRange集合,並套用適當的屬性以及 集合中各個 Shape物件的方法。
如果應用於某些類型的形狀,則應用於Shape 物件和 ShapeRange集合的許多屬性和方法 都會失敗。例如, 如果將TextFrame 屬性套用至不能包含文字的形狀,則該屬性會失敗。如果您不確定 ShapeRange 集合中的每個形狀都可以套用特定的屬性或方法,請不要將此屬性或方法套用到 ShapeRange 集合。如果要將這些屬性或方法之一應用於形狀集合,則必須循環遍歷該集合並測試每個單獨的形狀,以確保它是適當的形狀類型,然後再將屬性或方法應用於該集合。
如果您可以同時對使用者介面中的多個選定形狀執行操作,則可以透過建構 ShapeRange 集合,然後對其套用適當的屬性或方法來執行等效的程式設計操作。以下範例建構一個形狀範圍,其中包含名為「Big Star」和「Little Star」的自選圖形,並對它們應用漸變填充。myDocument
VB
Set myDocument = ActivePresentation.Slides(1)
Set myRange = myDocument.Shapes _
.Range(Array("Big Star", "Little Star"))
myRange.Fill.PresetGradient msoGradientHorizontal, _
1, msoGradientBrass
以下是有關屬性和方法應用於 ShapeRange 集合時的行為方式的一般準則。
將方法應用於集合相當於將該方法應用於該集合中的每個單獨的 Shape 物件。
設定集合的屬性值相當於設定該範圍內每個單獨形狀的屬性值。
如果集合中的所有形狀都具有相同的屬性值,則傳回常數的集合的屬性將傳回集合中單一形狀的屬性值。如果集合中並非所有形狀都具有相同的屬性值,則它會傳回「混合」常數。
如果集合中的所有形狀都具有相同的屬性值,則傳回簡單資料類型(例如 Long、 Single或 String)的集合屬性將傳回單一形狀的屬性值。
只有當集合中只有一個形狀時,才能傳回或設定某些屬性的值。如果集合中存在多個形狀,則會發生執行階段錯誤。當使用者介面中的等效操作只能使用單一形狀(例如編輯形狀中的文字或編輯自由形狀的點等操作)時,返回或設定屬性通常就是這種情況。
當您設定在 ShapeRange 集合的輔助物件(例如 FillFormat 物件)下分組的形狀的屬性時,前面的準則也適用。如果輔助物件表示可以對使用者介面中的多個選取物件執行的操作,您將能夠從 ShapeRange 集合中傳回該物件並設定其屬性。例如,您可以使用 Fill 屬性傳回 FillFormat對象,該物件表示ShapeRange集合 中所有形狀的填滿 。設定此FillFormat物件的屬性 將為ShapeRange集合 中的所有單一形狀設定相同的屬性 。
即使您無法透過選擇多個形狀然後使用命令來同時對使用者介面中的多個形狀執行操作,您也可以透過循環遍歷 Shapes 集合或包含您想要的 形狀 的 ShapeRange集合以程式設計方式執行等效操作。想要使用並將適當的屬性和方法應用於 集合中的各個Shape物件。以下範例循環遍歷所有形狀,並為每個自選圖形形狀添加文字。並在每個自選圖形上新增文字。myDocument
VB
Set myDocument = ActivePresentation.Slides(1)
For Each sh In myDocument.Shapes
If sh.Type = msoAutoShape Then
sh.TextFrame.TextRange.InsertAfter " (version 1)"
End If
Next
以下範例建構包含 活動視窗中目前選定的所有形狀的ShapeRange集合,並設定集合中可以包含文字的每個形狀中的文字。
VB
For Each sh in ActiveWindow.Selection.ShapeRange
If sh.HasTextFrame Then
sh.TextFrame.TextRange = "Initially selected"
End If
Next
使用 「對齊」 和 「分佈」 方法可以相對於彼此或相對於包含它們的文件來定位一組形狀。使用 “分組” 方法或 “重新分組” 方法從一組形狀形成單一分組形狀。
為小型團隊在 Excel 中建立一個簡單的雙週工資追蹤表,包含清晰的表格、公式、檢查和實用的限額,以確保工資核對的安全性。
了解如何將 Salesforce 聯絡人匯出到乾淨的 Excel 檔案中,保留 ID 和文字字段,安全地刪除重複項,並避免常見的 CSV 錯誤。
使用 Excel 建立可列印的建築工程估算表,其中包含實用的成本類別、公式、標記欄位、列印設定和承包商可直接使用的清單。
使用此可列印的每週清潔排程來管理 Airbnb 房源,協助安排退房清潔、例行清潔、補貨、檢查,以及 Word 轉 PDF 的交接流程。
比較 HubSpot 免費 CRM 與 Zoho CRM 在獨立房地產經紀人應用上的差異,涵蓋聯絡人、銷售管道、自動化、自訂功能、排程、限制及升級時機。
透過檢查音訊控制項、Windows 麥克風權限、作用中的輸入裝置、系統音訊預期以及 Office 更新,修復 PowerPoint 螢幕錄製無聲的問題。
使用 Excel 建立免費的出租物業收入與費用追蹤器,包含物業層級記錄、Schedule E 友善分類、現金流量追蹤、收據管理,以及 2026 年里程數更新。
修復 Outlook 收信正常但寄信失敗的問題。透過隔離網頁郵件、待發信匣、SMTP、帳戶限制及設定檔問題,無需盲目猜測。
將 PDF 轉換為可編輯的 Word 文件,同時盡可能保留原有格式。了解最佳方法、品質檢查、OCR 選項,以及何時應切換轉換方式。
防止 Excel 將 1-2、3/4、JAN1 和產品代碼等條目轉換為日期。了解何時使用文字格式、撇號、自動資料轉換設定,或受控的 CSV 匯入。