晴れときどき雑記

日々の中で残したいこと、まとめておきたいことを書き記すブログ

SharePoint:リストを開いたときに表示されるメニューバーを非表示にしたい

この話は、モダン UI で作ったサイトの話です。
リストやドキュメントライブラリを普通に見る場合、どんなビューでも必ずメニューバーが付いてきます。
ここを隠したい!って時に読むお話です。

先にお断りしておくとすべて隠すことはできません。
また、一律でオフにするとかはできません。SharePoint というか Microsoft はそんなこと想定してないんでしょうかね。
それでも何とか、可能な限り利用できないようにしたいんだ!という場合のための記事です。

f:id:atyuji1024:20200627004625p:plain
リストのメニューバー

権限を用意・設定する

メニューを直接非表示する方法ではありませんが、先にやっておくと後の設定のとこがスムーズに進みます。

カスタマイズしたアクセス許可レベルを作る

アクセス許可レベルは、既定で用意された「閲覧」「編集」などのことです。用意されたものをそのまま使うこともできますが、詳細は変更することもできます。例えば「閲覧」にフルコントロールと同じ許可設定ができたりもします。
しかし、デフォルトに戻すことができないので、例えば閲覧に似た何かを作るみたいな物が欲しい場合は、既定で用意されたアクセス許可レベルは変更せず、コピーして作るのが良いかと思います。
今回は閲覧権限をコピーした閲覧2というアクセス許可レベルを作ります。

  1. サイトの権限管理画面を開き、メニューの「アクセス許可レベル」を開く

    f:id:atyuji1024:20200629235543p:plain
    サイトに対する権限

  2. アクセス許可レベルの一覧が開きます。
    今回、閲覧のカスタマイズした権限が欲しいので「閲覧」を開きます。

    f:id:atyuji1024:20200627015039p:plain
    アクセス許可レベルの画面

  3. 下のほうにある「アクセス許可レベルのコピー」をクリックします。

  4. 名前と権限を編集して保存する。今回は「閲覧2」という名前で、権限は「通知の作成」のみチェックを外して保存します。
    f:id:atyuji1024:20200627020218p:plain
    閲覧2の権限 (抜粋)

リストの権限継承中止と権限設定

まず、権限設定の影響範囲を該当のリストのみとするため「権限の継承を中止」します。
次に閲覧者となるグループかユーザーを追加します。
そして追加したグループかユーザーに、アクセス許可レベルは「閲覧2」を与えまます。
ちなみに権限は既定だと親の権限を継承するようになっています。詳しくは こちらを参照ください。
support.microsoft.com

メニューバーを非表示にする

実際にメニューを非表示にする方法を説明します。

新規を消す・クイック編集を消す

「閲覧」また上で作成した「閲覧2」を設定したユーザーであれば、どちらも非表示となります。
どちらも「アイテムの追加」「アイテムの編集」がついてないためです。

「・・・」を消す

ここは通知に関するメニューが入っています。

f:id:atyuji1024:20200627010943p:plain
・・・の中身

「閲覧2」を設定している場合、この部分は非表示になります。「閲覧2」は「通知の作成」がついてないためです。

SharePoint Online Management Shell をインストールする

自動化と PowerApps を消したい場合、PowerShell が必要となります。
具体的には SharePoint Online Management Shell を使いますので、入れていない場合はこちらから入れましょう。 www.microsoft.com

自動化を消す (PowerShell)

簡単に言えばテナントにつないで、コマンドを1つ実行するだけです。
以下、PowerShell は 5.0 で動作確認しています。
テナント名は test、管理者アカウントは admin という名前の想定で書いていますが、適宜読み替えてください。

Connect-SPOService -Url https://test-admin.sharepoint.com -Credential admin@test.onmicrosoft.com
Set-SPOSite -identity https://test.sharaepoint.com.sites/hoge -DisableFlows Disabled  

ちなみに Disabled の逆は NotDisabled となります。
詳しくはこちらを参照ください。
docs.microsoft.com

PowerApps を消す (PowerShell)

こちらもテナントにつないで、コマンドを1つ実行するだけです。
なおこちらは投稿権限以下なら非表示になりますが、それより強い場合はなぜか非表示にできません。どうして・・・。

Connect-SPOService -Url https://test-admin.sharepoint.com -Credential admin@test.onmicrosoft.com
Set-SPOSite -identity https://test.sharaepoint.com.sites/hoge -DisableAppViews Disabled 

Excel にエクスポートを消す

できません!方法ありません!
Service Request して確認しましたが、方法はないとのことでした。。。
要望している方はいらっしゃるので、よければ1票入れましょう。

https://sharepoint.uservoice.com/forums/329214-sites-and-collaboration/suggestions/39240856-add-ability-to-hide-export-to-excel-while-granti:embed:cite(https://sharepoint.uservoice.com/forums/329214-sites-and-collaboration/suggestions/39240856-add-ability-to-hide-export-to-excel-while-granti:embed:cite)

番外編:リスト Web パーツだとあっさり非表示にできる

リストのメニューバー自体は完全に非表示にはできません。。。
しかし、リスト Web パーツを使うことで簡単にメニューを非表示にすることができます。
ページにリストの Web パーツを貼りリストを設定した後、Web パーツの編集を開き、「コマンドバーを表示しない」に変更して適用すれば完了です。

f:id:atyuji1024:20200630005315p:plain
リスト Web パーツの編集で「コマンドバーを表示しない」(適用前なのでメニューはまだ見えています)

おわりに

リストを直接開かせる必要がない場合、リストのメニュー非表示にこだわらず Web パーツを使う方法を使うのが良いと思います。
非常に簡単ですし、全部非表示にすることができます。
リストを直接開かせる方針であれば、上に示した方法を参考にしてください。