Convika

این صفحه هنوز به فارسی نیست و به انگلیسی نمایش داده می‌شود.

Excel macros don't run on iPad: give your team a web tool instead

Quick answer

No. Excel for iPad opens a macro-enabled workbook, but Microsoft's table for it says "VBA functions won't run", and Office Scripts don't run there either. To keep the macro's job on an iPad, use a remote desktop to Windows Excel, rebuild it in Power Apps, or have an AI rewrite the VBA as a web page at a link.

A working example: change any value. It computes in your browser and sends nothing.

For your team only, publish it on a private link or behind a password, both with Pro.

Make your team's version

Convika's AI rewrites this calculator from what you write. You try it on your phone before you keep it, with no account.

Paste each input with its unit, the formulas, and any lookup table, or a VBA macro: up to 8,000 characters.

You don't need an account to try it. The preview works for 3 minutes once it's ready.

On this page

The workbook opens on the site iPad, the numbers are all there, and the big Order concrete button does nothing. On a laptop it worked for years. This page quotes what Microsoft says about macros on iPad, compares the four ways a team keeps the macro's job going (Office Scripts with Power Automate, Power Apps, a remote desktop, and a web page rewritten from the VBA), and then walks through the rewrite with a real macro, the prompt to give your AI, and a test table to check the result against Excel.

Microsoft's pages quoted here were read on November 6, 2026. Each one's own date is in the Sources at the end.

Can Excel for iPad run VBA macros?

No. Microsoft's support page Why can't I open my Excel file?, which applies to Excel for iPad, lists what each mobile version opens. On its iOS tab, a macro-enabled workbook (.xlsm) opens and can be edited, with one note: "VBA functions won't run."

Microsoft's developer page Differences between Office Scripts and VBA macros has a platform table. Its rows, with the Excel for iOS column first:

FeatureExcel for iOSExcel on the webExcel for WindowsExcel for Mac
VBA macrosNoNoYesYes
Office ScriptsNoYesYesYes
Office Scripts Action RecorderNoYesYesYes
Office Add-insYesYesYesYes

Opening the workbook in Safari doesn't help either. Microsoft's page on VBA macros in Excel for the web says "you can't create, run, or edit VBA (Visual Basic for Applications) macros in Excel for the web", though the macros stay in the file.

So on the iPad, the workbook is a workbook and nothing more. What the macro did (the checks, the arithmetic it wrote into cells, the log row, the saved PDF, the email) doesn't happen. A newer or faster iPad doesn't change this: Microsoft's table is about the app, Excel for iOS.

Four ways to keep the macro's job, compared

OptionRuns the VBA you haveOn the iPadCost, from the vendor's pageWith no signalWhat it takes
Office Scripts with Power AutomateNo, rewritten in TypeScriptNot inside Excel for iPad; a flow can run the script in the cloudOne of the Microsoft 365 business or education licences Microsoft listsNo: Microsoft requires "Internet connectivity with connected experiences enabled"A rewrite. No Excel-level events, and no button in the workbook on the iPad
Power AppsNo, rebuilt as a canvas app in Power FxThe Power Apps Mobile appPower Apps Premium at $20.00 per user/month, paid yearly, on Microsoft's pricing page. Apps on standard connectors run with Microsoft 365 plansYes, in the Power Apps Mobile app, not in a browserRebuilding the screens and moving the data, best into Dataverse
Remote desktop to a Windows PC with ExcelYes, as it isWindows App, on iPadOS 17.0 or laterMicrosoft's page names no price for the app. The PC needs Windows Pro, Enterprise, or Education, or your organization runs Windows 365 or Azure Virtual DesktopNoA PC that stays on, and desktop Excel on a touch screen
A web page rewritten from the VBA, on ConvikaNo, rewritten in JavaScript by your AISafari, from a linkFree with the Convika bar. A private link or a password needs Pro, $12 a monthNo. The page opens only with a connection, and Convika doesn't do offlineThe prompt below, and a test against the macro in desktop Excel. No file access, no Outlook

