Modernize Studio
言語:日本語
メールで相談

VBAマクロ付きのExcelブックを、ウェブアプリとして作り直す

見積もり、請求書、在庫、計画が、長年のうちにマクロやフォーム、非表示シートが積み重なったExcelファイルで回っていることはよくあります。そのブックを、きちんとしたデータベースを持つウェブアプリとして作り直します。計算と採番はそのまま、複数の人が互いの作業を上書きせずに同時に使えます。

なぜ今なのか

デスクトップ版ExcelはVBAを今も実行でき、Microsoft 365でも引き続きサポートされています。限界は別のところにあります。ウェブ版ExcelではVBAマクロの作成、実行、編集ができないため、SharePointやOneDriveに置いたマクロ付きブックは、誰かがデスクトップアプリで開いたときにしか動きません。さらにWindows版Officeは、メールの添付ファイルを含むインターネット由来のファイルのマクロを既定でブロックするため、同僚にブックを送ると止まってしまうことがよくあります。

Excel 2021は、Office 2021全体とともに2026年10月13日にマイクロソフトのサポートが終了します。とはいえ、大きなリスクは日付よりも、マクロを書いた人が異動や退職でいなくなり、どのシートがどの合計につながっているかを誰も知らなくなることです。

  1. Windows 10マイクロソフトのサポート終了
  2. Excel 2021とOffice 2021マイクロソフトのサポート終了

移行する内容

実際に使われているとおりのブック。いつ誰が追加したかわからない部分も含めて。

  • 数式と計算の連鎖

    合計、消費税、値引き、価格表、シートをまたぐVLOOKUPやINDEX/MATCHの連鎖。すべての結果を入力元までたどり、端数処理も含めて同じ計算をアプリで再現します。

  • VBAマクロ

    行をコピーする、書類を作る、請求書に番号を振る、Outlookでメールを送る、ファイルを書き出す、といったボタン。ロジックはサーバーに移り、誰が使っても同じように動きます。

  • ユーザーフォーム

    VBAエディターで作った入力フォームと、そのドロップダウンリストやチェック。同じ項目、同じ入力チェックのウェブフォームになります。

  • 表として使われているシート

    顧客一覧、商品、価格表、過去の書類の保管用シート。キーを持つデータベースのテーブルになり、重複や漏れは月末ではなく入力の時点で見つかります。

  • テンプレートと印刷する書類

    請求書、見積書、納品書の体裁に整えたシート。同じレイアウトと番号で、アプリが作成するPDFになります。

  • ブック間のリンク

    ネットワーク上の別ファイルから値を読み込むファイルや、毎月・毎年ブックをコピーして名前を変える習慣。すべてが履歴をまるごと持つ一つのアプリにまとまります。

ウェブ版の画面

説明用の例、架空のデータ

VBAフォーム付きの請求書ブックをExcel 2003で作るとこう見えるという例と、同じ請求書をウェブアプリにしたもの。

つまみをドラッグするか、矢印キーを使ってください。

各部分の移行先

ブックでは:一覧ごとに1枚のシート(顧客、商品)
ウェブアプリでは:キーと入力時チェックのあるデータベースのテーブル
ブックでは:シートをまたぐ数式
ウェブアプリでは:同じ端数処理によるサーバー上の計算
ブックでは:ユーザーフォームとマクロのボタン
ウェブアプリでは:利用者の役割に応じたウェブのフォームと操作
ブックでは:請求書や見積書のシート
ウェブアプリでは:同じレイアウトと番号のPDF文書
ブックでは:人ごと、月ごと、年ごとのファイルのコピー
ウェブアプリでは:履歴をすべて持つ一つのアプリ
ブックでは:パスワードによるシート保護
ウェブアプリでは:役割つきの個人アカウントと変更履歴

移行の進め方

  1. 48時間以内の診断

    ブック(テスト用データでも構いません)と、それが読み書きする他のファイルをお送りください。48時間以内に書面の診断書でお答えします。現在のプログラムの働き、リスクのありか、ウェブ版の構成、パイロットモジュールの固定価格、残りの部分の見積もりです。無料で、何の義務も生じません。

  2. パイロットモジュール

    実データのコピーを使って、アプリの一部分、通常はいちばんよく使われる部分を作ります。残りを決める前に、社員の方に日々の業務で使っていただきます。

  3. 同じデータで、同じ結果

    ブックと新しいアプリに同じ入力を与え、計算された値を1セント単位まですべて照合します。見つけた業務ルールはすべて自動テストにもし、その後のリリースのたびに改めて確認します。すべての確認結果を記した報告書をお渡しします。

  4. 30日間の並行稼働

    アプリ全体が完成したら、ブックも30日間並行して使います。違いがあれば旧プログラムが残っているうちに見つかり、合意した価格の範囲内で修正します。

