見出し画像

OfficeScripts | シートの表示管理

こんにちは。ふらです。今日はOfficeScriptsを使ってシートの表示状態を確認する方法についてお話していきたいと思います。


シートの表示を取得、変更する

特定の条件下でシートを非表示にしたり、表示に戻したりしたい場合があります。そんな時には下記のコードを使う事でシートの表示状況を管理することができます。

function main(workbook: ExcelScript.Workbook) {

    //シートオブジェクトを変数に格納
    let sh: ExcelScript.Worksheet = workbook.getWorksheet("A");
    //シートの表示状態を確認する
    console.log(sh.getVisibility());

    //シートを非表示にする
    sh.setVisibility(ExcelScript.SheetVisibility.hidden);
  
   //シートを完全に非表示にする
    sh.setVisibility(ExcelScript.SheetVisibility.veryHidden);

    //シートを表示にする
    sh.setVisibility(ExcelScript.SheetVisibility.visible);

    //全てのシートを表示する
    workbook.getWorksheets().forEach((worksheet) => {
        worksheet.setVisibility(ExcelScript.SheetVisibility.visible);
    });
  
   //シートが非表示かどうか判定する
    if (sh.getVisibility() == ExcelScript.SheetVisibility.hidden){
        console.log('シートは非表示です');
    }

    //シートが表示かどうか判定する
    if (sh.getVisibility() == ExcelScript.SheetVisibility.visible) {
        console.log('シートは表示です');
    }

}

シートの表示状態を確認する

getVisibility() メソッドを使ってシートの表示状態を確認することができます。シートが非表示の時はVisibleを返して、シートが表示のときはHiddenを返してくれます。

//シートオブジェクトを変数に格納
let sh: ExcelScript.Worksheet = workbook.getWorksheet("A");
//シートの表示状態を確認する
console.log(sh.getVisibility());

シートを非表示にする

シートを非表示にするにはsetVisibility()メソッドを利用します。
引数にExcelScript.SheetVisibility.hiddenを設定することで非表示にすることができます。

//シートを非表示にする
sh.setVisibility(ExcelScript.SheetVisibility.hidden);

シートを完全に非表示にする

シートを完全に非表示にするにはsetVisibility()メソッドを利用します。
引数にExcelScript.SheetVisibility.veryHiddenを設定することで完全に非表示にすることができます。

このコードを使う事で、非表示になったシートはExcelUIからは見えなくなり、操作できなくなります。再度表示するには後述のvisibleを利用して下さい。

//シートを完全に非表示にする
sh.setVisibility(ExcelScript.SheetVisibility.veryHidden);

シートを表示にする

シートを表示にするにはsetVisibility()メソッドを利用します。引数にExcelScript.SheetVisibility.visibleを設定することで表示にすることができます。hidden、veryHiddenで完全非表示にしたものもこのコードで表示にできます。

//シートを表示にする
sh.setVisibility(ExcelScript.SheetVisibility.visible);

全てのシートを表示する

シートを全て表示状態にするには下記のコードを使います。
ワークブック内の全てのシートを取得してforEachを使って1つずつ
シートを取得します。それぞれのシートに対して表示する処理を
行うことで、全てを表示にしています。

//全てのシートを表示する
workbook.getWorksheets().forEach((worksheet) => {
  worksheet.setVisibility(ExcelScript.SheetVisibility.visible);
});

シートの表示状態を判定する

ExcelScript.SheetVisibility.hidden または ExcelScript.SheetVisibility.visible
を使って、sh.getVisibility()と比較することでシートの状態を判定することができます。

//シートが非表示かどうか判定する
if (sh.getVisibility() == ExcelScript.SheetVisibility.hidden){
  console.log('シートは非表示です');
}

//シートが表示かどうか判定する
if (sh.getVisibility() == ExcelScript.SheetVisibility.visible) {
  console.log('シートは表示です');
}

#OfficeScripts #Officeスクリプト #プログラミング #自動化 #業務効率化 #エクセル #M365 #ExcelOnline #osts

この記事が気に入ったらサポートをしてみませんか?