Teams入門の勢いで覚えたいSharePoint の使い方 その1.リスト

#0. はじめに
[前回の記事](https://qiita.com/y-hy-h/items/a2ad803d3723dd34ee9c)にあるようにTeamsを使い始めたなら、SharePointを覚えといた方が良いです。そしてSharePointを覚えるなら、リストとライブラリを覚えてほしいです。ということで、まずはリストについて説明します。

#1. SharePointリストとは？

SharePointリストとは、その名の通りデータをリスト化したもので、Excelのテーブルのようなものです。

Excelテーブルと比較すると、SharePointリストはより確実なデータ管理が可能なうえ、自動化を行うにも進めやすい土台となります。（自動化については、Power Automateで説明。なお、スキルとリソースのあるヒトには、CDSやSQLサーバなどの方が良いので、そちらを使ってください。）

データ管理のあり方としておすすめしたいのは、SharePointリストにデータを登録して、Excel（またはAccess）でそれを参照するという形です。

早速SharePointリストを作成してみましょう。
今回の素材は、こちらです。架空の従業員リストをExcelテーブルとして持っています。
![ExcelTable.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144777/5387c782-dea2-c6d2-4560-184136d2d974.png)
[疑似個人情報データ生成サービス](https://hogehoge.tk/personal/)

このExcelでのデータ管理には、いくつかの課題がありました。例えば、

　・異動時の所属事業所変更履歴がわからない。
​​​​​​​　・誰が、いつ、どの部分を変更したか、わからない。
　・誤操作で、行またはファイル自体が消されたことがある。
　・他のヒトが開いているときに編集出来ない。

といったことです。この問題を改善する為、SharePointリストを作成してExcelデータを移行するのが今回の目標です。完成形は、こちらです。
![Done.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144777/995ec36c-6353-a7a4-b259-97e94d27c01e.png)

SharePointリストの作成方法は、2種類あります。

　A) SharePointサイトから
　B) Excelから

A）のやり方は、いちいち列を追加するのが面倒なのですが、操作の意味を理解するのに役立ちます。
~~Excelからのインポートについては改良機能が、執筆時点の数か月以内にリリース予定となっています。これがリリースされたら、説明を更新します。~~
(Excelインポート機能リリースされたので、2020年6月に内容更新。)

#2. SharePointサイトからリストを作成する

##a. リストの作成
左メニューから、**ホーム**をクリック　＞　上部メニューの**新規**ボタンから**リスト**をクリック
![CreateAList.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144777/154e5b6c-5bb6-3c26-8a68-e7c952e19c6d.png)
すると、右側にリストの作成画面が出ます。
ここで、リストの名前、説明を入力し、作成ボタンをクリックします。
ここでは、リストの名前をEmployeeListとしています。
![CreateAList2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144777/83f59473-1d7f-add6-ac61-e264ab57e3a3.png)

左側メニューにEmployeeListが出来ました。これをクリックすると、空のリスト画面が表示されます。このリストに、列を追加していきます。
![BlankList.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144777/9442ff6c-91ca-8773-c779-0e41b60b8930.png)

##b. 列名の変更
この時点で空のEmployeeListには、**タイトル**という列だけ存在しています。
**タイトル**列は、リスト作成時に自動追加される入力必須のテキスト列です。分かりにくいですが、例えるならファイルには何かしらファイル名が必要なように、リストにはタイトルが必要とされています。

タイトルという列名では何のことだか分からないので、列名を変更します。やり方は、
　タイトル右の下矢印クリック　＞　**列の設定**　＞　**名前の変更**
です。今回は、列名を**従業員番号**に変更してください。
このように、タイトルからの変更先は、入力必須の列にするのがポイントです。
![ChangeName.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144777/da483891-e32f-4bd3-5f4f-a941ed00794e.png)

##c. 列の追加
続いて他の列を追加していきます。
**列の追加**右横の下矢印から、**一行テキスト**をクリックします。
![AddCol.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144777/c8eb66a0-6151-f188-ae95-7127b90bca96.png)

右側に**列の作成**画面が出てくるので、列名や説明を入力して、保存をクリックします。
![CreateCol.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144777/e879dd52-4f5d-6ddd-6eb7-3daf22c2cc54.png)

同じやり方で、どんどん列を追加していきましょう。

| 列名       | 列の種類 |
|:-----------------|:------------------:|
|氏名|一行テキスト|
|氏名（カタカナ）|一行テキスト |
|事業所 |一行テキスト |
|**性別**|**選択肢**|
| 電話番号|一行テキスト|
| メールアドレス|一行テキスト|
| 郵便番号|一行テキスト|
| **住所**|**複数行テキスト**|
| 生年月日|日付|
| **年齢**|**その他**|

