Office ScriptsでSharePointライブラリからファイルを読み込む方法|Excel Online自動化入門
生徒
「Office ScriptsでSharePointに保存してあるExcelファイルを読み込んで、自動処理したいです。どうやればいいんですか?」
先生
「SharePointライブラリにあるExcelファイルは、Excel Onlineで開いてからOffice Scriptsを実行します。クラウド上のファイルを直接操作できるのがポイントです。」
生徒
「パソコンに保存しなくてもいいんですか?」
先生
「はい、不要です。OneDriveやSharePoint上のファイルをそのまま自動化できます。それでは手順を順番に見ていきましょう。」
1. Office ScriptsとSharePointライブラリとは?
Office Scriptsとは、Excel Onlineで使える自動化機能です。Excelの操作をコードで書き、ボタン一つで繰り返し作業を実行できます。毎日の集計作業やデータ整理を自動化できるため、業務効率化や時短にとても役立ちます。
SharePointライブラリとは、会社やチームでファイルを共有するためのクラウド保存場所です。インターネット上の保管庫のようなもので、複数人で同じExcelファイルを安全に管理できます。
Office ScriptsとSharePointを組み合わせることで、クラウド上のExcelファイルを直接読み込み、自動処理できるようになります。これにより、ダウンロードやメール添付の手間が不要になります。
2. SharePointライブラリからExcelファイルを開く手順
まずはSharePointライブラリからExcelファイルを開きます。難しそうに見えますが、操作はとても簡単です。
- Microsoft 365にログインする
- SharePointサイトを開く
- ドキュメントライブラリを選択する
- 目的のExcelファイルをクリックする
- ブラウザ版Excelで開く
重要なのは「ブラウザ版Excel」で開くことです。Office ScriptsはExcel Onlineで動作するため、デスクトップ版では実行できません。
3. 読み込んだファイルのデータを取得する基本コード
SharePointライブラリからExcelファイルを開いたら、「自動化」タブをクリックしてOffice Scriptsを作成します。次のコードは、シートのA1セルの値を読み込むシンプルな例です。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const value = sheet.getRange("A1").getValue();
console.log(value);
}
getValueという命令は、セルの中身を取得するという意味です。console.logはログ出力で、Power Automateなどと連携する場合に値を確認できます。
(例)売上合計
4. SharePoint上の表データをまとめて読み込む方法
次は、複数のセルをまとめて読み込む方法です。業務では表形式のデータを扱うことが多いため、この方法は非常に重要です。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const range = sheet.getRange("A1:C5");
const values = range.getValues();
console.log(values);
}
getValuesは複数セルの値を二次元配列として取得します。二次元配列とは、行と列の形でデータが並んでいる構造のことです。Excelの表そのものと考えると理解しやすいです。
5. 特定のシートを指定して読み込む方法
SharePointライブラリ内のExcelファイルに複数のシートがある場合、シート名を指定して読み込みます。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getWorksheet("売上データ");
const total = sheet.getRange("B2").getValue();
console.log(total);
}
getWorksheetはシート名を指定して取得する命令です。正確なシート名を書く必要があります。スペースや全角半角の違いにも注意しましょう。
6. 条件付きでデータを読み込む応用例
実務では条件に合うデータだけを読み込むこともあります。次は、A列が「完了」の行を確認する簡単な例です。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const range = sheet.getRange("A1:A10");
const values = range.getValues();
for (let i = 0; i < values.length; i++) {
if (values[i][0] === "完了") {
console.log("完了データあり");
}
}
}
for文は繰り返し処理です。同じ作業を順番に実行します。条件分岐を組み合わせることで、SharePoint上のExcelデータを自動チェックできます。
7. Office ScriptsとPower Automate連携でさらに自動化
Office ScriptsはPower Automateと連携できます。SharePointライブラリにファイルが保存されたタイミングで自動実行することも可能です。
例えば、毎日アップロードされる売上ファイルを自動で読み込み、データを集計し、別ファイルに保存する仕組みも作れます。これにより手作業のミス防止や業務効率化が実現します。
クラウド環境で動くため、パソコンの電源が入っていなくても自動処理できます。これがOffice ScriptsとSharePointを組み合わせる最大のメリットです。
8. 初心者がつまずきやすいポイント
よくある間違いは、デスクトップ版Excelでスクリプトを実行しようとすることです。必ずブラウザ版Excelで開いてください。
また、シート名の入力ミスやセル範囲の指定ミスも多いです。まずは小さな範囲から試し、動作確認しながら進めましょう。
Office Scriptsは難しそうに見えますが、実際はExcel操作を文章で書いているだけです。セルを選ぶ、値を読む、という動作をコードで表現しているだけなので、少しずつ慣れていけば必ず理解できます。
まとめ
Office ScriptsでSharePointライブラリに保存されたExcelファイルを読み込む方法について解説してきました。重要なポイントは、クラウド上のExcelファイルをブラウザ版Excelで開き、そのまま自動処理できるという点です。これにより、ファイルをダウンロードしてから処理する必要がなくなり、業務効率化や作業時間短縮につながります。
Office Scriptsは、Excel Online上で動作する自動化機能です。セルの値を取得する、表データをまとめて読み込む、特定のシートを指定する、条件に一致したデータだけを処理する、といった操作をコードで記述できます。特にgetRange、getValue、getValues、getWorksheetといった基本メソッドは、Excel自動化において頻繁に使用されます。
SharePointライブラリと組み合わせることで、チームで共有しているExcelファイルを直接操作できるようになります。毎日の売上集計、在庫管理データの確認、進捗管理表のチェックなど、繰り返し発生する定型業務を自動化できます。クラウド環境で動作するため、パソコンを起動していなくても処理が実行できる点も大きな魅力です。
また、Power Automateと連携することで、SharePointにファイルがアップロードされたタイミングでOffice Scriptsを自動実行することも可能です。これにより、Excel Online自動化の仕組みをさらに発展させることができます。業務改善、作業効率向上、人的ミス削減といった効果が期待できます。
初心者の方は、まずはA1セルの値を取得するようなシンプルなコードから始めるのがおすすめです。小さな成功体験を積み重ねながら、徐々に表全体の読み込みや条件分岐処理へとステップアップしていきましょう。Office ScriptsとSharePointを活用したExcel Online自動化は、これからのクラウド時代に欠かせないスキルの一つです。
サンプルプログラム振り返り
ここで、SharePointライブラリ上のExcelファイルから特定シートのデータを読み込み、条件に合う行を確認するコードを改めて整理します。基本構文をしっかり理解することが、実務での応用につながります。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getWorksheet("売上データ");
const range = sheet.getRange("A1:C10");
const values = range.getValues();
for (let i = 0; i < values.length; i++) {
if (values[i][0] === "完了") {
console.log("完了行を確認しました");
}
}
}
このコードでは、シート名を指定して取得し、指定範囲のデータを二次元配列として読み込んでいます。その後、for文で繰り返し処理を行い、条件分岐で特定の値をチェックしています。Excel操作を文章のように書けることが、Office Scriptsの分かりやすさの特徴です。
完了行を確認しました
生徒
「Office ScriptsでSharePointライブラリのExcelファイルを直接読み込めるというのが一番のポイントですね。ダウンロード不要なのが便利です。」
先生
「その通りです。Excel Onlineで開けば、クラウド上のデータをそのまま操作できます。これがクラウド自動化の強みです。」
生徒
「getRangeやgetValuesで表データを取得して、for文と条件分岐でチェックする流れも理解できました。」
先生
「良い理解です。まずは小さな範囲から試し、徐々に大きな業務処理へ広げていきましょう。Office ScriptsとSharePointを組み合わせれば、Excel業務は大きく効率化できます。」
生徒
「Power Automateと連携すれば、さらに自動実行までできるんですね。業務改善に役立ちそうです。」
先生
「その通りです。Excel Online自動化、SharePoint連携、条件分岐処理、この三つを押さえれば実務でも十分活用できます。今日学んだ基礎をしっかり復習しておきましょう。」