Here is the short version:

  • The macro is long, touches many files, and has to stay exactly as it is: use a remote desktop to a Windows PC. Nothing gets rewritten.
  • The team is on Microsoft 365, the data can move into Dataverse, and people work with no signal: rebuild it in Power Apps.
  • The macro reshapes a workbook in OneDrive on a schedule, and nobody has to press a button on the iPad: rewrite it as an Office Script and run it from Power Automate.
  • The macro takes a few inputs and works out an answer (a quantity, a price, a check, a lookup in a table): have your AI rewrite it as a web page, and send the crew a link.

Why Office Scripts and Power Automate don't put the button on the iPad

Microsoft's comparison with VBA says "Office Scripts are designed for secure, cross-platform, cloud-based solutions", and the iPad isn't one of their platforms. Microsoft's requirements for business and education accounts are "Excel on the web, Excel for Windows (Version 2210 or higher), or Excel for Mac", OneDrive for Business, and a licence from its list, such as Office 365 Business, Business Premium, E3, or E5. For personal and family subscriptions, Office Scripts are in preview through the Microsoft 365 Insider program. Microsoft's requirements don't mention Excel for iPad, or whether Excel for the web in an iPad's browser counts.

A script also starts only two ways: "Scripts are only run when a user manually starts them or when a Power Automate flow calls the script," says the same page, which adds that "Office Scripts don't support Excel-level events." Through "scheduled or event-driven flows", Microsoft says, a workbook can be updated "without even opening Excel". That suits a nightly report. It doesn't suit a foreman who types three numbers and wants an answer.

Starting a flow from the iPad got harder this year. Microsoft's list of changes says: "Effective August 31, 2026, the Power Automate mobile app for iOS and Android is deprecated." Microsoft adds that "Power Apps mobile supports running instant flows from Power Apps", which leads to the next option. Two more limits from Microsoft's platform limits: "Each user is limited to 1,600 calls to the Run script action per day", and "External API calls fail when a script is run through Power Automate."

Microsoft's table marks only Office Add-ins "Yes" for Excel for iOS. Building an add-in is a developer's project, outside this guide.

Power Apps: an iPad app, rebuilt from scratch

Power Apps runs a canvas app in the Power Apps Mobile app on the iPad. Your macro's logic becomes Power Fx formulas, and its sheet becomes a data source. That's a rebuild, not a conversion.

  • Price. Microsoft's pricing page lists Power Apps Premium at $20.00 per user/month, paid yearly, and a free Developer Plan that "allows building apps and testing them". For apps in production, "your users will need Power Apps Premium plan (or Pay-as-you-go alternative)". Microsoft's licensing FAQ says Microsoft 365 customers "can continue to run standalone apps to extend and customize Microsoft 365 using standard connectors", and that "A standalone Power Apps or Power Automate plan license is required to access all Premium, on-premises, and custom connectors."
  • No signal. This is where Power Apps is strongest. Microsoft's page on offline-capable canvas apps says offline "is available while running the apps using the native Power Apps Mobile players on iOS, Android, and Windows", and "Canvas apps running in web browsers can't run offline, even when using a web browser on a mobile device." Offline is built in for apps on Dataverse. Other connectors get "LoadData and SaveData functions for basic storage".
  • Offline limits. Microsoft's mobile offline limitations include: "Non-Dataverse connectors, like SharePoint, aren't supported in offline mode" and "Power Automate flows aren't supported in offline mode."

Pick Power Apps when many people write records that others then read, approve, or report on, and the data should leave Excel anyway.

Remote desktop: keep the macro, borrow a Windows PC

The only way to run your VBA as written from an iPad is to run it on a computer that has desktop Excel, and look at that computer from the iPad.

  • Microsoft's Windows App connects "to your Windows devices and apps from Azure Virtual Desktop, Windows 365, Microsoft Dev Box, Remote Desktop Services, and PCs", and needs iOS or iPadOS 17.0 or later (Microsoft Learn).
  • Not every PC can be reached. "Windows Home editions can't serve as Remote Desktop hosts," says Microsoft's page on enabling Remote Desktop. Pro, Enterprise, and Education editions can.
  • The PC has to stay on, the iPad needs a connection the whole time, and the crew works desktop Excel with a finger.

A web tool your AI writes from the VBA