**! Point !**
今回は列名を日本語にしましたが、実際には、面倒でも列名を英語にした方が良いです。一度列名を英語で作ってから、あとで日本語に変える分には一向に構わないんですが・・・。詳しくは、「SharePoint 列名 日本語」などでググってみてください。

さてこれらの列のうち、**性別**と**住所**、**年齢**について補足します。
まず**性別**です。入力時にプルダウンリストで選択肢から選ばせたい場合、列の種類を**選択肢**としましょう。

列の作成画面は図のようになりますので、選択肢ボックスに表示させたい値を入力します。
![Choice.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144777/717f5247-ae3c-4728-3166-a75cc4aed7f3.png)

次は**住所**ですが、一行テキストは最大255文字なので、列がそれを超えそうな場合は、**複数行テキスト**を選んでください。（あとで一行テキストから複数行テキストに変更することも可能です。）

最後に**年齢**です。年齢は生年月日からの計算で出したいですが、その場合列の種類で**その他**を選びます。
すると、図のような画面が開くので、列名に年齢と入力し、列の種類は**集計値**を選びます。
![CalcField.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144777/9d80c06f-7ff0-f50e-e48b-c49bcf467838.png)
さらにその下の**列の追加設定**で、計算式を入力します。
数式ボックスには、
　**= DATEDIF([生年月日], TODAY(), "Y")**
と入力し、
**この式から返されるデータの種類**には**数値**を選んで、右下のOKボタンを押します。これで、元のEmployeeList画面に戻るはずですが、エラー画面になった場合は、数式の入力が間違っています。戻って見直してみましょう。