よくある落とし穴と、その対処

  1. 選択状態に依存するコード

    記録したマクロはSelect、ActiveSheet、ActiveCellに頼ることが多く、結果は利用者が最後にどこをクリックしたかで変わります。書き直す前に、各マクロが本来何をすべきかを突き止め、書面で御社に確認します。

  2. 非表示シートと名前付き範囲

    料率、しきい値、参照表は、非表示や「完全に非表示」のシート、あるいは別のブックを指す名前付き範囲の裏に置かれていることがよくあります。それぞれが業務ルールなので、診断書にすべて挙げます。

  3. 揮発性の関数と位置に依存する数式

    INDIRECT、OFFSET、Sheet1!C14のような参照は、表のどこに何があるかに依存しています。間違った場所に行を挿入すると、合計が気づかないうちに変わります。アプリではどの値にも名前と型があり、計算がレイアウトに左右されなくなります。

  4. 文字列として保存された日付と数値

    他のシステムから貼り付けた値は文字列として入っていることが多く、保存したパソコンの地域設定によって日と月の順序も異なります。取り込みの際に列ごとに確認し、御社の判断が必要な行を一覧にします。

  5. 端数処理と浮動小数点の合計

    Excelは小数点以下2桁で表示しても、内部ではそれ以上の桁で計算しており、端数処理した各行の合計が、端数処理した総額と一致するとは限りません。行ごとか書類の合計でかを御社と取り決め、ブックとアプリに同じデータを処理させて書類ごとに確認します。

  6. 他のプログラムの自動操作

    CreateObjectやSendKeysでOutlook、Word、PDFプリンターを操作するマクロは、デスクトップのセッションの外では動きません。サーバーからのメール送信とPDF作成に置き換えます。

価格とお支払い

診断

無料

書面で、48時間以内

パイロットモジュール

€1,000–1,500

通常。着手時50%、検収時50%

お支払い条件

着手時に50%、検収時に50%をお願いしています。残金は本番稼働とソースコードの引き渡しの前にお支払いいただきます。大きなプロジェクトは、合意したフェーズごとのお支払いになります。

診断は無料です。先に進まないと決めた場合も、診断書はお手元に残り、費用は一切かかりません。

価格は固定で、作業開始前に書面で合意します。作業内容が変わる場合は新しい見積書をお送りし、ご承認をいただいてから追加作業に入ります。

全面移行の場合、一般的な開発会社の見積もりより40〜60%低い価格を目標にしています。オフィス費用も営業部門もない小さなスタジオだからこそ可能です。

価格は税抜です。

価格を見積もる

テストで裏付けた、実際の移行

NorthwindはマイクロソフトがAccessに同梱していたサンプルデータベースで、当方の顧客ではありません。公開されているコピーをSQLiteとPostgreSQLに移行し、すべてのテーブルとクエリを自動テストで元データと比較したうえで、その結果をもとに動くウェブアプリを構築しました。事例には数値を、同等性報告書にはすべての確認項目を掲載しています。

NorthwindはAccessのデータベースですが、Excel VBAでも同じ方法で進めます。移行し、同じデータで元のプログラムと結果を比べ、新旧を並行して動かします。

同等性報告書(英語) · クリックできるプレビューとサンプル診断(デモ)

よくある質問

計算結果はまったく同じになりますか?

まさにそれを確認します。同じ入力をブックとウェブアプリの両方に与え、計算された値を1セント単位まですべて照合します。ブック自体に誤りがあればお見せし、そのまま残すか直すかは御社に決めていただきます。

Excelへのエクスポートは引き続きできますか?

はい。一覧やレポートはExcelファイルとしてダウンロードできるので、表計算ソフトで分析したい方はこれまでどおり使えます。違いは、データそのものがデータベースにあることです。

ウェブ版ExcelやSharePointを使えば済むのでは?

ウェブ版ExcelはVBAマクロを実行できないため、ブックの肝心な部分が失われてしまいます。ファイルを共有しても、二人が同じ行を編集するのは防げませんし、誰でも上書きできる数式の中にあるルールも守れません。

マクロを書いた人が退職しています。それでも対応できますか?

できます。VBAのコードはファイルの中にあり、診断の際にすべて読みます。診断書では各マクロが何をしているかを平易な言葉で説明しますので、それだけでも役に立つことがよくあります。

同時に何人まで使えますか?

複数の人がそれぞれ自分のアカウントで同時に入力できます。同じレコードに二人が矛盾する変更を保存することはデータベースが防ぎます。共有ブックではこれを確実に行えません。

年ごと、拠点ごとに似たブックがいくつもあります。一つのプロジェクトになりますか?

たいていはなります。すべてを一つのデータベースに取り込むので、過去の年も検索できます。判断が必要なバージョン間の違いは診断書に挙げます。

お問い合わせ

ご都合のよい方法をお選びください。1営業日以内に、日本語でメールにてお返事します。

メールで

riccardo@modernizestudio.com
メールを書く

ブック(テスト用データでも構いません)か、何をしているかの簡単な説明をお送りください。1営業日以内にご返信します。

ファイルをお送りください

Access、Excel、VB6、Delphi、古い.NETで作られたプログラムなら、ファイル送付後48時間以内に無料の診断書をお届けします。

  1. ファイルのコピーを作成します。テスト用データでもかまいません。
  2. フォームまたはメールに添付します。パスワード付きの圧縮ファイルにし、パスワードは別送するのがおすすめです。ご希望があれば、先に秘密保持契約を結びます。
  3. 48時間以内に、診断書とパイロットモジュールの固定価格をお届けします。

イタリアを拠点に活動しています。

メッセージを送る

任意。データベース、Excelブック、スクリーンショット、仕様書など、10 MBまで。それより大きいファイルは、ダウンロードリンクをメッセージに記載してください。

メールで相談

ボタンを押すと、メッセージが入力された状態でメールソフトが開きます。メールソフトで「送信」を押すまで送信されません。

メールで相談