The macro's job, rewritten as one HTML file: the inputs as a form, the arithmetic as JavaScript functions, and the results on the page. Safari on any iPad or phone runs it. ChatGPT, Claude, or Gemini can write it from the VBA itself, with the rules in the prompt below.

What runs on a Convika page, from its security policy: the page's own scripts, inline or from any https: address, and WebAssembly. Not allowed: eval and new Function. A script's fetch and XHR requests on a Convika page reach only the page's own address, plus, on Pro, the analytics tools Convika supports and the hosts you list for your own ad network. So the tool works from what's typed into it and what's written into the file: the price list, the material table, the constants.

Which macro jobs move well

What the macro doesIn a web pageHow
Works out an answer from inputs (quantities, sizes, prices, conversions)Moves wellThe arithmetic becomes JavaScript functions
Checks entries (blank, out of range, wrong format)Moves wellThe message shows next to the field as the person types
Looks up a table (VLOOKUP or INDEX and MATCH on a price or material list)Moves wellThe table is written into the file, which can be up to 2 MB
Shows a UserForm with drop-downs, option buttons, and check boxesMoves wellIt becomes an HTML form
Reacts to a changed cell (Worksheet_Change)Moves wellThe page recalculates on every input
Writes results into cellsChangesThey show on the page while it's open, and a reload clears them
Adds a row to a log sheet and saves the workbookChangesA form under the results sends each entry to Convika, which stores it and emails it to you
Prints or saves a PDF (PrintOut, ExportAsFixedFormat)ChangesA Print button calls window.print(), which "Opens the print dialog to print the current document" (MDN)
Opens, changes, or saves other workbooks and filesDoesn't moveThe page has no path to a file share or another workbook
Sends email through Outlook (CreateObject("Outlook.Application"))Doesn't moveThere's no Outlook in a browser. The form's entry email replaces it for the "tell the office" case
Pulls data from a database, a network drive, or a web queryDoesn't moveThe data has to be in the file
Runs when the workbook opens or on a timer (Workbook_Open, OnTime)Doesn't moveA page runs only while someone has it open. Power Automate is the scheduled route

What a VBA to JavaScript rewrite keeps and loses

  • UserForms become HTML forms. A TextBox becomes an input, a ComboBox a drop-down (<select>), OptionButtons radio buttons with a shared name, a CheckBox a check box, and a CommandButton a button. MsgBox becomes a line of text next to the field it's about.
  • Cell writes become on-page state. Range("B8").Value = … becomes a result on the page. Nothing is kept after the page closes, unless the page sends it.
  • File and printer access are gone. No Workbooks.Open, no SaveAs, no saving a PDF into a folder. The browser's print dialog is what's left.
  • Saving across users needs a form. The log row the macro appended becomes a form entry. Convika stores each entry, emails it to you (on Free, the first 50 a month), and lists it under View entries, with Download CSV.

Four VBA rules trip up a straight translation, and the AI won't know your macro relies on them unless you say so:

  • Round in VBA rounds half to even. Microsoft's Round function page says: "This VBA function returns something commonly referred to as bankers rounding." Round(2.25, 1) gives 2.2 in VBA. In JavaScript, (2.25).toFixed(1) gives "2.3", and Math.round(2.5) gives 3 where VBA's Round(2.5) gives 2. WorksheetFunction.Round, the worksheet's ROUND, rounds half away from zero.
  • Mod and \ round both numbers to whole numbers first. Microsoft's Mod page says Mod divides "(rounding floating-point numbers to integers)", with the example 19 Mod 6.7, which is 5. In JavaScript, 19 % 6.7 is 5.6. The \ operator does the same: "Before division is performed, the numeric expressions are rounded to Byte, Integer, or Long expressions."
  • Int and Fix differ below zero. "Int converts -8.4 to -9, and Fix converts -8.4 to -8" (Microsoft). They are Math.floor and Math.trunc.
  • Rounding up hits floating-point noise. In JavaScript, 15 × 7.5 × 0.2 × 1.1 is 24.750000000000004, so Math.ceil(vol / 0.25) * 0.25 orders 25 m³, not 24.75. Read the value at 15 significant digits first (Number(x.toPrecision(15))), the precision Excel shows, and put such a case in your test table with the result your Excel gives.

A faithful port can also copy a bug. The example below has one.

Worked example: the concrete order macro

