我需要獲取表格的選定單元格。在表格powerpoint 2007中獲取選定的單元格vb.net
我嘗試下面的代碼
Set oTbl = .ShapeRange(1).Table
For x = 1 To oTbl.Rows.Count
For y = 1 To oTbl.Columns.Count
If oTbl.Cell(x, y).Selected Then
With oTbl.Cell(x, y).Shape
.Fill.ForeColor.RGB = RGB(255, 0, 0)
.Fill.Visible = True
End With
End If
Next
Next
這工作得很好,如果您正在使用VBA,但使用vb.net使用下面的代碼
Dim oShape As PowerPoint.Shape = Nothing
Dim oTable As PowerPoint.Table
With Globals.ThisAddIn.Application.ActiveWindow.Selection
For Each oShape In .ShapeRange
oShape.Select()
Exit For
Next
oTable = oShape.Table
Dim i As Integer = 0
Dim j As Integer = 0
For i = 1 To oTable.Rows.Count
For j = 1 To oTable.Columns.Count
If oTable.Cell(i, j).Selected = True Then
With oTable.Cell(i, j).Shape
.Fill.ForeColor.RGB = RGB(255, 0, 0)
.Fill.Visible = Microsoft.Office.Core.MsoTriState.msoTrue
End With
End If
Next
Next
End With
IM創建VSTO和它的顏色完全表
請幫助
感謝
樂華中號
您可能想描述您遇到的問題。你不會給我們任何錯誤的提示。但對於初學者來說,看起來你的邏輯錯誤。您的For/Next循環選擇幻燈片上的第一個形狀並退出。它可能會或可能不會保留對所選形狀的活動引用,並且如果當前所選形狀不是表格,則代碼將在oTable = oShape.Table –
處失敗。您好史提夫,我會選擇一張桌子,可以嗎?請將Dim i和j中的代碼作爲整數。請注意,此代碼僅用於從按鈕運行演示。稍後將處理它,如果它的表或不。邏輯是好的,運行良好,只需使用vba中的初始代碼作爲powerpoint,然後使用vb.net vsto中的第二個代碼作爲powerpoint,您將發現區別 – user1753985
您的第一塊代碼'For Each oShape In .ShapeRange。 ..'改變選擇。您正在選擇整個形狀。之前選擇什麼並不重要,因爲您在代碼中更改了選擇,所以當然它會選擇整個表格。 – BrainSlugs83