ONLYOFFICEマクロを使用してスプレッドシートのクリーニングを自動化する方法

スプレッドシートのクリーンアップは繰り返し作業です。エクスポートされた名前には余分なスペースが含まれており、貼り付けられたテキストには改行なしスペースが含まれている場合があり、広範囲な置換によって数式やIDが破損する可能性があります。ONLYOFFICEマクロを使用すると、数値や数式セルはそのままにして、指定した範囲のテキストを標準化できます。以下の例では空白のみを処理します。重複の削除、日付変換、空白行の削除には、それぞれ別のルールが必要です。

ドキュメントは2026年10月6日に確認済みです。ONLYOFFICEマクロはExcel VBAではなく、Office JavaScript APIを使用したJavaScriptを使用します。エディターの現在のドキュメントでは、マクロワークスペースは「表示」→「マクロ」から開きます。ツールバーの正確な表示は、デスクトップ版とホスト版で異なる場合があります。

このマクロで処理できるクリーニング作業

このサンプルでは、​​先頭と末尾の空白またはタブを削除し、改行なしスペースを通常のスペースに変換し、テキスト内の重複する空白またはタブを統合します。また、文字列ではない数式と値はスキップします。このように範囲を限定することで、定期的なインポートの準備中に日付、金額、または計算セルが変更される可能性を低減できます。

データの問題サンプルが何をするか自動化する前にレビューする
先頭または末尾のスペースとタブテキストセルから削除します通常は名前やラベルには安全ですが、スペースが意味を持つフィールドを確認してください。
改行しないスペースそれらを通常のスペースに置き換えますコピーしたウェブテキストに便利。ソースフィールドをスポットチェックする。
スペースまたはタブの繰り返し各実行を1つのスペースに縮小します固定幅テキストや意図的なインデントには使用しないでください。
数式、数値、ブール値それらは変化しない実行後も数式セルが正しく計算されることを確認してください。
重複行、日付、空白行それらを変えないまずビジネスルールを定義する。これらは単なる表面的な整理ではない。

1. コピーを作成し、範囲を定義します

セルを変更するマクロを実行する前に、スプレッドシートの作業コピーを保存してください。クリーンアップするワークシートとデータ行を特定します。以下のコードでは、A2:D500サンプル範囲を示しています。1行目にはヘッダーが含まれていると想定され、データはA列からD列に入力されていると想定されます。このアドレスをご使用のシートに合わせて変更してください。対象レコードをカバーする範囲を指定し、メモ、数式、または無関係な列は含めないでください。

ONLYOFFICEのスプレッドシートグリッドには、顧客、都市、ステータスの列と4つのサンプルレコードが含まれています。
小さなワークシートは範囲を限定したサンプルを提供するため、ヘッダー行はクリーニング範囲外に配置してください。

最初のテストとして、代表的なレコードをいくつか一時シートにコピーするか、ファイルを複製して範囲を短くします(例:)A2:D10。通常のスペース、貼り付けたテキスト、空白セル、数式を含む例を含めて、マクロがそれぞれのケースをどのように処理するかを確認してください。

2. ONLYOFFICEマクロエディタを開きます。

ONLYOFFICE スプレッドシート エディターでスプレッドシートを開き、[表示] → [マクロ]を選択します。マクロ ウィンドウで新しいマクロを作成するか、新しいモジュールを選択して、分かりやすい名前を付けますCleanTextWhitespace。ONLYOFFICE マクロの公式入門ガイドには、このエントリ ポイントと実行制御について説明されています。

ONLYOFFICEスプレッドシートエディターで、[表示]タブが選択され、リボンにマクロコントロールが表示されている状態。
「表示」リボンには、マクロワークスペースを開くための「マクロ」コントロールが含まれています。

エディターの設定でマクロが無効になっている場合は、[設定] → [詳細設定] → [マクロ]を確認してください。ONLYOFFICE には、マクロを無効にする、通知を表示する、または有効にするオプションが記載されています。作成していないブックの場合、1 つのスクリプトを実行するためだけにすべてのマクロをグローバルに有効にしないでください。コードを確認し、組織のポリシーに従ってください。

3. この境界付き、数式対応マクロを貼り付けます