This module sits behind a button on a sheet where the crew types a slab's length and width in metres, its thickness in millimetres, and a waste allowance. The supplier sells in steps of 0.25 m³, and a truck carries 7 m³.

' Module1: the "Order concrete" button on the Slab sheet
Sub OrderConcrete()
    Const TRUCK_M3 As Double = 7
    Dim L As Double, W As Double, T As Double, waste As Double
    Dim vol As Double, orderVol As Double, trucks As Long

    L = Range("B2").Value            ' length, m
    W = Range("B3").Value            ' width, m
    T = Range("B4").Value / 1000     ' thickness, mm to m
    waste = Range("B5").Value        ' waste allowance, 0.05 = 5%

    If L <= 0 Or W <= 0 Or T <= 0 Then
        MsgBox "Enter the length, width and thickness."
        Exit Sub
    End If

    vol = L * W * T * (1 + waste)                            ' m3
    orderVol = WorksheetFunction.Ceiling_Math(vol, 0.25)     ' supplier's 0.25 m3 steps
    trucks = orderVol \ TRUCK_M3
    If orderVol Mod TRUCK_M3 > 0 Then trucks = trucks + 1

    Range("B8").Value = Round(vol, 1)    ' shown to the crew
    Range("B9").Value = orderVol
    Range("B10").Value = trucks

    With Sheets("Log")
        .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(1, 5).Value = _
            Array(Now, Range("B1").Value, L * W, orderVol, trucks)
    End With
    ThisWorkbook.Save
End Sub

The formula is plain geometry: volume (m³) = length (m) × width (m) × thickness (mm) ÷ 1,000 × (1 + waste). CEILING.MATH "rounds a number up to the nearest integer or, optionally, to the nearest multiple of significance" (Microsoft).

Look at orderVol \ TRUCK_M3 and orderVol Mod TRUCK_M3. Both round 7.25 to 7 first, so 7.25 m³ gets one truck. Here is the test table, from a Node script that follows Microsoft's documented VBA rules, beside what a plain JavaScript port gives:

