็†ฑ้–€ๅˆ†้กž
 ่ผ‰ๅ…ฅไธญ…
็›ฎ้Œ„

๐Ÿ“„ Word ๆ–‡ไปถๅœ–็‰‡็ฎก็†ๆŠ€ๅทง:ไธ€้ต้ธๅ–、ๅˆช้™ค่ˆ‡ๆ‰นๆฌกๆ•ดๅˆ

    ๐Ÿ“„ Word ๅœ–็‰‡็ฎก็†ๅ…จๆ”ป็•ฅ:ไธ€้ต้ธๅ–、ๅˆช้™ค่ˆ‡ๆ‰นๆฌกๅŒฏๅ‡บๆ•™ๅญธ

    ็•ถ Word ๆ–‡ไปถไธญๆœ‰ๅคง้‡ๅœ–็‰‡ๆ™‚,้€ไธ€ๅˆช้™คๆˆ–ๆ•ด็†ๆœƒๆตช่ฒป่จฑๅคšๆ™‚้–“。 ๆœฌๆ–‡ๅฐ‡ไป‹็ดนไธ‰็จฎไธๅŒๅฑคๆฌก็š„ๆ–นๆณ•,่ฎ“ไฝ ่ƒฝ่ผ•้ฌ†้ธๅ–、ๅˆช้™คๆˆ–ๅŒฏๅ‡บๆ‰€ๆœ‰ๅœ–็‰‡,ไธฆ้€ฒไธ€ๆญฅๅฏฆ็พ่‡ชๅ‹•ๅŒ–็ฎก็†。


    1️⃣ ๆ‰‹ๅ‹•ๆ–นๅผ:้ธๅ–่ˆ‡ๅˆช้™คๅœ–็‰‡

    • ๆ–นๆณ•ไธ€:้ปž้ธไปปไธ€ๅœ–็‰‡ๅพŒ,ๆŒ‰ Ctrl + A ๅฏๅŒๆ™‚้ธๅ–ๆ‰€ๆœ‰ๅ…งๅฎน(ๅซๅœ–็‰‡่ˆ‡ๆ–‡ๅญ—)。
    • ๆ–นๆณ•ไบŒ:ไฝฟ็”จ「ๅฐ‹ๆ‰พ่ˆ‡ๅ–ไปฃ」ๅŠŸ่ƒฝ:
      1. ๆŒ‰ Ctrl + H ้–‹ๅ•Ÿ「ๅฐ‹ๆ‰พ่ˆ‡ๅ–ไปฃ」。
      2. ้ปž้ธ「ๆ›ดๅคš」 → 「็‰นๆฎŠๆ ผๅผ」 → 「ๅœ–ๅฝข」。
      3. ๅœจ「ๅฐ‹ๆ‰พๅ…งๅฎน」ไธญๅ‡บ็พ ^g,ๅณๅฏ้€ไธ€ๅฐ‹ๆ‰พๅœ–็‰‡ๆ‰€ๅœจ。

    ้€™ไบ›ๆ–นๅผ้ฉๅˆๅฐ‘้‡ๅœ–็‰‡็š„ๆƒ…ๅขƒ,ไฝ†่‹ฅ้œ€ๆ‰นๆฌกๆ“ไฝœ,ๅปบ่ญฐไฝฟ็”จ VBA ๅทจ้›†。


    2️⃣ VBA ๅทจ้›†ๆ–นๅผ:่‡ชๅ‹•้ธๅ–่ˆ‡ๅˆช้™คๆ‰€ๆœ‰ๅœ–็‰‡

    ไปฅไธ‹ๅทจ้›†ๅฏ่‡ชๅ‹•้ธๅ–ๆ–‡ไปถไธญๆ‰€ๆœ‰ๅœ–็‰‡(ๅซๅตŒๅ…ฅ่ˆ‡ๆตฎๅ‹•),ไนŸ่ƒฝๆ‰นๆฌกๅˆช้™ค。

    Sub SelectAllPictures()
        Dim shp As Shape
        Dim inShp As InlineShape
        Selection.HomeKey wdStory
        ' ้ธๅ–ๆ‰€ๆœ‰ๅตŒๅ…ฅๅœ–็‰‡
        For Each inShp In ActiveDocument.InlineShapes
            inShp.Select
            Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
        Next inShp
        ' ้ธๅ–ๆ‰€ๆœ‰ๆตฎๅ‹•ๅœ–็‰‡
        For Each shp In ActiveDocument.Shapes
            shp.Select Replace:=False
        Next shp
        MsgBox "✅ ๆ‰€ๆœ‰ๅœ–็‰‡ๅทฒ่ขซ้ธๅ–ๅฎŒๆˆ。"
    End Sub
    

    ๐Ÿ—‘️ ๆ‰นๆฌกๅˆช้™คๆ‰€ๆœ‰ๅœ–็‰‡

    Sub DeleteAllPictures()
        Dim shp As Shape
        Dim inShp As InlineShape
        For Each inShp In ActiveDocument.InlineShapes
            inShp.Delete
        Next inShp
        For Each shp In ActiveDocument.Shapes
            shp.Delete
        Next shp
        MsgBox "๐Ÿ—‘️ ๆ‰€ๆœ‰ๅœ–็‰‡ๅทฒๅˆช้™คๅฎŒๆˆ!"
    End Sub
    

    ๐Ÿ“ ๅŒฏๅ‡บๆ‰€ๆœ‰ๅœ–็‰‡

    Sub ExportAllImages()
        Dim shp As InlineShape, i As Long
        Dim path As String
        path = Environ("USERPROFILE") & "\Desktop\WordImages\"
        On Error Resume Next: MkDir path: On Error GoTo 0
        For Each shp In ActiveDocument.InlineShapes
            shp.Select
            Selection.CopyAsPicture
            Selection.Paste
            Selection.InlineShapes(1).Select
            Selection.ShapeRange.SaveAsPicture path & "Image_" & i & ".png"
            Selection.Delete
            i = i + 1
        Next shp
        MsgBox "๐Ÿ“ฆ ๆ‰€ๆœ‰ๅœ–็‰‡ๅทฒๅŒฏๅ‡บ่‡ณ:" & path
    End Sub
    

    ๐Ÿ’ก ๅŸท่กŒๆ–นๅผ:

    1. ๆŒ‰ Alt + F11 ้–‹ๅ•Ÿ VBA ็ทจ่ผฏๅ™จ。
    2. ้ธๆ“‡「ๆ’ๅ…ฅ → ๆจก็ต„」,่ฒผไธŠไธŠ่ฟฐ็จ‹ๅผ็ขผ。
    3. ๅ›žๅˆฐ Word,ๆŒ‰ Alt + F8 ๅŸท่กŒๅทจ้›†。

    3️⃣ ้€ฒ้šŽๆ•ดๅˆๆ‡‰็”จ

    • ๅฏๅœจๅŒฏๅ‡บๅพŒ,ไฝฟ็”จ PowerShell ๆˆ– Python ่‡ชๅ‹•ๅฃ“็ธฎๅœ–็‰‡。
    • ๅฃ“็ธฎๅพŒๅ†ๅˆฉ็”จ Selection.InlineShapes.AddPicture ้‡ๆ–ฐๆ’ๅ…ฅๅœ–็‰‡。
    Selection.InlineShapes.AddPicture _
    FileName:="C:\Images\img1.png", _
    LinkToFile:=False, SaveWithDocument:=True
    
    ่‹ฅๆญ้…ๅฃ“็ธฎๅทฅๅ…ท(ๅฆ‚ TinyPNG API ๆˆ– Python Pillow),ๅฏๅฐ‡ๅคงๅž‹ๅ ฑๅ‘Šๆช”ๆกˆ็ธฎๅฐ่‡ณๅŽŸๆœฌ็š„ 30%。

    ๐Ÿงญ ่กŒๅ‹•ๆธ…ๅ–ฎ

    ✅ ้–‹ๅ•Ÿ Word ๆ–‡ไปถไธฆๆŒ‰ Alt + F11
    ✅ ่ฒผไธŠ「SelectAllPictures」ๅทจ้›†
    ✅ ๅŸท่กŒไธฆ็ขบ่ชๆ‰€ๆœ‰ๅœ–็‰‡่ขซ้ธๅ–
    ✅ ไฝฟ็”จ「DeleteAllPictures」ๆธ…้™คๅœ–็‰‡
    ✅ ่‹ฅ้œ€ๅ‚™ไปฝ,ๅŸท่กŒ「ExportAllImages」ๅŒฏๅ‡บ
      

    ๐Ÿ“˜ ็ต่ชž

    ้€้Ž VBA ๅทจ้›†ๅณๅฏๅœจๅนพ็ง’ๅ…งๅฎŒๆˆ Word ๆ–‡ไปถ็š„ๅœ–็‰‡้ธๅ–、ๅˆช้™ค่ˆ‡ๅŒฏๅ‡บ,ๅคงๅน…ๆธ›ๅฐ‘ไบบๅทฅๆ“ไฝœๆ™‚้–“。 ่‹ฅๆญ้…่‡ชๅ‹•ๅฃ“็ธฎ่ˆ‡ๅ†ๆ’ๅ…ฅๆต็จ‹,ๆ›ด่ƒฝๅฝขๆˆๅฎŒๆ•ด็š„ๆ–‡ไปถๅ„ชๅŒ–ๆฉŸๅˆถ。


    ๐Ÿ”— ๅปถไผธ้–ฑ่ฎ€

    — WWFandy・Office ่‡ชๅ‹•ๅŒ–็ญ†่จ˜

    ๐Ÿ”— ๅˆ†ไบซ้€™็ฏ‡ LINE Facebook X

    ๆฒ’ๆœ‰็•™่จ€:

    ๅผต่ฒผ็•™่จ€

    ๅญ—็ดš