コードをマクロエディタに貼り付けてください。A2:D500実行する前に変更してください。ここで使用されている範囲メソッドについては、ワークシートの GetRange リファレンス、範囲の GetCells リファレンス、およびGetFormula、GetValue、SetValueの API ページに記載されています。

(function () {
    var oSheet = Api.GetActiveSheet();
    var oRange = oSheet.GetRange("A2:D500");
    var nRows = oRange.GetRowsCount();
    var nCols = oRange.GetColumnsCount();

    for (var r = 1; r <= nRows; r++) {
        for (var c = 1; c <= nCols; c++) {
            var oCell = oRange.GetCells(r, c);
            var sFormula = oCell.GetFormula();

            // Do not replace formulas with their displayed results.
            if (sFormula) {
                continue;
            }

            var v = oCell.GetValue();

            // Restrict this cleanup to text constants.
            if (typeof v !== "string") {
                continue;
            }

            var sClean = v
                .replace(/\u00A0/g, " ")
                .replace(/[ \t]+/g, " ")
                .replace(/^[ \t]+|[ \t]+$/g, "");

            // SetValue treats strings beginning with "=" as formulas.
            if (sClean.charAt(0) === "=") {
                continue;
            }

            if (sClean !== v) {
                oCell.SetValue(sClean);
            }
        }
    }
})();
ONLYOFFICEのマクロエディタには、範囲を選択して数式とセル値を読み取るJavaScriptコードが表示されます。
コードペインには、クリーニングマクロで使用される範囲とセル読み取り方法が表示されます。

渡される行と列のカウンターは、GetCells選択された範囲に対する相対値です。API の例では、セルにアクセスするために番号付きの位置を使用しています。マクロはまず各セルの数式を読み取り、数式が存在する場合はスキップします。次に値を読み取り、実際に変更される文字列のみを編集します。SetValue先頭の等号を数式として解釈できるため、トリミング後に等号数式になる文字列もスキップされます。

空白文字の式は、意図的に改行をそのまま残します。大文字小文字、句読点、数値、日付の連番は変更されません。ソースに複数行の注釈、固定幅フィールド、または特殊なスペースを含む識別子が含まれている場合は、広範囲の正規化を適用するのではなく、これらの列を個別にテストしてポリシーを調整してください。

4. 一度実行し、結果を確認する。

マクロエディタからマクロを実行してください。マクロは選択範囲内のセルを更新するため、元のファイルを上書き保存する前に、作業コピーで変更されたテキストを確認してください。範囲の最初と最後の行を含め、数行を元のファイルと比較してください。ヘッダーが変更されていないこと、数式が正しく計算されていること、日付、通貨、IDなどの数値セルが変更されていないことを確認してください。

ONLYOFFICEのスプレッドシートグリッドには、清掃後の確認用に、顧客、都市、ステータスの列が表示されています。
ワークシートを使用して代表的な行を抜き出し、変更されていないコピーと比較してください。

大きなシートの場合は、実行前後に疑わしい空白をフィルタリングまたは検索し、行数を比較してください。このマクロは行の削除、レコードの重複排除、日付の変換、空白の埋めを行わないため、これらのチェックはテキスト値に焦点を当てる必要があります。監査証跡が必要な場合は、ステータスメッセージを任意のセルに書き込むのではなく、別途レビュー列を追加するか、クリーンアップした結果をステージングシートにコピーしてください。

別途決定が必要な一般的な清掃ルール

  • 重複レコード:重複を定義する列を特定し、重複した取引が有効かどうかを判断してから、行を削除します。同じ名前が2つあっても、必ずしも同一人物または同一注文を表すとは限りません。
  • 空白セルと空白行:空のセル、ゼロ、および「N/A」などのテキスト値はそれぞれ異なる意味を持ちます。データルールなしに、これらの値を置き換えたり削除したりしないでください。
  • 日付と数値をテキストとして保存する場合:まず、想定される形式とロケールを選択してください。サンプルでは、​​文字列が03/04/2026地域によって意味が異なるため、これらの値を変換しないようにしています。
  • 先頭のゼロ:識別子を00127テキストとしてインポートします。スプレッドシートに既に数値として保存されている場合、テキストを削除しても欠落したゼロは復元されません。
  • 大文字小文字の正規化:メールアドレスを小文字にしたり、州コードを大文字にしたりすることは特定のフィールドには役立ちますが、名前や製品の説明に適用すると、意図した大文字小文字が失われる可能性があります。