CaseLength × width (m)Thickness (mm)WasteVolume shown (m³)Order (m³)Trucks, as the macro givesTrucks, plain JavaScript
16 × 41005%2.52.7511
23 × 310010%1111
37.5 × 31000%2.2 (JavaScript's toFixed shows 2.3)2.2511
410 × 51500%7.57.522
512 × 51255%7.9822
610 × 61200%7.27.2512
79.5 × 53000%14.2 (toFixed shows 14.3)14.2523
814 × 52000%141422
90 × 51000%"Enter the length, width and thickness."———

Cases 6 and 7 are the macro being wrong: 7.25 m³ doesn't fit in one 7 m³ truck. The web tool is the moment to decide. Either the page copies the macro exactly, so it matches every order the office has placed, or you fix it and note the change. Tell the AI which. Case 3 is VBA's half-to-even Round showing 2.2 m³ for exactly 2.25.

Run your own cases through the macro in desktop Excel, once each, and write down what it gives. Those numbers are what the page has to match.

The prompt

Paste this into ChatGPT, Claude, or Gemini, with your own inputs, results, and module in place of the example's. Pasting the VBA itself matters: a description of the macro loses the rounding rules above.

Below is a VBA module from an Excel workbook my team uses on site, and the cells it reads.
Rewrite what it does as one HTML page that works in Safari on an iPad and on a phone.

Rules:
1. One file: HTML, CSS, and plain JavaScript inside it. No libraries, no build step.
2. No eval, no new Function, no fetch, no XMLHttpRequest. Anything the macro reads
   from another sheet goes into the file as a JavaScript table.
3. Inputs, each with a label and its unit; number fields use inputmode="decimal":
   B1 job name (text), B2 length (m), B3 width (m), B4 thickness (mm),
   B5 waste allowance (%, typed as 5 for 5%; the macro's B5 holds 0.05).
4. Port the arithmetic exactly, VBA rules included, each in its own named function:
   - VBA Round(x, n) rounds half to even. Write vbaRound(x, n).
   - Mod and \ round both numbers to whole numbers first.
   - WorksheetFunction calls behave as the Excel worksheet functions.
   - Read values at 15 significant digits before rounding up or down.
   Don't fix anything the macro does. If you think it's wrong, list it after the code.
5. MsgBox messages become text next to the field they're about.
6. Show the results in a card under the inputs: volume (m3, as Round(vol, 1)),
   order (m3), trucks. Recalculate on every input.
7. The macro adds a row to the Log sheet. Instead, put a form under the results with
   a text field named "name", a read-only text area named "order" that the script fills
   with the job name and the results whenever they change, and a "Send this order"
   button. The form has no action and no onsubmit. The script has no fetch,
   window.open, location, mailto, or localStorage anywhere.
8. Add a Print button that calls window.print().
9. Show "v1" and today's date at the foot of the page.
10. Large tap targets, one column on a phone, two on an iPad in landscape.

[paste the VBA module here]

Rule 7 is what lets Convika connect the form. A form with an onsubmit, or a page whose script calls fetch, opens a window, sets the location, or builds a mailto: address, is left alone, and so is a form like this one, which asks for no email or phone, on a page that saves to localStorage. And because Convika's form script takes the form's submit before the page's own submit code runs, the results have to be in the text area already, not added when the form is sent.

Turn the macro into a web tool in 6 steps

1. Copy the VBA out of the workbook

On a Windows PC or a Mac with desktop Excel, open the Visual Basic Editor (Alt+F11 on Windows; on a Mac, Tools > Macro > Visual Basic Editor), open the module behind the button, and copy all of it. Excel for iPad doesn't show the VBA. Note which cells the macro reads and writes, with their units.

2. Give your AI the prompt

Send the prompt above with your module pasted at the end. Ask for the complete file. Save it as an .html file, such as concrete-order.html.

3. Check it against the macro

Open the file in a browser on your computer and type in each case of your test table. Every result has to match what the macro gave in desktop Excel. When one doesn't, ask the AI to show the intermediate values (the raw volume, the order before rounding) for that case, and compare them with the sheet's. For more checks before you share any AI-made page, read what to check on an AI-made page before you share the link.

4. Upload it to Convika

Sign up at app.convika.com without a card. Click Upload an HTML file, drop the file on the Upload a file tab, and click Create my preview. The upload box below shows the page with scripts off, so the results stay blank there until you press Keep this page — free, no card. Open the preview on an iPad and run two cases again.

5. Connect the order form

On the page's screen, Convika says "A form on this page sends entries nowhere". Click Connect this form: the form keeps its own fields and look, and Convika makes a new preview that sends each entry to you. Test entries sent from a preview aren't saved, so send one test from the live page after step 6, and find it under View entries. On Free, Convika shows 50 entries a month across your forms; later ones are kept and show on Pro. If no notice appears, read why an AI-made form doesn't send anything.

Click Publish page and choose who can open it under Who can open this page? (next section). For a Public page, click Next, and the first time, Publish free. Send the link to the crew, and have them add it to the iPad's home screen (how).

Publishing it for the crew

Who can open it. These are the publish dialog's three choices, with its own words:

  • Public: "Anyone with the link can open it. It may show up in search results and in Convika's gallery." Free, with the Convika bar at the foot of the page.
  • Private link (Pro): "Anyone with the link can open it, with no password or account. It stays out of search results and out of the gallery." A private link is unlisted. It isn't access control: anyone the link is forwarded to opens the page.
  • Only people with the password (Pro): Convika's server checks the password before it sends the page. Choose this when the page holds prices, a client's details, or anything that shouldn't travel with a forwarded link (how passwords work on Convika).

A private link or a password opens an order for Pro monthly the first time (1 day free with a card, then $12 a month).

One link for every version. When the macro's rule changes, or a test case fails, start from the version Convika has, which carries the connected form. On the page's screen, under Update from an HTML file, click Upload a new version. In the box titled "Latest version (v1) as HTML" (with your number), click Copy HTML, paste it into the chat with the change, and ask the AI to keep the form and every script Convika added exactly as they are. Upload the answer, check the preview, and click Publish v2 at the same link (with your number). The crew's link and home screen icon open the new version. A file from before you connected the form brings back the form that sends nowhere, and Convika adds the connected one again near the end of the page. Keep one link per tool, and change the version number at the foot of the page each time, so anyone can say which version gave a number. Details: update an AI-made page without changing its link.

More than one tool. A new Free workspace has 1 live page at a time. To keep a second macro tool live beside the first as a Public page, add Light, an add-on to Free at $3 a month for up to 5 live pages, or use Pro, which has 100.

What Convika doesn't do. The page doesn't work offline, doesn't install as an app from a store, and can't be limited to company email addresses, single sign-on, or named accounts. Convika doesn't do that. If the crew works with no signal, Power Apps is the option above that does. You stay responsible for checking the page's results against your own standard before the crew relies on them.

Frequently asked questions

Can Excel on iPad run macros?

No. Microsoft's page for Excel on iPad and iPhone says a macro-enabled workbook opens and can be edited, but "VBA functions won't run." Microsoft's platform table for Excel for iOS also says No for Office Scripts. To use the macro from an iPad, connect to a Windows PC with remote desktop, or replace the macro with Power Apps or a web page.

Why don't my Excel macros work on my iPad?

Because Excel for iPad doesn't run VBA. The .xlsm file opens, the formulas in its cells are still there, and the button that starts the macro does nothing. The same is true of Excel for the web, where Microsoft says "you can't create, run, or edit VBA" macros.

Do Office Scripts work in Excel for iPad?

No. Microsoft's table of platforms marks Office Scripts and the Action Recorder "No" for Excel for iOS, and its requirements name Excel on the web, Excel for Windows (Version 2210 or higher), and Excel for Mac. A Power Automate flow can run a script in the cloud, on a schedule or an event, without anyone opening Excel.

Can I run a macro on an iPad with Power Automate?

Not the VBA. Power Automate runs Office Scripts, not VBA, so the macro has to be rewritten first. The flow then runs on Microsoft's servers. Since August 31, 2026, the Power Automate mobile app for iOS and Android is deprecated. Microsoft names the Approvals app in Teams for approvals, the Power Automate portal in a mobile browser for managing flows, and Power Apps mobile for running instant flows.

Can Excel on an iPad Pro run VBA macros?

No. The iPad model doesn't matter: Microsoft's table is about the app, and Excel for iOS has no VBA. An iPad Pro runs a macro only by showing a Windows PC's desktop Excel through remote desktop, such as Microsoft's Windows App.

Is there a VBA emulator for iPad?

Not from Microsoft, whose table marks VBA macros "No" for Excel for iOS. Running the VBA as written takes desktop Excel on Windows or Mac. From an iPad, the way to reach it is a remote desktop, and a Windows Home PC can't be the host.

How do I replace a VBA macro workbook with a web tool that works on phones?

Paste the VBA module into ChatGPT, Claude, or Gemini with the prompt on this page, and ask for one HTML file with plain JavaScript and VBA's rounding rules kept. Check it against the macro with a test table, then put the file at a link. On Convika, upload it, connect its form if it has one, and publish.

Can the web version save what the crew enters?

Yes, through a form. The page itself keeps nothing after it closes. A form under the results sends each entry to Convika, which stores it, emails it to you, and exports it as CSV. On Free, Convika shows and emails the first 50 entries a month; Pro shows them all.

Does the web tool work without a signal?

No. The page opens from its link, so the iPad needs a connection to open it. Convika doesn't do offline. Power Apps runs offline in its mobile app, with Dataverse data.

Sources

Next step

How to check that an AI-made calculator matches your Excel sheet

Run the same input sets through Excel and the AI's page, compare to a stated tolerance, and find the places where Excel and JavaScript round differently.

Related articles

More calculators built from Excel sheets

AI Skill Pod

Share AI skills with your team, the easy way

Everyone uses your team's skills in their own ChatGPT, Claude or Gemini, on any plan. Send one invite link. Free to start.

Start free on AI Skill Pod⁠

AI Skill Pod is made by the team behind Convika.

Share this article

Put the macro's job at a link the iPads can open

Paste the VBA macro, or the sheet's inputs and formulas. The AI rewrites it as a calculator that runs in Safari on an iPad, you check it against the macro's results, then keep it with a free account and publish it at a link.

Make my team's version

Free plan: no credit card, 1 published page. A private link or a password comes with Pro, $12 a month.