このように、SharePointの**集計値列**では、Excelとほとんど同じ数式を利用することが出来ます。SharePoint関数の一覧は、[こちら](https://support.office.com/ja-jp/article/sharepoint-%E3%83%AA%E3%82%B9%E3%83%88%E3%81%AE%E4%B8%80%E8%88%AC%E7%9A%84%E3%81%AA%E6%95%B0%E5%BC%8F%E3%81%AE%E4%BE%8B-d81f5f21-2b4e-45ce-b170-bf7ebf6988b3)をご参照ください。

#3. データの登録・更新・削除・復元

##a. データを一件登録する
EmployeeListは出来上がったでしょうか？出来上がったら、データを入力してみましょう。まず一件データを追加するには、上部メニューの新規をクリックします。
![AddNew.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144777/f3295764-f7b8-134e-1e6a-70139b8d4517.png)

**！ Point ！**　SharePointでは一行一行のデータのことを、**アイテム**と呼んでいます。画面操作でもたびたびこの用語が出てくるので、覚えておきましょう。

すると右側に入力画面が出てくるので、必要項目を入力して**保存**をクリックします。
![AddNew2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144777/58fa9daa-9295-f0f4-53c5-4620e256385e.png)

##b. 登録したデータを更新・削除・復元する
データの更新や削除をする場合は、対象データを選んで、上部メニューの**編集**や**削除**をクリックします。
また、削除したデータを**復元**したい場合は、ごみ箱から行ってください。

**！ Point ！** 登録・編集・削除・復元といったこれら操作のすべては、アイテム単位（行単位）で行われます。つまり、他のヒトが同時にEmployeeListの他の行で作業していても、邪魔になることがありません。

##c. クイック編集
Excelのように複数行まとめてコピペを行いたい場合は、**クイック編集**を使います。

上部メニューの**クイック編集**をクリックしてみましょう。すると、Excelのようなセル風の枠線が表示されるので、Excelから従業員番号から生年月日までをコピーし、クイック編集画面でも同じ列を選んでCtrl+Vでペーストします。その後、**クイック編集の終了**をクリックします。
Excelに比べると動作がややカクカクしていますが、複数行を登録・変更する場合に便利です。
![QuickEdit3.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144777/34acada2-e643-b89f-9831-a5a14bd84da9.gif)

#4. バージョン設定・通知・Excelにエクスポート

##a. バージョン設定
SharePointでは、ファイルは自動でバージョン保持が行われますが、リストはバージョン無しの設定になっています。EmployeeListでは、変更履歴も持ちたいので、これをバージョン保持する設定に変えてみましょう。
　　画面右上端の**歯車アイコン**をクリック　＞　**リストの設定**をクリック
![Gear.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144777/cdca9c0d-282e-3b5d-b2ff-33def49c788b.png)

リストの設定画面が出ます。
　　**全般設定**の**バージョン設定**を選びます。
![Version.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144777/910456a5-c1f1-64c7-0c9a-ffcfe55d5245.png)

バージョン設定画面が出てくるので、**アイテムのバージョン履歴**で
　「このリストのアイテムを編集するたびにバージョンを作成する」を**はい**に変更
　「次の数のバージョンを保存する」に**100**と入力して右下OKボタンをクリックします。
（仕様上、最大バージョン保持数は50000までOKだそうですが、無闇に増やすのはやめておきましょう。）
![Version2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144777/5f5bef55-2a1e-4a49-fc9c-0ba7ac08f7a0.png)

これで、試しに既存アイテムの編集を行ったのち、バージョン履歴を見てみましょう。
この例では、バージョン1から2に変更した際、事業所が愛知から神奈川に変更になったことが分かります。
![VerChange.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144777/0d88b164-fe55-794d-caeb-eaba71b911a3.png)

##b. 通知
[前回説明した](https://qiita.com/y-hy-h/items/a2ad803d3723dd34ee9c#b-%E9%80%9A%E7%9F%A5)**通知**機能を設定すると、上記のバージョン履歴画面を開かずともメールで変更が通知されるようになるので、便利です。

##c. Excelにエクスポート
SharePointリストは、[前回説明した](https://qiita.com/y-hy-h/items/a2ad803d3723dd34ee9c#a-excel%E3%81%AB%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88)**Excelにエクスポート**も出来ます。

一度Excelにエクスポートしてしまえば、ピボットテーブルで集計したり、Power Queryでさらに加工したり、といったことも出来、その後はクリック一つで最新情報が反映されるので便利です。

**！ Point ！**　エクスポートしたExcelファイルの内容を編集しても、元のSharePointリストは変更されません。編集は、SharePointリストのクイック編集で行います。混同しないようにしましょう。

**！ Point ！**　[前回説明した](https://qiita.com/y-hy-h/items/a2ad803d3723dd34ee9c#d-%E5%85%B1%E6%9C%89)**共有**は、ファイルだけでなくリストのアイテムごとに行うことも出来ます。ですから例えば、EmployeeListを一行ごとにその従業員のみと共有する、という事も可能です。この場合、リストアイテムを共有された従業員は、自分の行しか見られない；一方リストの作成者及びSharePointサイトのTeamsメンバーは、すべての行を見ることが出来る、という状態になります。

#5. ExcelからSharePointリストを作成する

冒頭1で説明したように、SharePoint上で一列ずつ作らなくても、実はExcelからリストを作成することも可能です。あらかじめExcel側でデータをテーブル化したうえで、
　**サイトコンテンツ**　＞　**リスト**　
をクリックします。
![SiteContentsToList.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144777/b2cb08c1-d107-6bce-b4de-fff8aef2a52d.png)


次の画面が出たら、
　**Excelから**　＞　**ファイルをアップロードする**　

をクリックし、アップロードしたいExcelファイルを選択します。

もしくは、既にSharePointにファイルがある場合は、画面下部からファイルを探して選択してください。

**「ファイルをアップロードする」はファイル読み込みに時間がかかるので、予めリスト化したいファイルをSharePointに保存しておいた方が良さそうです。**

​​​​​​​ファイルを選んだら、画面右下の**次へ**をクリックします。
![ExcelFileUpload.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144777/e9c1a58e-318b-08e3-cf4e-f953fc654774.png)

選択したファイルが読み込まれます。この画面でどのようなリストにするか、調整します。

　SharePoint上でのリスト名を入力　
　＞　対象ファイルのなかから、リスト化したいテーブルを選択
　＞　各列のデータ型を必要に応じて修正
　＞　作成をクリック

ここでは、リスト名をSalesとしており、Date列のデータ型を日付と時刻に変更したうえで、作成をクリックしています。
![SalesTable.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144777/08b77745-9b7f-46e0-3484-37dff4204ff9.png)


**！　Point　！**　Excelだけではなく、Accessからも同じようにテーブルをSharePointリストへエクスポートすることが出来ます。Accessが得意な方には、こちらの方が便利かもしれません。（[参考リンク](https://support.microsoft.com/en-us/office/import-link-or-move-data-to-sharepoint-65bf7b03-74bf-445c-959a-24b7a401ddee?omkt=en-us&ui=en-us&rs=en-us&ad=us#movewizard)）

#6. Teamsタブにリストを追加する
これでSharePointリストは完成しましたが、いちいちWebブラウザで開くのがややこしいと感じるかもしれません。その場合は、Teamsのタブに追加すると良いでしょう。
やり方は、Teamsでリストを表示させたいチャネルを選んで、上部のプラスボタンをクリックします。
![AddTab.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144777/f1515c8e-8b4a-5d51-69c9-f5157d6ad0a9.png)

タブに追加するアプリを選ぶ画面が出てきます。
SharePointをクリックします。
![ChooseApp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144777/78b676f8-8457-1da2-ed3b-9ba84db32105.png)

SharePoint上にあるリストの一覧が表示されるので、選んで保存をクリックします。
これで、Teamsからリストに素早くアクセス出来るようになります。
![List.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144777/6f174e57-aa35-2581-1636-e245058dc46b.png)