ăŻăă㍠ăăăŤăĄăŻăInsight Edgeă§ăăźăżăľă¤ă¨ăłăăŁăšăăăăŚăăĺäšă§ăă AIă§ăŽPowerPointčłćăŽä˝ćăăżăŞăăăä¸ĺşŚăŻčŠŚăăăă¨ăăăăŽă§ăŻăŞăă§ăăăăăăăăŚăăăăŞćŠăżăćăăăă¨ăŻăăăžăăăďź ăçćăăăăšăŠă¤ăăăćä˝ćĽă§čŞçąăŤçˇ¨éă§ăăŞăâŚă ăăăśă¤ăłăă¤ăă¤ăâŚă ăä¸čŚăăŁăăăăăŠăčŞĺăŽăă¤ăăŽăăśă¤ăłă§ăŻăŞăăŽă§ă硨éăăĽăăăĺ
厚ăé ăŤĺ
ĽăŁăŚăăŞăâŚă ç§ăĺăćŠăżăćąăăŞăăăAIă使ăŁăăšăŠă¤ăçćăăăăă芌ăăŚăăžăăăăăăŚčŠŚčĄéŻčޤăŽćŤă ăăă¤ăăŽčŞĺăä˝ćăăăăŽăăăŞăăšăŠă¤ăăčŞĺçćăă ăă¨ă§ăăăăăŽĺéĄăč§Łćąşă§ăăžăăă ăžăăĺŽéăŤClaude Codeă§ä˝ćăăăšăŠă¤ăăŽäžăăčŚăăăžăă âť ćŹč¨äşç¨ăŤç¨ćăăćśçŠşăăă¸ă§ăŻăďźéŁĺăšăźăăźăŽéčŚäşć¸ŹAIĺ°ĺ
Ľć¤č¨ďźăŽăľăłăăŤăšăŠă¤ăă§ă ăŠăăç§ă䝼ĺăăćä˝ćĽă§ä˝ăŁăŚăăăšăŠă¤ăă¨ăăäźźăŚăăŚăăç§ăćä˝ćĽă§ä˝ćăăăă¨č¨ăŁăŚăć°ăĽăăŞăĺĺăĺ¤ăă¨ćăăžăă ăčŞĺăŽăă¤ăăŽăăŠăźăăăăăŤăă ăăççąăŻ2ă¤ăăăžăă ĺ
厚ăçč§ŁăăăăăčŻăćŞăăăăĺ¤ćă§ăă ďźăă¤ăăŽčŞĺăŽăăŠăźăăăă§ĺşăŚăăăŽă§ăčŞĺăŤă¨ăŁăŚďźăăăăĺ¨ĺ˛ăŤă¨ăŁăŚăďźĺ
厚ăçč§ŁăăăăăććçŠăŽčŻăćŞăăăăăŤĺ¤ćă§ăăžă 俎ćŁăăăćăăăă¤ăăŽä˝ćĽă§ăăç´ăă ďźçćçŠăăă¤ăăŁăăŞPowerPointăŞăă¸ă§ăŻăă§ăăă¤čŚć
ŁăăăăŠăźăăăăŞăŽă§ăăăăšăăŽĺžŽäżŽćŁă襨ăŽçľăżćżăăćŽćŽľăŠăăăŽćä˝ă§ĺŽçľăăžă éăŤăăäťäşşăä˝ăŁăćăăŽăăăšăŠă¤ăăŻăä¸é¨ă ăç´ăăăă¨ăăŤăăăŠăç´ăă°ĺ
¨ä˝ăŽăăśă¤ăłăăŠăłăšăäżăŚăăŽăăăăăŤăăăăă硨éăŤćéăăăăăžăă çľĺąAIăŤäżŽćŁăé źăăă¨ăŤăŞăăăăĺăăŽĺžĺžŠă§ăăăŤćéăăăăŁăŚăăžăăžăăăăăăŞăćĺăăčŞĺă§ăźăăăä˝ăŁăćšăćŠăăŁăăă¨ăăăąăźăšăăăăžăăă ä¸čŹçăŤăăćĄç¨ăăăŚăăă˘ăăăźăăŤăŻăăăŽčŚłçšă§éçăăăăžăăă PowerPointç´ćĽçććšĺź ďźăă¤ăăŁăăŞpptxăĺžăăăăăŽăŽăăăăłăăăŽć示ăćĺłéăăŤĺŽăŁăŚăăăŞăăă¨ăĺ¤ăăăăśă¤ăłăŽčŚć ăăčŻăăŞăăąăźăšăĺ¤ăďźăăŽćšĺźă§LLMăă¤ăžăăăăăĺ
ˇä˝çăŞčŞ˛éĄăŻă䝼ĺăŽč¨äşă LLMăŤăăăăŻăčŞĺçćăŤăăŁăŹăłă¸ăăŚăăăŁăčŞ˛éĄ ăă§ă解誏ăăŚăăžăďźă çťĺçććšĺź ďźčŚć ăăŻăăăŞăăŤčŻăăăŽăŽă硨éă§ăăŞăăăčŞĺăŽç´°ăăŞćăăăčžźăăăăŞă HTMLçććšĺź ďźčŚć ăăčŻăAIăŤăă硨éă¨ç¸ć§ăčŻăăăčŞčşŤă§ăŽçˇ¨éăŻéŁăăăçľĺąAIă¸ăŽć示ăŤé źăăă¨ăŤăŞă ăăăŚăăŠăŽćšĺźăŤăĺ
ąéăăăŽăăçľĺąă čŞĺăŽĺĽ˝ăżéăăŽăăŽăŤäťä¸ăĺăăŽăéŁăă ăă¨ăăăă¨ă§ăă ăăă§ăăŽč¨äşă§ăŻă芌čĄéŻčޤăŽćŤăŤčžżăçăăçžćçšăŽćéŠč§Łă¨ăăŚă ć¸ĺźăťăŤăźăŤăĺ
¨ăŚPythonăłăźăăŤčŚĺŽăăClaude CodeăŽăšăăŤă§ăŻăźăŻăăăźăĺśĺžĄăăćšĺź ăç´šäťăăžăă ćŹč¨äşăŻăAIăŤăăăšăŠă¤ăçćă芌ăăăăŽăŽăăŞăăéăăă¨ćăăçľé¨ăŽăăćšăăčŞĺ弽ăżăŽăăŠăźăăăă§čłćăčŞĺçćăăăćšăŤĺăăĺ
厚ă¨ăŞăŁăŚăăžăă çŽćŹĄ 1. ăžă芌ăăŚăăĄă ăŁăă㨠2. čžżăçăăćéŠč§Łďźć¸ĺźăťăŤăźăŤăĺ
¨ăŚPythonăłăźăăŤčŚĺŽăă 3. äťçľăżăŽčŠłç´°â ďźăăśă¤ăłăăłăźăăŤĺşĺŽăă 4. äťçľăżăŽčŠłç´°âĄďźĺ質ăć
äżăăăŻăźăŻăăăź 5. äťçľăżăŽčŠłç´°â˘ďźăăźăŻăłĺšç 6. ĺŽéăŤä˝ăŁăăšăŠă¤ăăŽäž ććłăťăžă¨ă 1. ăžă芌ăăŚăăĄă ăŁăă㨠1-1. XMLďźOOXMLďźç´ćĽçˇ¨éďźAnthropicĺ
ŹĺźskillăăăŽăžăžä˝żă ćĺăŤčŠŚăăăŽăŻăAnthropicăĺ
ŹéăăŚăăĺ
ŹĺźskillăŞăă¸ăăŞăŽ pptxăšă㍠ăăăŽăžăžä˝żăćšĺźă§ăăpptxăăĄă¤ăŤăŽĺŽä˝ă§ăăOOXMLďźXMLďźăAIăç´ćĽčŞăżć¸ăăăžăă çľćăŻă䝼ä¸ăŽççąă§ä˝żăçŠăŤăŞăăžăăă§ăăă ăăśă¤ăłăĺ´ŠĺŁ ďźăˇă§ă¤ăăŽĺş§ć¨ăťé
č˛ăťć´ĺă¨ăăŁăç´°ăăĺśĺžĄăXMLăŹăăŤă§ćŁç˘şăŤčĄăăŽăŻăAIăŤăŻéŁć庌ăéŤăăăăśă¤ăłăĺ´ŠĺŁăăŚăăžăăă ăłăłăăăšăćśč˛ťăćżăă ďźăšăŠă¤ă1ćĺăŽXMLă ăă§ăč¨ĺ¤§ăŞéăŤăŞăăčŞăżć¸ăăŽăăłăŤăłăłăăăšăăĺ§čżŤăăăžăăăăăĺ
¨ä˝ăćąăă¨ăăăăŤăăźăŻăłćśč˛ťéăč¨ĺ¤§ăŤăŞăăžăăă 1-2. çťĺçććšĺź ăšăŠă¤ăăçťĺă¨ăăŚçćăăćšĺźăŻă珏ä¸ĺ°čąĄăŽčŚć ăăŻćŞăăăăžăăă§ăăăăăăă 硨éă§ăăŞăăă¨ăä¸äžżă§ăă ă 1ćĺç´ăăŤăAIăŤć示ăĺşăăŚĺçćăĺž
ă¤ĺż
čŚăăăăžăăă 1-3. HTMLçććšĺź HTMLçćăŻčŚć ăăćŻčźçčŻăă硨éčŞä˝ăŻĺŽšćă§ăăăăăŽçˇ¨éăŻĺşćŹçăŤAIă¸ăŽčŞçśč¨čŞć示ăŤăŞăăžăăčŞĺăŽćă§ç´ćĽäżŽćŁă§ăăăćč§Śăćăăăăžăăă ăăăŤăăăśă¤ăłăŽćĺŽăčŞçśč¨čŞăăźăšăŞăŽă§ĺŽăăăŞăăąăźăšăăăăăŠăăăŚăăHTMLćăăĺşăŚăăžăăžăăăčŞĺăä˝ăŁăćăăŽăŞăčłćăŻăăŹăăĽăźă硨éăăŠăăäťäşşäşăŤăŞăŁăŚăăžăăçăăŞăŁăŚăăžăăă¨ăăăăžăăă 1-4. 3ćšĺźăŤĺ
ąéăăćĺ ćŻăčżăă¨ă夹ćăăćšĺźăŤăŻĺ
ąéçšăăăăžăăă ăăśă¤ăłăŤăźăŤăăčŞçśč¨čŞăŽăăăłăăăă§ĺŽăăăăă¨ăăŚăă ăă¨ă§ăă ăä˝ç˝ăŻ0.3ă¤ăłă䝼ä¸ăăăăŠăłăăŻMeiryo UIăăăăŽé
č˛ă使ăŁăŚăăăăăăć示ăăăăłăăă§ä¸ăăŚăăAIăŻćŻĺĺ°ăăă¤éăč§Łéăăăžăă čŞçśč¨čŞă§ăŽć示ăŤé źăéăăăăă¤ăăŽčŞĺăŽăăŠăźăăăăăŽĺçžć§ăŻć
äżă§ăăŞăă¨ćăăžăăă 2. čžżăçăăćéŠč§Łďźć¸ĺźăťăŤăźăŤăĺ
¨ăŚPythonăłăźăăŤčŚĺŽăă 2-1. ăłă˘ăŽçşćłďźăăśă¤ăłĺ¤ćăAIăăĺăä¸ăă ćçľçăŤčžżăçăăçăăŻăˇăłăăŤă§ă ăăśă¤ăłăAIăŤĺ¤ćăăăăŽă§ăŻăŞăăčŞä˝ăăŤăăźăŠă¤ăăŠăŞăŽé˘ć°ăŤçľăżčžźă ă¨ăăăăŽă§ăă python-pptxăŠă¤ăăŠăŞăć´ťç¨ăăăčŞä˝ăŽăăŤăăźăŠă¤ăăŠăŞ pptx_helpers.py ăć§çŻăăžăăă襨ăä˝ă make_table ăčŚĺşăă罎ă add_heading ăăšăŠă¤ă1ćăŽä¸ă§ăŽĺĺ˛ăŹă¤ă˘ăŚăăçľă draw_split_layout ăăăăăŽé˘ć°ăŤăŻăç§ăŽăăă¤ăăŽăăŠăźăăăăăŽé
č˛ăťç˝ŤçˇăťăăŠăłăăťä˝ç˝ăĺ
¨ăŚăăźăăłăźăăăăŚăăžăă ăšăăŤăŤăŻăăăćč¨ăăŚăăžăă é˘ć°ăŽăăśă¤ăłăăăćżčŞć¸ăżăăśă¤ăł pptx_helpers.py ㎠make_table ăť add_heading ăŞăŠăŽăăŤăăźăŤçľăżčžźăžăăăă¸ăĽă˘ăŤăăśă¤ăłăćżčŞć¸ăżăŽăăśă¤ăłăăŽăăŽă§ăăăčŞčşŤăŽçžçĺ¤ćăŤĺăăăŚč˛ăťç˝ŤçˇăťăăŠăłăăťä˝ç˝ăä¸ć¸ăăăŚăŻăŞăăŞăăé˘ć°ăăăŠăĄăźăżăĺăäťăăŞăăŞăăăăăŻćĺłçăŤĺşĺŽăăăŚăăă AIăŽäťäşăŻăăŠăŽé˘ć°ăăăŠăŽăăźăżă§ĺźăśăăă ăă§ăăčŞçśč¨čŞă§ăăśă¤ăłăĺŽăăăăŽă§ăŻăŞăăăăăăĺŽă䝼ĺ¤ăŽé¸ćč˘ăăŞăăăŚăăžăăŽăăă¤ăłăă§ăăă 2-2. ăŻăźăŻăăăźăŻAnthropicĺ
ŹĺźskillăŽč¨č¨ććłăĺčăŤĺŽčŁ
ăŻăźăŻăăăźčŞä˝ăŻăźăăăçşćłăăăăă§ăŻăŞăăAnthropicĺ
ŹĺźăŽpptxăšăăŤăŽč¨č¨ććłăĺčăŤăăŚăăžăăĺ
Źĺźskillăă䝼ä¸ăŽčăćšăĺăĺ
ĽăăŚăăźăăăčŞĺăŽskillă¨ăăŚć¸ă辡ăăăžăăă ĺčăŤăăčăćš ďźćŽľéçăŞăŻăźăŻăăăźć§ćăăľăă¨ăźă¸ă§ăłăăŤăăăŹăăĽăźăŽäťçľăż çŹčŞăŤĺŽčŁ
ăăé¨ĺ ďźOOXMLç´ćĽçˇ¨éă§ăŻăŞăpython-pptx+čŞä˝ăăŤăăźé˘ć°ăćĄç¨ăăčŞçśč¨čŞă§ć¸ăăăăĄăŞăăśă¤ăłăŤăźăŤăăłăźăăŤĺşĺŽ 2-3. ăŞăă¸ăăŞĺ
¨ä˝ĺ . âââ scripts/ # ĺ
ąćăŠă¤ăăŠăŞă¨ăăźăŤ (git玥ç) â âââ pptx_helpers.py # ăšăŠă¤ăć§çŻăăŤăăź(ĺ
¨ăăŤăăšăŻăŞăăăŽĺşç¤) â âââ generate_template_images.py # ăăłăăŹăźăăăéŤč§Łĺ庌ĺç
§çťĺăçć âââ template/ # ăăźăšăăłăăŹăźăčłçŁ (git玥ç) â âââ template.pptx # ăăă¤ăăŽčŞĺăŽăăŠăźăăăăăä˝çžăăăăźăšăăłăăŹăźă â âââ template_images/ # ăŹă¤ă˘ăŚăăťăăŁăźăĺĽăŽĺç
§çťĺ âââ output/ # çćçŠ (ăăźăăă¨ăŤ1ăăŁăŹăŻăăŞ) â âââ <theme>/ â âââ python/ # ăăŤăăšăŻăŞăă (git玥çăĺžăă俎ćŁăťĺçćĺŻ) â â âââ slideNN_build.py # ăšăŠă¤ă1ć = ăšăŻăŞăă1ćŹ â âââ <theme>.pptx # çćăăăpptxćŹä˝ (git玥ç寞蹥ĺ¤) â âââ slides/ # AIăŹăăĽăźç¨ăšăŠă¤ăçťĺ (git玥ç寞蹥ĺ¤) âââ .claude/skills/ # PowerPointçćăťăŹăăĽăźç¨ăšă㍠âââ pptx/ â âââ SKILL.md # ä¸ć ¸ăŻăźăŻăăăź(ä˝ćăťçˇ¨é) âââ pptx_review/ â âââ SKILL.md # ĺŽćăăăăŽăŹăăĽăź âââ pptx_overall_structure_review/ âââ SKILL.md # ăšăŠă¤ăć§ććĄăŽăŹăăĽăź č¨č¨ä¸ăŽăă¤ăłăăŻă ăšăŠă¤ă1ćăPythonăšăŻăŞăă1ćŹďź slideNN_build.py ďźăŤĺŻžĺżăăăăšăŻăŞăăăŽćšăgit玥çăă ăă¨ă§ăăpptxćŹä˝ăŻăšăŻăŞăăăăăă¤ă§ăĺçćă§ăăăăăgit玥çăăŚăăžăăă 3. äťçľăżăŽčŠłç´°â ďźăăśă¤ăłăăłăźăăŤĺşĺŽăă 3-1. ăăśă¤ăłăŽĺćŹăŻPythonăłăźă ç§ăŽăăă¤ăăŽăăŠăźăăăăăŽé
č˛ăťç˝ŤçˇăťăăŠăłăăťä˝ç˝ăŻăĺ
¨ăŚ pptx_helpers.py ăŽé˘ć°ăŽä¸ăŤĺŽčŁ
ăăăŚăăžăă襨ăŞă make_table ăčŚĺşăăŞă add_heading ăĺĺ˛ăŹă¤ă˘ăŚăăŞă draw_split_layout ă¨ăăĺ
ˇĺăŤăăšăŠă¤ăăŽć§ćčŚç´ ăă¨ăŤĺ°ç¨é˘ć°ăç¨ćăăăšăăŤăŤăŻăĺż
ăăăăăŽé˘ć°ă使ăăă¨ăăé˘ć°ăŽăăśă¤ăłăčŞčşŤăŽĺ¤ćă§ä¸ć¸ăăăŞăăă¨ăăć示ăăŚăăžăă ăăśă¤ăłăŽćŁč§Łăăłăźăă¨ăăŚ1çŽćăŤéç´ăăăŚăăăŽă§ăAIăŽč§Łéăćşăăä˝ĺ°ăăăăžăăăăăśă¤ăłăĺ¤ăăăăŞăŁăăé˘ć°ăç´ăă°ăăă䝼éăŽçćçŠĺ
¨ăŚăŤĺć ăăăžăă 3-2. Grand Rulesďźäžĺ¤ăŞăĺŽăăă埡ĺśăŤăźăŤ ăšăăŤăŽĺé ăŤăŻăGrand Rulesăă¨ăăăťăŻăˇă§ăłă罎ăăăăśă¤ăłĺ¤ćăŽä˝ĺ°ăć˝°ăăŚăăžăăäžăă°äťĽä¸ăŽăăăŞăŤăźăŤă§ăă ĺĺ˛ăŹă¤ă˘ăŚăăŻĺż
ă draw_split_layout() ă使ă ăłăłăăłăé ĺă塌ĺłăŤĺĺ˛ăăăšăŠă¤ăă§ăăťăŻăˇă§ăłăă¨ăŤčŚĺşăăĺĺĽăŤç˝Žăă¨ăčŚĺşăăŽç¸Śä˝ç˝ŽăăşăŹăăŞăšăŻăçăžăăžăăăăă§ĺĺ˛ă¨ăăăăźé
罎ă1ă¤ăŽé˘ć°ăŤéăčžźăăć§é çăŤăşăŹă辡ăăŞăăăăŤăăžăăă äžăă°äťĽä¸ăŽăłăźăăŻăăłăłăăłăé ĺăăčćŻăďźĺˇŚ1/3ďźă¨ă課éĄĺćăďźĺł2/3ďźăŤĺĺ˛ăă塌ăŤĺćăŽçŽćĄć¸ăăĺłăŤčŞ˛éĄăŽä¸čŚ§čĄ¨ăé
罎ăăŚăéăä¸č§ăłăăŻăżă§ă¤ăŞăăăŽă§ăă draw_split_layout() ăčŚĺşăäťăăŽĺĺ˛ă¨ăŞă˘ă¨ăłăăŻăżç¨ăŽé ĺăä˝ăŁăŚĺş§ć¨ăčżăăŽă§ăăă¨ăŻăăŽĺş§ć¨ă使ăŁăŚăłăłăăłăăćăă ăă§ăă areas, triangle_arrow_areas = draw_split_layout( slide, col_ratios=[ 1 , 2 ], titles=[ "čćŻ" , "課éĄĺć" ], triangle_arrow_width=TRIANGLE_ARROW_WIDTH, ) left_x, content_top, left_w, content_h = areas[ 0 ] right_x, _, right_w, _ = areas[ 1 ] conn_x, _, conn_w, _ = triangle_arrow_areas[ 0 ] add_bullet_list(slide, items=[...], x=left_x, y=content_top, cx=left_w, cy=content_h) add_triangle(slide, x=conn_x + BETWEEN_SHAPE_GAP, y=content_top + TRIANGLE_ARROW_V_PAD, cx=conn_w - BETWEEN_SHAPE_GAP * 2 , cy=content_h - TRIANGLE_ARROW_V_PAD * 2 , direction= "right" , fill=COLOR_BORDER) make_table(slide, ..., x=right_x, y=content_top, cx=right_w, cy=content_h) ăăŽăłăźăăăçćăăăăšăŠă¤ăăăăĄăă§ăă 襨ăŻĺż
ă make_table(HeaderCell, BodyCell) ă§ä˝ă čĄă¨ĺă§ć
ĺ ąăć´çăăć§é ăăăˇă§ă¤ăăŽćĺé
罎ă§ĺŽčŁ
ăăăă¨ăçŚć˘ăăŚăăžăăăăăăźăŽăšăżă¤ăŤăă°ăŤăźăăŠăăŤăŽĺĄăăăťăŤĺ
çŽćĄć¸ăăŽä˝čŁăŻĺ
¨ăŚé˘ć°ĺ´ă§ćąşăžăăăăšăŚç§ĺĽ˝ăżăŽăăśă¤ăłăŤăăŚăăžăă čŚĺşăăŻĺż
ă add_heading() ă使ă ćĺč˛ă¨ä¸çˇč˛ăŻé˘ć°ĺ
ă§ĺşĺŽăăăŚăăăçŹčŞăŽč˛ă渥ăăă¨ăŻă§ăăžăăă 3-3. ăŤăŠăźăăŹăăăťăżă¤ăă°ăŠăăŁăĺŽć°ĺ č˛ăŻ COLOR_PRIMARY ďźăăŠă¤ăăŞăŽéďźă COLOR_PRIMARY_MID ă COLOR_PRIMARY_PALE ă COLOR_ACCENT ďźĺźˇčŞżăŽčľ¤ďźăŞăŠăŽĺŽć°ăŽăżä˝żç¨ĺŻč˝ă¨ăăhexăłăźăăŽç´ć¸ăă訹厚ăăŞă形ăŤăăŚăăžăă ĺăŤč˛ăĺćăăă ăă§ăŞăăăMid PrimaryăŻäşćŹĄçăŞĺĄăăŽć˘ĺŽč˛ăăPale PrimaryăŻčĄ¨ăŽäş¤äşčĄăŞăŠăčćŻăăăăăăŤĺşĺĽă§ăăă°čśłăăĺ ´é˘ă ăăă¨ăăŁă 使ăĺăăŽăŤăźăŤ ăžă§ăšăăŤăŤčŚĺŽăăŚăăžăă ăżă¤ăă°ăŠăăŁăĺć§ă§ăăăŠăłăăŻMeiryo UIĺşĺŽăăľă¤ăşăŻăšăŠă¤ăăżă¤ăăŤ24ptăťăŞăźăć18ptăťBodyăăăšă12ă16ptă¨ćąşăăŚăăžăă 3-4. ăšăăŤăŤć¸ăă ăă§ăŻĺŽăăăŞăďźçľśĺŻžăŤĺŽăăăăăŤăźăŤăŻă¨ăŠăźă§ć˘ăă éç¨ăăŚăżăŚć°ăĽăăăŽăŻă ăšăăŤăŤăăăć確ăŤăŤăźăŤăć¸ăăŚăăAIăĺŽăăŞăăă¨ăăă ă¨ăăäşĺŽă§ăă 蹥垴çă ăŁăăŽăăăŠăłăăľă¤ăşă§ăăăšăăŤăŤăŻăBodyăăăšăăŻ12pt䝼ä¸ĺż
é ăă¨ćč¨ăăŚăăăŤăăăăăăăć
ĺ ąéăŽĺ¤ăăšăŠă¤ăă§ăăăśă¤ăłä¸ăä˝ă¨ă1čĄăŤĺăăăăă¨ĺ¤ćăăAIăăĺćăŤ11pt䝼ä¸ăŤä¸ăăăąăźăšăčŚăăăžăăă ăăăŻăskillă§ć示ăŽć¸ăćšă埡ăăŚăć šçľśă§ăăžăăă§ăăă ăăă§ăăăŽăŤăźăŤăŻăăăłăăă§ăŻăŞăăłăźăă§ĺźˇĺśăăăă¨ăŤăăžăăăĺ
ąéăŽăăŠăłăč¨ĺŽĺŚçăŤć¤č¨źăĺ
Ľăă12ptćŞćşă渥ăăăă ValueError ăćăăŚĺŽčĄăăŽăăŽăć˘ăăžăă MIN_BODY_PT = 12 # BodyăăăšăăŽä¸éăăăćŞćşăŻValueErrorăŤăă raise ValueError ( f "ăăŠăłăăľă¤ăş {sz_pt}pt ăŻBodyăăăšăăŽä¸é {MIN_BODY_PT}pt ćŞćşă§ăă" ) ă¨ăŠăźă§ĺŽčĄăć˘ăžăă°ăAIăŻćĺć°ăĺăăťăŹă¤ă˘ăŚăă調ć´ăăăŞăŠăăăŠăłăăä¸ăă䝼ĺ¤ăŽéăć˘ăăăăăăžăăăăăăŤăăă12ptćŞćşăŽăăăšăăŻçşçăăŞăăŞăăžăăă 4. äťçľăżăŽčŠłç´°âĄďźĺ質ăć
äżăăăŻăźăŻăăăź ăăśă¤ăłăŽĺçžć§ăŻăłăźăă§ć
äżă§ăăžăăăăăă ăă§ăŻăăăăăŞă ăă§ä¸čşŤăŽăŞăăšăŠă¤ăăăă§ăăŚăăžăăžăăăăă§ăă1ă¤ăŽćąă¨ăăŚă čŞĺăŽăšăŠă¤ăä˝ćăŽä˝ćłăăŻăźăŻăăăźă¨ăăŚĺźˇĺśăă ăă¨ăŤăăžăăă 4-1. ăšăŠă¤ăč¨çťďźä˝ćłăč¨çťćŽľéă§ĺźˇĺśăă ăšăŠă¤ăä˝ćăŽčľˇçšăŻAIă§ăŻăŞăç§ă§ăăč°äşé˛ăéĺťčłćăăă¨ăŤé常ăŽChatĺAIă¨ĺŁćăĄăăŚăä˝ăäźăăăăăĺşăăăăŽçľčŤăčŞçśč¨čŞă§ăšăăŤăŤć¸Ąăă¨ăăăăĺ§ăăžăă ăă ăăăăŽĺžăăăŞăăšăŠă¤ăăAIăŤä˝ăăăăă¨ăŻăăžăăăĺŽčŁ
ăŤĺ
ĽăĺăŤăAIăŤăŻĺ
¨ăšăŠă¤ăăŤă¤ăăŚăSection/Title/Lead text/Layout/Chart type/Body outlineăăćĺă§ć¸ăĺşăăăžăă ăŠăăăăšăŠă¤ăč¨č¨ăŤăăă¤ăăăŞăŽăăäşĺăŤčŚăăĺăăčŞčşŤăŽçŽă§ăŹăăĽăźăăŚăăä˝ćăŤĺăćăăăăăă¨ă§ăăpptxăŻă§ăăăăŁăăăŠăĺ
¨ä˝ăŽăšăăźăŞăźăă¤ăă¤ăăŞăŽă§ä˝ăç´ăăă¨ăăćéăŽçĄé§ăéżăăăăžăă ăăŽăăšăăźăŞăźăŠă¤ăłăćĺăŤĺşăăăă¨ăăčăćščŞä˝ăŻă䝼ĺç´šäťăăă ćčĄč
ăçĽăŁăŚăăăšăăăŹăźăłčłćä˝ćčĄďźç¤žĺ
ç 俎äźăŹăăźă ăăŽç 俎ĺ
厚ăăAIăŽăŻăźăŻăăăźăŤĺżç¨ăăăăŽă§ăă 4-2. ăăłăăŹăźăpptxďźč¤čŁ˝ăŽăăźăšă§ăăăăăśă¤ăłăŽăŤăżăă° template/template.pptx ăŻăç§ăćŽćŽľä˝żăŁăŚăăăăŠăźăăăăăăŽăžăžčаăčžźăă ăăźăšăăłăăŹăźăă§ăăăăŽăăłăăŹăźăăŤăŻ2ă¤ăŽĺ˝šĺ˛ăăăăžăă 1ă¤çŽăŻă ăšăŠă¤ăăč¤čŁ˝ăăŚăłăłăăłăăć¸ăčžźăăăăŽăăźăš ă¨ăăŚăŽĺ˝šĺ˛ă§ăă襨ç´ăťçŽćŹĄăťăťăŻăˇă§ăłĺşĺăăťć¨ćşăšăŠă¤ăă¨ăăŁăč¤čŁ˝ĺ
ăšăŠă¤ăăĺŤăă§ăăăĺăšăŠă¤ăăŻspeaker notesăŤć¸ăăčĺĽĺďź layout_title ă layout_toc ă base_template ăŞăŠďźă§ĺ
厚ăćŠć˘°çăŤçšĺŽă§ăăžăăAIăŻăăăăłăăźăăä¸ăŤăłăłăăłăăé
罎ăăŚăăăŽă§ăćĺŽăŽăăłăăŹăźăďźäźç¤žăăłăăŹăźăăŞăŠďźăŤć˛żăŁăä˝čŁăćĺăăäżč¨źăăăžăă 2ă¤çŽăŻă ć¨ćşçăŞčŚčŚăăśă¤ăłăAIăŤćăăăŤăżăă° ă¨ăăŚăŽĺ˝šĺ˛ă§ăăăăśă¤ăłăŽĺĺăŻPythonăłăźăă§čŚĺŽăăŚăăžăăăăé˘ć°ăăŠăçľăżĺăăăă¨ăăŠăŽăăăŞčŚăçŽăŽăšăŠă¤ăăŤăŞăăŽăăăŻčŚčŚçăŤćăăĺż
čŚăăăăžăă ăăă§ăç§ăćŽćŽľăă使ăăŹă¤ă˘ăŚă5税ďźĺä¸ăăŁăźăăăăŁăźă+塌ăŤĺćăăăŁăźă+ĺłăŤçľčŤăŞăŠďźă¨ăăŁăźăç´20税ďźăăŞăźăăšăăăĺłăăăăŞăŻăšăăăźăăăăăčŠäžĄăăźăăŤăŞăŠďźăĺç
§çťĺăŽăŤăżăă°ă¨ăăŚć´ĺăăAIăŤăŻăăŽăŤăżăă°ăăăăśă¤ăłăé¸ă°ăăăăăŤăăžăăă 4-3. ĺ¤ćŽľăŹăăĽăźďźăăľăă¨ăźă¸ă§ăłăă¨čŞĺčŞčşŤăŤăăăŹăăĽăźă ăăŽăŻăźăŻăăăźă§ăă¤ăłăăŤăŞăăŽăăĺ
Źĺźskillăăč¸čĽ˛ăťçşĺąăăăăŹăăĽăźăŽäťçľăżă§ăă ä˝ćéç¨ăŽăłăłăăăšăăä¸ĺćăăŞăć°ăăăľăă¨ăźă¸ă§ăłăă辡ĺăăĺ
ĺ
ĽčŚłăŽăŞăçŽă§ăŹăăĽăźăăăžăă ăŹăăĽăźăŻ2掾éăăăžăă ć§ćăŹăăĽăźďźĺŽčŁ
ĺďź ďź ăšăŠă¤ăăä˝ăĺăŤăč¨çťăăŠăăăĺĽăŽăľăă¨ăźă¸ă§ăłăăăŹăăĽăźăăžăăăŹăăĽă˘ăźăŤăŻčŞĺčŞčşŤăŽčăćšăč¸čĽ˛ăăăăŤă˝ăăä¸ăăĺłăăăŹăăĽăźăăăăăć示ăăŚăăžăă ăăăŤăAIăŽăŹăăĽăźăĺć ăăč¨çťăŻĺż
ăç§čŞčşŤăŤăć示ăăă ç§ăćżčŞăăŞăéăAIăŻĺŽčŁ
ăéĺ§ăăŞă ăăăźăŤăăŚăăžăăăšăŠă¤ăăä˝ăčžźăă ĺžăŤć§ćăăăăç´ăăŽăć大ăŽćéăŽçĄé§ăŞăŽă§ăĺŽčŁ
ĺăŽćŽľéă§äşşéăŽăŹăăĽăźăĺż
ăćăăăăŤăăŚăăžăă ĺŽćĺžăŹăăĽăź ďź ăăăăĺŽćăăăăĺ
¨ăšăŠă¤ăăçťĺĺăăŚăĺĽăŽăľăă¨ăźă¸ă§ăłăăçŽčŚăŹăăĽăźăčĄăăžăăčŚç´ ăŽéăŞăă1ă2pxăŽä¸ć´ĺăä˝ăłăłăăŠăšăăăăŠăłăăŽä¸çľąä¸ă¨ăăŁăăă¸ăĽă˘ăŤĺ質ă¨ăĺ
¨ä˝ăŽăšăăźăŞăźăťĺăšăŠă¤ăăŽăŞăźăćăĺ
¨ć°ăă§ăăŻăăžăă ććăŻMust fix/Nice to fixăŽĺŞĺ
庌äťăă§čżăŁăŚăăăŽă§ăç§ăćçľçăŤĺŻžĺżăăé
çŽăĺć¨é¸ćăć示ăĺşăăžăăăăŽăăă§ă俎ćŁăĺż
čŚăŞăšăŠă¤ăăŽăăŤăăšăŻăŞăăă ăă俎ćŁăťĺĺŽčĄăăžăă 4-4. AIçŽčŚăŹăăĽăźăŽăăăŽăŹăłăăŞăłă°ĺşç¤ AIăŤăăçŽčŚăŹăăĽăźăŤăŻpptxăŽăšăŠă¤ăçťĺĺăĺż
é ă§ăăĺ˝ĺăŻLibreOfficeă§ĺ¤ćăăŚăăžăăăăăăŠăłă䝣ćżă§ä¸é¨ăŽćĺăĺććä˝ăŤăŞăŁăăăăŞăă¸ă§ăŻăăćŹ č˝ăăăăăĺéĄăăăăžăăă ăăă§Microsoft PowerPointăŽăă¤ăăŁăĺ¤ćďźmacOSăŻosascriptăWindowsăŻCOMçľçąďźăă§ăăăŹăłăăŞăłă°CLIăć´ĺăăžăăă 5. äťçľăżăŽčŠłç´°â˘ďźăăźăŻăłĺšç ăăŁăŚăżăŚćłĺ䝼ä¸ăŤéčŚă ăŁăăŽăăăăźăŻăłĺšçăŽč¨č¨ă§ăăpptxçćăŻçťĺăťĺ¤§ăăŞă˝ăźăšăłăźăă¨ăăŁăććçŠăćąăăăăćčăăŞăă¨ăĄă¤ăłăłăłăăăšăăăă溢ăăĺ質ăăłăšăăćŞĺăăŚăăžăăžăă ăăă§ăšăăŤăŤăŻăăĺ質ăč˝ă¨ăăăăźăŻăłăçŻç´ăăăăăăŽăŤăźăŤăćč¨ăăžăăă ăăŤăăźăŠă¤ăăŠăŞăŻĺŽčŁ
ăĺŤăăĺ
¨ćăčŞăžăăŞă ďźăšăăŤĺ
ăŽé˘ć°ăŞăăĄăŹăłăščĄ¨ă¨docstringă ăă§ä˝żç¨ćšćłăĺ
¨ăŚăăăč¨č¨ăŤăă çŽčŚăŹăăĽăźăŻăľăă¨ăźă¸ă§ăłăăŤĺ§č˛ăă ďźĺ
¨ăšăŠă¤ăăŽçťĺăŻăľăă¨ăźă¸ă§ăłăďźçŹçŤăłăłăăăšăďźĺ´ă§čŞăżăăĄă¤ăłă¨ăźă¸ă§ăłăăŻăăăšăăŽćčŚă ăăĺăĺă 俎ćŁĺžăŻĺ¤ć´ăăăšăŠă¤ăă ăăĺăŹăłăăŞăłă°ăťĺčŞčžźăă 6. ĺŽéăŤä˝ăŁăăšăŠă¤ăăŽäž ĺé ă§ăčŚăăăăšăŠă¤ăăŻăăăăăćśçŠşăŽăéŁĺăšăźăăźăŽéčŚäşć¸ŹAIĺ°ĺ
Ľć¤č¨ăă¨ăăăăźăă§ăăăŽäťçľăżă使ăŁăŚçćăăăăŽă§ăă ăšăŠă¤ă1ćĺăŽăăŤăăšăŻăŞăăăăŠăŽăăăŞăăŽăăĺé 2ćçŽăŽăéčŚäşć¸ŹAIĺ°ĺ
Ľăšăąă¸ăĽăźăŤăăŽăšăŠă¤ăăäžăŤăčŚăăăžăă import sys from datetime import date sys.path.insert( 0 , "." ) from pptx import Presentation from scripts.pptx_helpers import ( COLOR_BG_WHITE, COLOR_PRIMARY_MID, COLOR_PRIMARY_PALE, COLOR_TEXT_DARK, add_step_arrow, clear_body_shapes, make_schedule_frame, set_base_slide, ) PPTX = "output/techblog_sample/techblog_sample.pptx" # ć
ĺ˝ĺĽăŽĺĄăč˛ FILL_OURS = COLOR_PRIMARY_MID # ĺźç¤ž(ç˝ćĺ) FILL_CLIENT = COLOR_PRIMARY_PALE # 貴礞(ćżč˛ćĺ) prs = Presentation(PPTX) slide = prs.slides[ 5 ] # 6ćçŽăŽăšăŠă¤ă clear_body_shapes(slide) # ăťăŻăˇă§ăłăťăżă¤ăăŤăťăŞăźăćăăžă¨ăăŚč¨ĺŽ set_base_slide( slide, "ĺ°ĺ
Ľč¨çť" , "éčŚäşć¸ŹAIĺ°ĺ
Ľăšăąă¸ăĽăźăŤ" , "12ćä¸ćŹăžă§ăŤăă¤ăăăć¤č¨źăĺŽäşăăćĽćĺăăăŽĺ
¨ĺşĺąéăçŽćă4ăśćăŽĺ°ĺ
Ľč¨çťă§ă" , ) # ĺš´ăťćăťéąăŽăăăăźă¨ăżăšăŻĺéĄčĄăćă¤ăšăąă¸ăĽăźăŤć ăćçťăă # (ĺłä¸ăŽĺĄäžăĺźç¤ž/貴礞ăăŽćçťăŻççĽ) info = make_schedule_frame( slide, from_date=date( 2026 , 9 , 7 ), to_date=date( 2026 , 12 , 27 ), task_categories=[ "čŚäťśĺŽçžŠăťăăźăżć´ĺ" , "ă˘ăăŤéçşăťć¤č¨ź" , "ĺ°ĺ
Ľăťĺąé" ], category_sz_pt= 14 , ) col_xs = info[ "col_xs" ] col_w = info[ "col_width" ] cat_ys = info[ "category_ys" ] cat_h = info[ "category_h" ] # (ăŤăă´ăŞindex, éĺ§éą, çľäşéą, ăŠăăŤ, ĺĄăč˛)ăéąăŻ1ĺ§ăžă bars = [ ( 0 , 1 , 3 , "çžçśĺćăťKPIĺŽçžŠ" , FILL_OURS), ( 0 , 4 , 7 , "貊売ăťć°čąĄăăźăżăŽć´ĺ" , FILL_CLIENT), # ...ćŽă4ćŹăŻççĽ ] BAR_CY = 520000 for cat_i, w_from, w_to, label, fill in bars: bar_x = col_xs[w_from - 1 ] bar_cx = col_xs[w_to - 1 ] + col_w - bar_x bar_y = cat_ys[cat_i] + (cat_h - BAR_CY) // 2 text_color = COLOR_TEXT_DARK if fill == FILL_CLIENT else COLOR_BG_WHITE add_step_arrow(slide, label, x=bar_x, y=bar_y, cx=bar_cx, cy=BAR_CY, fill=fill, text_color=text_color, sz_pt= 13 ) prs.save(PPTX) ăăśă¤ăłăŤé˘ăăč¨čż°ăăťăźăŞăăă¨ăăăăă¨ćăăžăăĺş§ć¨ă¨ăăźăżă渥ăă°ăăă¤ăăŽčŞĺăŽăăŠăźăăăăă§ćçťăăăăă¨ăăăŽăăăŽäťçľăżăŽćŹčłŞă§ăă ĺć˛ăŤăŞăăžăăăăăŽăłăźăăŤăăŁăŚçćăăăăšăŠă¤ăăăăĄăă§ăă Plotlyă§çćăăĺŽéăăŁăźăăĺăčžźăăšăŠă¤ăăăĺăäťçľăżă§ä˝ăăžăă âťćŹăăŁăźăăŻč¨äşç¨ăŤä˝ćăăćśçŠşăŽăľăłăăŤăăźăżă§ăăăĺ˝ç¤žăŽĺŽç¸žăĺ°ĺ
Ľĺšćă示ăăăŽă§ăŻăăăžăă ăăăŚăăšăŠă¤ă=PythonăšăŻăŞăăăăŞăŽă§ăăăŽĺžăŽäżŽćŁăŻ2éăăăé¸ăšăžăă大ĺš
ăŤĺ¤ăăăăă°ăšăŻăŞăăăAIăŤçˇ¨éăăŚăăăŁăŚĺĺŽčĄăăă°ăăă§ăăăćč¨ă襨ăŽä¸čşŤăăăŁă¨ç´ăăăăă°pptxăéăăŚćŽćŽľăŠăăćă§çˇ¨éă§ăăžăă ăŠăĄăăŽćšćłă使ăă ăă¨ăăĺŽéç¨ă§ăŻé常ăŤäžżĺŠă§ăă ććłăťăžă¨ă ĺ˝ĺăŽçŽçăŻćăăă äťĺä˝ăŁăäťçľăżăŻăé常ăŤç´°ăăă¨ăăăžă§čŞĺăŽĺĽ˝ăżăŤĺăăăăăžăăăĺŽéăŤăăŞăäžżĺŠă§ăĺ˝ĺăŽçŽçăŻćăăăŚăăžăă ĺşăŚăăăšăŠă¤ăăŻčŞĺăŤă¨ăŁăŚčŞăżăăăă大ĺš
ăŞäżŽćŁăĺşćŹçăŤä¸čŚ äżŽćŁăăăćăăăă¤ăăŽčŞĺăŽăăŠăźăăăăăŞăŽă§ă弽ăżăŽäżŽćŁăăă¤ăăŽä˝ćĽă§pptxä¸ă§ăăă§ăă ä˝ććéăŤă¤ăăŚăăćŁç˘şăŤč¨ć¸ŹăŻăăŚăăžăăăăćä˝ćĽă§ä˝ăĺ ´ĺă¨ćŻăšăŚ6ĺ˛ăťăŠĺć¸ă§ăăŚăăä˝ćă§ăă ĺˇĽç¨ ä˝ććéăŽĺć¸ç 丝ăŞć
ĺ˝ ć§ćăťăšăăźăŞăźč¨č¨ ç´5ĺ˛ć¸ AIăĺćĄăç§ăăŹăăĽăźă¨ćżčŞ ăšăŠă¤ăä˝ć ç´9ĺ˛ć¸ AIďźăăŤăăšăŻăŞăăăŽçćă¨ĺŽčĄďź čŚç´ăăťćäżŽćŁ ăťăźĺ¤ĺăŞă ç§ ĺ
¨ä˝ ç´6ĺ˛ć¸ ĺć¸ăĺšăăŚăăăŽăŻä¸ťăŤăšăŠă¤ăä˝ćăŽĺˇĽç¨ă§ăć§ćăŽć¤č¨ă¨ćĺžăŽć俎ćŁăŻăăăžă§ĺć¸ă§ăăŚăăžăăăçšăŤć俎ćŁăăžăŁăăć¸ăŁăŚăăŞăăŽăŻăäťçľăżăä¸ĺĺă ăăă§ăŻăŞăăćĺłçăŤćŽăăŚăăé¨ĺă§ăă ć¸ăăŞăăŁăć俎ćŁăŻăăăăĺż
čŚăŞĺˇĽç¨ ć俎ćŁăŽä¸čşŤăŻăăăăšăăŽäżŽćŁăăĄă¤ăłă§ăăă襨ăŽé
çŽă大ĺš
ăŤĺăŁăăčż˝ĺ ăăăăăăă¨ăăăăžăă ăă ăăăăŻăăăžă§čŚăŤăŞăăžăăăčŞĺăŽăă¤ăăŽăăŠăźăăăăŞăŽă§äżŽćŁăŻćĽ˝ă§ăăăăčŞĺăä˝ăŁăćăăŽăăăšăŠă¤ăăŞăŽă§ă俎ćŁăŤéăčžźăăăăă§ăă ăăăŚăăŽć俎ćŁăŻă ćĺžăŤäşşéăčŞĺă§čŞăăčłćăŤăăăăĺż
čŚăŞĺˇĽç¨ ă ă¨čăăŚăăžăăĺŽĺ
¨ăŤćśăăă¨ăŻă§ăăăćçľçăŤăăŽăšăŠă¤ăăăă¨ăŤčŞĺăŽĺŁă§čŞŹćăă䝼ä¸ăćśăăšăă§ăăŞăă¨ćăŁăŚăăžăă pptxăŽăă¤ăšăăŻäźćĽăŤăăŁăŚăäşşăŤăăŁăŚĺ
¨çśéă ăăăžă§ć§ă
ăŞäźćĽăŽčłćăčŚăŚăăŚćăăŽăŻăpptxăŽăă¤ăšăăŻäźćĽăŤăăŁăŚćŹĺ˝ăŤéăă¨ăăăă¨ă§ăăé
č˛ăăŹă¤ă˘ăŚăăŽĺŻĺşŚăăŞăźăćăŽć¸ăćšă襨ăŽä˝żăćšăŞăŠăăŠăăçľçšăŽćĺăăŽăăŽă§ăăăăăŤč¨ăă°ăĺăäźćĽăŽä¸ă§ăäşşăŤăăŁăŚĺĽ˝ăżăéăăžăă ă ăăăăăăšăŠă¤ăčŞĺçćăŻä¸äşşĺăăŽćąç¨ăľăźăăšă§ć¸ăăăŽă§ăŻăŞăă ĺäşşăčŞĺăŽĺĽ˝ăżă§ăŤăšăżăă¤ăşă§ăăäťçľăżă§ăăăšă ă ă¨ćăăžăăăăłăăŹăźăă¨ăăŤăăźé˘ć°ăčŞĺç¨ăŤä˝ăčžźăăăŽćšĺźăŻăăăŽçšă§çăŤăăŞăŁăäťçľăżăŞăŽă§ăŻă¨čăăŚăăžăă ăăŽč¨äşăăčŞĺ弽ăżăŽPowerPointăčŞĺçćăăăćšăŽĺŠăăŤăŞăă°ĺš¸ăă§ăă