SharePoint 「お知らせ」リストの「有効期限」列の利用および非表示方法

SharePoint2007で運営に携わっていた頃はリストと言えばお知らせリストを使っていました。(カスタムリストはほとんど利用していませんでした。)リストを通達・連絡用として利用するケースが多く、パッと作成してすぐ使うにはお知らせリストが最適で、またSharePoint2007の頃は、リストで設定したメールアドレスにメールを送信すると、そのままリストに投稿される受信メール機能があり、これはお知らせリスト固有の機能で重宝していたからです。

ただし、お知らせリストには一点邪魔な存在がありました。それが「有効期限」列です。

こんな列があれば、普通は有効期限列に日付を入れたら、その日が過ぎるとアイテムは削除されると思いますよね。それが何も起きないんですよね。ただ日付の列があるだけで、有効期限列単体では何の機能もないんです。SharePointを運営していると、「有効期限が動作しません」という問い合わせを多く受けました。説明をすると「え?あるのに何も機能しない?なにそれ…」的な腑に落ちない感じに返されてしまいますが、腑に落ちないのもごもっともだと思います。

▼有効期限列を利用する場合の一例ですが、有効期限列を利用して情報管理ポリシーの保持を設定したり、

▼有効期限列を利用してビューのフィルターを利用するなど、

有効期限列+他の機能の組み合わせで利用できます。

※ちなみにビューのフィルターを利用する方法に関しては落とし穴がありますが、話しが長くなってしまうので、それは別の機会にトラブル事例として紹介できればと思います。

一例として有効期限列を活用する方法を紹介しましたが、お知らせリストを運営する際に有効期限なんて不要な場合もあり、ではこの思わせぶりなこの列を削除してしまいたいですよね。でも…この列、削除できないんですよね。これ本当に厄介です。

▼よく見ると「OK」「キャンセル」はあっても、他の列設定のように「削除」ボタンがないんです。

 

ただ、ちょっと設定をする事で、削除ではないのですが非表示にする事は可能です。普段あまり使わないコンテンツタイプを利用します。

▼お知らせリストの詳細設定でコンテンツタイプの管理を「はい」

お知らせリストの設定の全般設定の下にコンテンツ タイプというセクションが表示されるので、「お知らせ」コンテンツ タイプをクリック。リスト コンテンツ タイプの設定の列セクションの「有効期限」をクリック。

▼列設定で「非表示」を選択。

▼これでお知らせリストで有効期限列を非表示にできます。

最初からカスタムリストを使って通達・連絡用リストを作成すれば良いのですが、ワケあって有効期限は不要だがお知らせリストを使いたかったり、すでにお知らせリストで運営されていて有効期限列が邪魔だなぁと考えていた場合などは、この方法を検討してみてはいかがでしょうか。

SharePoint カスタムリストorお知らせリスト

SharePointのアプリは大別するとリストとライブラリの2種類ですね。で、色々な種類のリストやライブラリがあるわけですが、リストに関しては、いわゆる通達や連絡など掲示板的な利用目的の場合、カスタムリストを使うべきか?お知らせリストを使うべきか?というところで迷う事があると思います。

僕の場合はずっとお知らせリストを使っていました。理由は受信メール機能です。

オンプレのSharePoint2007を長いこと使っていたのですが、オンプレのSharePointにはメールでアイテムを投稿できる受信メール機能があり、これはお知らせリストだけの機能でカスタムリストには加えることのできない機能でした。
この機能、メールでアイテムを投稿できると知ると結構使う人が多かったんです。例えばメーリングリストのtoの中に受信メール用アドレスを突っ込めば、メールのバックナンバーが自然に作れるような使い方とか。
後で使いたいと言われた時に即対応できるようにお知らせリストばかりを使っていて、カスタムリストはほとんど使っていませんでした。

つい最近まで知らなかったのが、この受信メール機能はオンプレだけの機能で、SharePoint Onlineでは使えないようですね。お知らせリストにこだわる理由がなくなりました。

逆にお知らせリストが微妙なのが「有効期限」列の存在があります。カスタムリストはデフォルトでタイトル列のみですが(「更新者」列などは除いて)、お知らせリストには「本文」列と「有効期限」列がリスト作成時にすでに存在します。「本文」は大抵利用する列なので問題ないとして、「有効期限」列ですよ。
この「有効期限」列は、非常に微妙なんですよね。普通に考えたらここに日付を入れたら、期限が切れたアイテムは削除されるのかな?と思うじゃないですか。でもいつまで経っても削除されないんですよね。この列はただの日付を入力する列なんですよ。特別なにかアクションがあるわけじゃないんです。どこかで聞いた話では、有効期限列は、この列を利用して、例えばビューのフィルターで非表示にするなどご自由にお使いください的な意味だとか。もちろん情報管理ポリシーで設定すれば期限切れで削除したりもできますが。

「有効期限」列の厄介なのはこの列を削除できない事。
02
列の編集に削除ボタンがないんですよ。有効期限列があればユーザーは有効期限があると思うし、ここに日付を追加してしまうので、この列が機能していないのに存在するのは良くないですよね。

対処法はあります。リストの詳細設定でコンテンツタイプの管理を許可して、お知らせコンテンツタイプの設定から有効期限列を「非表示」にすれば、削除はされないけど、削除されたようなものにはなります。

▼お知らせコンテンツタイプの設定から有効期限を非表示に
03

▼有効期限列は削除はされないけど非表示になります。投稿画面で非表示になっているということは、利用されないので削除みたいなものかと思います。
04
とはいえ、いちいちこんな設定をするのは面倒ですよね。

なので、オンプレで受信メール機能が利用できる環境なら、上述のメリット・デメリットを考慮して使い分ける必要がありますが、SharePoint Onlineであれば、個人的には何も考えずにカスタムリストから作る事になるかな。