OfficeScriptsで名言ボットを作ってみた② getActiveWorksheetメソッドでアクティブワークシートを取得する

こんにちは。aliceです。

OfficeScriptsとPowerAutomateで名言ボットを作りました。(OfficeScriptsの使用にはweb版のExcelとライセンスが必要です。)

前回の内容はこちら


こんな感じのExcelを用意します。

画像2

A列:ID(id)

B列:セリフ(word)

C列:誰のセリフ(person)

D列:botを投稿したかどうかの確認列(check)

function main(workbook: ExcelScript.Workbook) :{
    // Your code here
}

ここまでできた!


ちょっと先に進みます。

1 スクリプトを開く

自動化タブからすべてのスクリプト→MyBot

画像2

こっちからでもいけます。

画像3

編集

画像4

開いた🌷

画像5

では書いていきます。

2 アクティブワークシートを取得する(getActiveWorksheetメソッド)

今回はシートが1つなのでアクティブワークシートを取得します。getActiveWorksheetメソッドを使います。

変数sheetにアクティブワークシートを格納。

let sheet = workbook.getActiveWorksheet();

OfficeScriptsも大文字・小文字を気を付けないとエラーになります。

(すっかり忘れていて「getActiveworksheet」と書いたらエラーになった💦)

1文字小文字にしただけなのにこんなことになります。(英語が苦手なので全然わからない😱)

画像6

せっかくなので翻訳

画像7

英語

See line 2, column 7: Office Scripts cannot infer the data type of this variable or inferring it might result in unexpected errors. Please annotate the type of the variable to avoid this error. You can also use the Quick fix option provided in the editor to auto fill the type based on the usage. Quick Fix can be accessed by right clicking on the variable name and selecting Quick Fix link. For more information, please visit https:

日本語訳

2行7列を参照してください。Officeスクリプトはこの変数のデータ型を推測できないか、推測すると予期しないエラーが発生する可能性があります。 このエラーを回避するために、変数のタイプに注釈を付けてください。 エディターで提供されるクイック修正オプションを使用して、使用法に基づいてタイプを自動入力することもできます。 クイックフィックスには、変数名を右クリックして[クイックフィックス]リンクを選択することでアクセスできます。 詳細については、httpsをご覧ください。

書いてあるとおり自動入力すればいいんですけどね。(ついつい書いてしまう…。たまに…。)

画像8

あと、ステートメントの最後にはセミコロンが必要です。(忘れがち)

let sheet = workbook.getActiveWorksheet();

公式リファレンスはこんな感じ。

ブックの作業中のワークシートを取得します


Workbook は、ワークシート、テーブル、範囲などの関連するブック オブジェクトを含む、トップ レベルのオブジェクトだそうなので、

let sheet = workbook.getActiveWorksheet();

ワークブック→アクティブワークシートですね。

やったー、アクティブワークシートがとれた!


ちなみに、自動記録をすると変数名が「selectedsheet」になります。

画像10

長いので「sheet」にしました。


4 今日のまとめ

・アクティブワークシートを取得するときはgetActiveWorksheetを使う

・大文字小文字に気を付ける

・ステートメントの最後にセミコロンを付ける

お疲れさまでした!


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