automating-word
SKILL.md
Automating Word (JXA-first, AppleScript discovery)
Relationship to the macOS automation skill
- Standalone for Word, aligned with
automating-mac-appspatterns. - Use
automating-mac-appsskill for permissions, shell execution, and UI scripting guidance. - PyXA Installation: To use PyXA examples in this skill, see the installation instructions in
automating-mac-appsskill (PyXA Installation section).
Core framing
- Word dictionary is AppleScript-first; discover there.
- JXA provides logic, data handling, and ObjC bridge access.
- Objects are specifiers; read via methods, write via assignments.
- Handle errors from Word operations using try/catch blocks and Application error checking.
Implementation Workflow
- Discover AppleScript Dictionary: Open Script Editor, browse Word's AppleScript dictionary to understand available objects and methods.
- Translate to JXA: Use discovered AppleScript syntax as reference for JXA equivalents, consulting the dictionary translation table.
- Set Up JXA Script: Initialize Word application object and document references.
- Implement Operations: Apply find/replace, table manipulation, or export using JXA methods.
- Test and Validate: Run script and verify document changes match expectations.
Quick Examples
Document opening:
// JXA
const word = Application('Microsoft Word');
word.documents.open('/path/to/document.docx');
# PyXA (Recommended)
import PyXA
word = PyXA.Word()
word.documents().open("/path/to/document.docx")
Find and replace:
// JXA
const range = word.activeDocument.content;
range.find.text = 'old text';
range.find.replacement.text = 'new text';
range.find.execute({replace: 'all'});
# PyXA
doc = word.active_document()
find_obj = doc.content().find()
find_obj.text = 'old text'
find_obj.replacement.text = 'new text'
find_obj.execute(replace='all')
Table creation:
// JXA
const table = word.activeDocument.tables.add(word.activeDocument.content, 3, 4);
table.cell(1, 1).range.text = 'Header';
# PyXA
table = doc.tables().add(doc.content(), 3, 4)
table.cell(1, 1).range().text = 'Header'
For PyObjC Scripting Bridge examples, see automating-word/references/word-pyxa.md.
Validation Checklist
After implementing Word automation:
- Test script execution without errors
- Verify document changes applied correctly
- Check ObjC bridge objects return expected values
- Run find/replace operations and confirm replacements
- Export documents and validate output formats
When Not to Use
- For general macOS automation (use
automating-mac-apps) - For Excel automation (use
automating-excel) - For non-Microsoft Office applications
- For web-based document processing (use web APIs or Playwright)
What to load
- Word JXA basics:
automating-word/references/word-basics.md(core concepts only; see references for advanced usage) - Recipes (ranges, find/replace, tables):
automating-word/references/word-recipes.md - Advanced patterns (export enums, ObjC bridge):
automating-word/references/word-advanced.md - Dictionary translation table:
automating-word/references/word-dictionary.md - PyXA (Python) alternative:
automating-word/references/word-pyxa.md
Weekly Installs
4
First Seen
Feb 1, 2026
Security Audits
Installed on
claude-code4
opencode4
openclaw4
cline3
codebuddy3
cursor3