Page 1 of 1

เพิ่มข้อความ + เพิ่มรูปภาพ ใน SmartArt

Posted: Mon Jul 08, 2024 4:07 pm
by Serverchita
สร้าง Smart Art แล้วจะต้องปรับ code อย่างไรให้ข้อความใน A1 และ B1 อยู่ในกลุ่มเดียวกัน ตามภาพตัวอย่างที่ 1 ในไฟล์แนบ ที่มี AXXXX01 และ X0000v1 อยู่กลุ่มเดียวกัน (ถ้าเพิ่ม Code เพิ่มรูปเข้าไปใน SmartArt แต่ละช่องได้ด้วยก็ขอบคุณครับ โดยใช้วิธี ที่อยู่รูปจาก Column C ครับ)

Code: Select all

Sub SmartArtTest()

Dim oSALayout As SmartArtLayout
Set oSALayout = Application.SmartArtLayouts(135) 'Get a reference to the "heirarchy" smartart form.

'Create a smartart shape
Set oShp = ActiveWorkbook.ActiveSheet.Shapes.AddSmartArt(oSALayout)

For i = 1 To 5 'clears all the default excel shapes
oShp.SmartArt.AllNodes(1).Delete
Next

For i = 1 To 5
oShp.SmartArt.AllNodes.Add
oShp.SmartArt.AllNodes(i).TextFrame2.TextRange.Text = Range("A" & i).Value
oShp.SmartArt.AllNodes(i).TextFrame2.TextRange.Text = Range("B" & i).Value
Next
End Sub

Re: เพิ่มข้อความ + เพิ่มรูปภาพ ใน SmartArt

Posted: Sun Jul 14, 2024 8:55 am
by snasui
:D ขออภัยครับ เพิ่งเห็นโพสต์นี้

ช่วยอธิบายเพิ่มเติมว่าพิจารณาอย่างไรว่าเป็นกลุ่มเดียวกัน วาดภาพประกอบเพิ่มเติมมาด้วยจะช่วยให้เข้าใจได้ง่ายขึ้นครับ

Re: เพิ่มข้อความ + เพิ่มรูปภาพ ใน SmartArt

Posted: Wed Jul 17, 2024 4:52 pm
by Serverchita
snasui wrote: Sun Jul 14, 2024 8:55 am :D ขออภัยครับ เพิ่งเห็นโพสต์นี้

ช่วยอธิบายเพิ่มเติมว่าพิจารณาอย่างไรว่าเป็นกลุ่มเดียวกัน วาดภาพประกอบเพิ่มเติมมาด้วยจะช่วยให้เข้าใจได้ง่ายขึ้นครับ
จากภาพตัวอย่างในกรอบสีแดงครับ Row 1 ก็จะเป็นกรอบที่ 1 และ Row 2 ก็จะเป็นกรอบที่ 2 ครับ สร้างไปเรื่อยๆ จนครบ Loop ที่ 22 ครับ
Screenshot 2024-07-17 164930.jpg

Re: เพิ่มข้อความ + เพิ่มรูปภาพ ใน SmartArt

Posted: Wed Jul 17, 2024 6:33 pm
by snasui
:D ตัวอย่างการปรับ Code ครับ

Code: Select all

Sub SmartArtTest()
    Dim rng As Range, r As Range
    Dim oSALayout As SmartArtLayout
    Set oSALayout = Application.SmartArtLayouts(135) 'Get a reference to the "heirarchy" smartart form.
    
    'Create a smartart shape
    With ActiveWorkbook.ActiveSheet
        If .Shapes.Count > 0 Then .Shapes(1).Delete
        Set oShp = .Shapes.AddSmartArt(oSALayout)
        Set rall = .Range("a1", .Range("a" & .Rows.Count).End(xlUp))
    End With
    For i = 1 To oShp.SmartArt.AllNodes.Count - 1 'clears all the default excel shapes
        oShp.SmartArt.AllNodes(1).Delete
    Next
    
'    For i = 1 To 5
    i = 1
    For Each r In rall
        oShp.SmartArt.AllNodes.Add
        oShp.SmartArt.AllNodes(i).TextFrame2.TextRange.Text = Range("A" & i).Value
        oShp.SmartArt.AllNodes(i).TextFrame2.TextRange.Text = Range("B" & i).Value
        i = i + 1
    Next r
    oShp.SmartArt.AllNodes(oShp.SmartArt.AllNodes.Count).Delete
End Sub

Re: เพิ่มข้อความ + เพิ่มรูปภาพ ใน SmartArt

Posted: Fri Jul 19, 2024 11:36 am
by Serverchita
จากที่ลอง Code ดูแล้ว เป็นการปรับให้ Loop เอาค่าให้ได้ 22 row เท่านั้นครับ
แต่ยังไม่ได้ตามตัวอย่างภาพที่ผมตัดให้ครับ ซึ่งจะมีข้อความจาก column A และ B ด้วย

Re: เพิ่มข้อความ + เพิ่มรูปภาพ ใน SmartArt

Posted: Fri Jul 19, 2024 9:28 pm
by snasui
:D ต้องการให้แสดงข้อความจากทั้งสองคอลัมน์สามารถปรับเป็นด้านล่างได้ครับ

Code: Select all

'Other code
    For Each r In rall
        oShp.SmartArt.AllNodes.Add
        oShp.SmartArt.AllNodes(i).TextFrame2.TextRange.Text = Range("B" & i).Value
        oShp.SmartArt.AllNodes(i).TextFrame2.TextRange.Text = oShp.SmartArt.AllNodes(i).TextFrame2.TextRange.Text & _
            vbCrLf & Range("A" & i).Value
        i = i + 1
    Next r
'Other code

Re: เพิ่มข้อความ + เพิ่มรูปภาพ ใน SmartArt

Posted: Wed Jul 31, 2024 7:34 pm
by Serverchita
ใช้ได้แล้วครับ ขอบคุณครับ