ONLYOFFICEマクロでスプレッドシートの行や列を非表示にしたり、非表示にしたりする方法

2023年08月09日著者:Denis

大きなデータセットの管理には時間がかかりますね。そこでONLYOFFICEのマクロが輝き、タスクを自動化し、スプレッドシートの可能性を解き放ちます。この記事では、特定の行や列を非表示にしたり、非表示にしなかったりするユーザーフレンドリーなマクロを構築する方法をご紹介します。さらに、ドキュメントのマクロサンプルセクションにも同様のマクロがありますが、このマクロでは、さらに使い勝手を向上させます。

Hide and unhide spreadsheet rows and columns with ONLYOFFICE macro

マクロの構築

まず、ONLYOFFICEスプレッドシートの現在アクティブシートを取得し、それを変数シートに代入します:

const sheet = Api.GetActiveSheet()

次に、アクティブシートのA列(セルA1)からM列(セルM1)までのセルを含む範囲を定義します。この範囲を使って列を操作します:

 const range = sheet.GetRange("A1:M1")

その後、非表示または非表示にする行番号を含む rowsToHide 配列が作成されます。この配列は、行番号を追加したり削除したりしてカスタマイズすることができます:

const rowsToHide = [5, 8, 9, 12, 14, 16, 21, 22, 31, 32, 33]

また、columnsToHide 配列も作成します。この配列には、非表示または非表示にする必要のあるカラム番号が格納されます:

const columnsToHide = [2,4,5,7,8,10,11,13,14,16]

次に、rowsToHide 配列で指定された最初の行の非表示状態を取得します。最初の行が非表示の場合、残りの行と列のSetHidden()プロパティはfalseに設定されます。これにより、選択された行と列の非表示を解除することができます。rowsToHide配列の最初の行が非表示でない場合、SetHidden()プロパティはtrueに設定され、対象となる範囲の非表示が容易になります:

const hidden = sheet.GetRows(rowsToHide[0]).GetHidden()

次にhideUnhideDetails関数を実行します。この関数は、非表示ステータスに基づいて行や列を非表示にしたり、非表示にしたりする役割を担っています。詳しく見てみましょう:

function hideUnhideDetails(hidden) {
        rowsToHide.forEach(row => {
            sheet.GetRows(row).SetHidden(!hidden)
        })

このループは、rowsToHide 配列で指定された各行番号を繰り返し処理し、SetHidden() メソッドを使用して、非表示ステータスの反対の値に基づいてそれぞれの行を非表示または非表示にします。たとえば、hidden が true の場合はその行は非表示になり (!hidden は false)、hidden が false の場合はその行は非表示になります (!hidden は true)。

  columnsToHide.forEach(column => {
            range.GetCols(column).SetHidden(!hidden)
        })
    }

このループは、columnsToHide 配列で指定された各列番号を繰り返し処理し、SetHidden() を使用して列を非表示または非表示にします。

マクロのコード全体は次のとおりです:

(function()
{
    const sheet = Api.GetActiveSheet()
    const range = sheet.GetRange("A1:M1")
    const rowsToHide = [5, 8, 9, 12, 14, 16, 21, 22, 31, 32, 33]
    const columnsToHide = [2,4,5,7,8,10,11,13,14,16]
    const hidden = sheet.GetRows(rowsToHide[0]).GetHidden()
    hideUnhideDetails(hidden)
    // Unhide if hidden, Hide if unhidden
    function hideUnhideDetails(hidden) {
        rowsToHide.forEach(row => {
            sheet.GetRows(row).SetHidden(!hidden)
        })
        columnsToHide.forEach(column => {
            range.GetCols(column).SetHidden(!hidden)
        })
    }
})();

それではマクロを実行し、その動きを見てみましょう!

このマクロが、大規模なデータセットを管理する際の時間と労力を節約し、お仕事に最も関連性の高い情報に集中できるようになることを願っています。マクロを使用することで、ONLYOFFICEのポテンシャルをフルに引き出すことができ、生産性を大幅に向上させることができます。

また、ONLYOFFICEにおけるマクロの可能性を探求し続けてください。ONLYOFFICEマクロをより深く理解することで、タスクの自動化、生産性の向上、ドキュメントのカスタマイズが可能になるでしょう。ご意見やご質問をぜひ私たちと共有してください