Claude Integration with Microsoft Word: 3 Methods
Anthropic does not ship an official Claude add-in for Microsoft Word, and Microsoft's own AI assistant inside Word is Copilot, not Claude. If you searched for "Claude integration with Microsoft Word" hoping for a one-click plugin, it doesn't exist yet. What does exist is a handful of practical ways to connect Word documents to Claude's models through code, and they're not hard to set up.
This article covers three working methods, from zero-code to a proper Office add-in, and where an API gateway like SubToAPI fits into the picture so you're not managing raw Anthropic credentials inside a VBA macro.
Why there's no native Claude-Word plugin
Microsoft controls the Office add-in ecosystem and has built its own AI stack (Copilot) directly into Word, Excel, and Outlook. Anthropic, meanwhile, focuses on the API and its own apps (Claude.ai, Claude Code, Claude for Desktop). Nobody currently maintains an official bridge between the two, so any "integration" you build is really a thin layer: your Word document or script sends text to Claude's API and inserts the response back into the document.
That's not a limitation worth avoiding — it means you have full control over the prompt, the model, and what happens with the output, instead of being locked into Copilot's fixed workflows.
Method 1: Copy-paste with a structured prompt (no code)
The baseline method, and still the most common one in practice: keep Claude open in a browser tab or desktop app, draft your prompt with the document text pasted in, and paste the result back into Word.
This works fine for one-off tasks — rewriting a paragraph, summarizing a report, checking tone — but it doesn't scale past a few documents a day, and it leaves no audit trail of what was sent or generated. If you're doing this more than occasionally, move to method 2 or 3.
Method 2: A VBA macro that calls Claude directly
Word's VBA environment can make HTTP requests using MSXML2.ServerXMLHTTP, which means you can wire a macro button to send selected text to an API and paste the response back in. This is the fastest way to get real automation without building a full add-in.
Sub AskClaude()
Dim http As Object
Dim url As String
Dim body As String
Dim selectedText As String
selectedText = Selection.Text
url = "https://api.subtoapi.app/v1/messages"
body = "{""model"":""claude-sonnet-4-5""," & _
"""max_tokens"":1024," & _
"""messages"":[{""role"":""user"",""content"":""Improve this paragraph: " & _
Replace(selectedText, """", "'") & """}]}"
Set http = CreateObject("MSXML2.ServerXMLHTTP")
http.Open "POST", url, False
http.setRequestHeader "Content-Type", "application/json"
http.setRequestHeader "Authorization", "Bearer " & Environ("SUBTOAPI_KEY")
http.send body
Dim response As String
response = http.responseText
' Insert response text after the selection (simplified parsing)
Selection.Collapse Direction:=wdCollapseEnd
Selection.TypeText vbNewLine & response
End Sub
This is intentionally minimal — in production you'd parse the JSON response properly instead of dumping the raw body, and you'd store the key somewhere more secure than an environment variable read by VBA. But it proves the pattern: select text, hit a macro button, get Claude's output inserted into the document.
Using an API gateway here matters more than it looks. Anthropic's own API keys aren't designed to be embedded in desktop macros distributed across a team — if the key leaks, you're rotating it for everyone. SubToAPI issues scoped application keys (sub_live_...) per user or per app, so a leaked macro key doesn't compromise your whole Claude access. Setup is covered in the quickstart guide.
Method 3: A proper Office.js add-in
For anything beyond personal macros — a tool your whole team installs — build a real Word add-in using Office.js. It runs in a sandboxed task pane, works across Windows, Mac, and Word Online, and can be distributed through your organization's admin center instead of copy-pasted as a .bas file.
The core pattern is the same fetch call, just from JavaScript instead of VBA:
async function askClaude(selectedText) {
const response = await fetch("https://api.subtoapi.app/v1/messages", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": `Bearer ${process.env.SUBTOAPI_KEY}`
},
body: JSON.stringify({
model: "claude-sonnet-4-5",
max_tokens: 1024,
messages: [
{ role: "user", content: `Rewrite for clarity: ${selectedText}` }
]
})
});
const data = await response.json();
return data.content[0].text;
}
Office.onReady(() => {
document.getElementById("run-button").onclick = async () => {
Word.run(async (context) => {
const range = context.document.getSelection();
range.load("text");
await context.sync();
const result = await askClaude(range.text);
range.insertText(result, Word.InsertLocation.after);
await context.sync();
});
};
});
For longer documents, streaming the response so the task pane fills in progressively is a better UX than waiting for the full completion — see streaming for how that works over SubToAPI's endpoint. If your add-in needs to call other tools (fetch a CRM record, run a calculation) as part of generating the text, look at tool use rather than trying to chain separate API calls manually.
The general request/response shape for all three methods follows the same messages endpoint, so switching from a VBA prototype to a full add-in doesn't require rewriting your prompt logic.
Which method to pick
- Occasional use, no code → copy-paste, stay in the browser.
- Personal automation, fast to build → VBA macro with an HTTP call.
- Team-wide tool, cross-platform, streaming UX → Office.js add-in.
In all three cases beyond copy-paste, you need a way to authenticate against Claude without hardcoding a raw Anthropic key into a file that gets emailed around a team. SubToAPI handles that piece — per-user keys, usage visibility, and team seats — and plans start at Solo €9 with a free trial at signup. Full plan details are on the pricing page.
questions
Is there an official Claude add-in for Microsoft Word? No. Anthropic doesn't publish a Word add-in, and Microsoft's built-in AI assistant in Word is Copilot. Any Claude-Word connection today is built with a macro, an Office.js add-in, or manual copy-paste.
Can VBA macros in Word call external APIs like Claude? Yes, using MSXML2.ServerXMLHTTP or MSXML2.XMLHTTP to send HTTP requests directly from a macro. It's the fastest way to prototype a Claude-Word connection without building a full add-in.
Do I need an Anthropic API key or can I use something else? You can call Anthropic's API directly, but for team use a gateway like SubToAPI gives you scoped, revocable application keys, usage tracking, and streaming support instead of sharing one raw key across every macro and add-in.