如果形状是某些连接器的 EndConnectedShape(连接器是根据 .txt 文件中的某些数据选择的,但数据输入部分工作正常),我需要根据条件更改幻灯片中某些形状的颜色。
尽管它必须简单明了,但我尝试按名称获取形状的部分仍然无法正常工作:
Sub test()
Dim oFSO As FileSystemObject
Set oFSO = New FileSystemObject
Dim oFS As TextStream
Dim i, j As Long
Dim filePath, smth As String
filePath = "C:\MyPath\MyFile.txt"
If oFSO.FileExists(filePath) Then
On Error GoTo Err
Set oFS = oFSO.OpenTextFile(filePath)
For i = 1 To 1
smth = VecNames(j) ' ADDED
wholeLine1 = oFS.ReadLine
VecNames = Split(wholeLine1, ",")
wholeLine2 = oFS.ReadLine
VecSIs = Split(wholeLine2, ",")
For j = 1 To UBound(VecNames)
With ActivePresentation.Slides(i)
For Each oSh In ActivePresentation.Slides(i).Shapes
If oSh.Connector And oSh.Name = smth Then
'Degub.Print oSh.Name
oSh.Line.ForeColor.RGB = RGB(255, 0, 0)
oSh.Line.Weight = VecSIs(j) * 5
strShNm = oSh.ConnectorFormat.EndConnectedShape.Name
' NEXT LINE IS NOT WORKING :
mySh = ActivePresentation.Slides(i).Shapes(strShNm)
' When tried to change the line above to the one below which is commented out, it DOESN'T work either:
' mySh = Selection.ShapeRange(strShNm)
With mySh
mySh.Line.ForeColor.RGB = RGB(255, 0, 0)
End With
ElseIf oSh.Type = msoTextBox Then
If mySh.TextFrame.TextRange.Text = VecNames(j) Then
oSh.TextFrame.TextRange.Font.Color = RGB(255, 0, 0)
End If
End If
Next oSh
End With
Next j
Next i
oFS.Close
Else
MsgBox "The file path is invalid.", vbCritical, vbNullString
Exit Sub
End If
Exit Sub
Err:
MsgBox "Error while reading the file.", vbCritical, vbNullString
oFS.Close
Exit Sub
End Sub
知道我在做什么错吗?谢谢!