ONLYOFFICE マクロは、繰り返し実行可能なルールを正確に表現でき、コピーでテストできる場合に使用します。マクロシステムは VBA ではなく JavaScript で記述されており、グローバルに利用できるのではなくドキュメントに紐付けられ、ONLYOFFICE マクロ FAQで説明されているように、ファイルシステムやネットワークへの直接アクセスは制限されています。このサンドボックスによって、マクロがエディター外にアクセスできる範囲は制限されますが、マクロはワークブックの内容を変更することは可能です。そのため、実行前にコードを確認し、テストしてください。

繰り返しインポートを行う場合は、スクリプトを管理されたテンプレートまたはドキュメントのコピーに保存し、以下の簡単なチェックリストを使用してください。アクティブなシートを確認し、範囲アドレスを更新し、ヘッダーと数式を除外し、コピーに対して実行し、編集した文字列をスポットチェックし、最終的なワークブックを保存または共有する前に元のワークブックと比較します。

コメントを残す

Microsoft Wordで画像を移動する方法

Microsoft Wordで画像を移動する方法

Wordで画像をドラッグする方法、テキストの折り返しを選択する方法、段落内に画像を保持する方法、ページ上に画像を固定する方法、そして画像が移動しない場合のトラブルシューティング方法を学びましょう。

Excelにチェックボックスを挿入する方法:2つの簡単な方法

Excelにチェックボックスを挿入する方法:2つの簡単な方法

Excelのセル内ツールを使ってチェックボックスを挿入する方法、数式を使ってチェックされた項目の数を数える方法、古いデスクトップ版でリンクされたフォームコントロールを追加する方法を学びましょう。

Excelで文字を自動入力する方法:AからZ、そしてその先へ

Excelで文字を自動入力する方法:AからZ、そしてその先へ

Excelでフィルハンドル関数、SEQUENCE関数、または再利用可能なカスタムリストを使用して、AからZまでのアルファベット、小文字、またはZを超えるラベルを生成します。

Excelで取り消し線を引く方法:ショートカットと手順

Excelで取り消し線を引く方法:ショートカットと手順

Windows、Mac、Web版Excelで取り消し線を引く方法、セルの一部に書式を設定する方法、値を削除せずに行を削除する方法を学びましょう。

Microsoft Accessとは?そのデータベースツールはどのように機能するのか?

Microsoft Accessとは?そのデータベースツールはどのように機能するのか?

Microsoft Accessは、関連レコードの保存、クエリの作成、データ入力フォームの作成、レポートの生成を行うためのWindowsデータベースアプリケーションです。その仕組みと最適な活用シーンについて解説します。

Word 2010でグリッド線の高さと幅を変更する

Word 2010でグリッド線の高さと幅を変更する

Word 2010でグリッド線の高さと幅を調整する方法、表示される線の頻度を変更する方法、および下地となる水平方向と垂直方向の描画グリッドの間隔を設定する方法を学びましょう。

Office Outlook 2010 のインポートとエクスポート: PST ファイルを使用してデータを移動する

Office Outlook 2010 のインポートとエクスポート: PST ファイルを使用してデータを移動する

Outlook 2010にPSTファイルをインポートする方法、またはメール、連絡先、カレンダー、タスクをエクスポートする方法を学びましょう。正しいメニューに従い、フォルダの欠落や重複を避けてください。

Nucleus Kernelを使用してOutlook PSTファイルのパスワードを復元する

Nucleus Kernelを使用してOutlook PSTファイルのパスワードを復元する

Kernelが提供する最新の手順では、忘れてしまったOutlook PSTファイルのパスワードを復元する方法を解説します。正しいファイルの特定方法、バックアップの作成方法、ツールの制限事項の確認方法などが含まれています。

PowerPointスライドにライブWebページを挿入する方法

PowerPointスライドにライブWebページを挿入する方法

LiveWebアドインを使用すると、WebサイトをPowerPointスライドに配置し、サイズや更新動作を設定し、プレゼンテーション前に互換性を確認できます。

Access 2010データベースをフォームで開く方法

Access 2010データベースをフォームで開く方法

Access 2010データベースアプリケーションを、データ入力フォームに直接開くように設定し、オブジェクトリストを非表示にし、メニューを制限し、共有前に設定を確認します。