SharePoint :リストのアイテムに画像を挿入させるもう一つの方法(宛先ライブラリの権限が不足している場合)

SharePoint で組織の通達・連絡をお知らせリストなどリストを利用している場合、中には画像を本文内に表示させたい場合もよく出てくると思います。その場合、通常の方法ならリッチテキストエディタ内で画像の挿入を行うのですが、場合によってそれができない環境もあります。その場合のもう一つの方法の紹介をします。

まずは通常の画像の挿入方法のおさらい。

▼リッチテキストエディタのリボンタブ「挿入」→「画像」→「コンピューターから」

▼ダイアログで画像ファイルを選択

参考までに、宛先ライブラリはデフォルトで「サイトのリソース ファイル」が選択されていますが、ここは変更が可能です。 過去記事を以下に紹介します。

SharePoint : サイトの開発・カスタマイズ用ファイルを「サイトのリソース ファイル」ライブラリに保管するのは微妙かも

▼リストのアイテム内に画像が挿入されます

▼リッチテキストエディタの編集を終えるとアイテム編集パネルへ。表示されています。

このようにしてリストのアイテムの本文に画像を表示することができますが、この挿入方法は(ユーザーは意識をせずに)内部的には以下の操作がされています。

  1. 宛先ライブラリで指定したライブラリ(サイトのリソース ライブラリ)に画像をアップロード。
  2. アップロードされた画像のURLを指定してリストのアイテムの本文に画像を挿入。

▼なのでこのように「サイトのリソース ライブラリ」に画像がアップロードされています。

過去、SharePoint 2007 ではリッチテキストエディタからこのように画像をアップロードできなかったので、わざわざ先にライブラリに画像をアップロードした後に、画像ファイルのURLをコピーして、リッチテキストエディタに貼り付けたものです。 SharePoint 2010 からは、このようにそれを意識せずにリストのリッチテキストエディタ内で操作が完結できるようになって便利だなと思ったものです。

ただし、上述の通り宛先ライブラリに画像をアップロードするという操作が内部的にあるが故に、この方法では画像を挿入できない場合があります。その原因はライブラリのアクセス権限です。

特に社内ポータルサイトとなるとアクセス権限が厳しく設定されている場合が多いです。サイト管理者以外は基本的に閲覧のみで、投稿が必要なリストのみ必要なユーザーに投稿権限を付与する、など。

その場合、サイト全体は閲覧権限で、通達・連絡用リストのみ投稿権限が付与されたユーザーで、上述の通常の画像挿入方法を試してみると、できない事がわかります。

▼リッチテキストエディタのリボンタブ「挿入」→「画像」→「コンピューターから」をクリックすると、このようにダイアログ内でエラーが。

「予期しないエラーが発生しました。」と記載がありますが、つまりこれはこのサイト内でアップロードできる権限のあるライブラリが一つもないという事です。

過去にこのような事例は経験してきました。「サイトのリソース ライブラリ」にも投稿権限を付与してあげれば良いのですが、環境によってはルールでNGとしている場合もあります。 画像の挿入はあきらめてもらっているか、なんと別途イントラサイト内にサーバーを立てて、その中に画像をアップしているケースも!

そんな場合に、もう一つの画像表示方法があります。特に目新しい方法でもなくカスタマイズも必要ないです。「添付ファイル」を利用する方法です。

▼まず添付ファイルに表示させたい画像を追加して、投稿してしまいます。

※この時点で本文は画像挿入以外の文章入力などを済ませ、その他の列の設定も済ませた状態がベストです。

▼投稿後に添付ファイルを表示し、URLをコピーします。

▼対象のアイテムを編集し、リッチテキストエディタの「挿入」タブ→「画像」→「アドレスから」

▼ダイアログのアドレスに先ほどコピーしたURLをペースト

▼すると画像が挿入されます。

▼リッチテキストエディタを閉じてもこの通り、本文に表示されます。

つまり、画像のアップロード先を宛先ライブラリではなく自らの添付ファイルにしただけです。

注意点としては、リストのアイテムは下書きができず投稿したら即公開です。添付ファイルは一度投稿をしないとURLは取得できないので、投稿してから編集して画像を貼る間は、画像がない状態で公開されてしまいます。そういう意味で上述の※の通り他の入力は済ませた方がベストという事です。

このようにサイトに対して投稿したいリスト以外に投稿権限以上のアクセス権限が付与されていない場合には、画像を表示する時は添付ファイルを利用すると良いですよ、という話でした。 また、事情があってそのような仕様にしなければいけないサイト管理者は、投稿者に添付ファイルを利用する方法を案内すると良いですね。


オマケ

このスクショを撮っている時に気が付いた小さな事です。

▼クラシックUIでリストのビューで本文を表示すると、2通りの方法で表示した画像は同じように表示されます。

▼しかし、モダンUIの場合は、通常挿入方法の画像はグラデがかかって省略表示されるのに対して、添付ファイルの方法で表示させた方は、グラデがかからず省略表示されます。

特に操作に違和感はないから表示上での相違点だけなのですが、不思議ですね。

SharePoint :パブリック Web サイトがいよいよ終わりますね。

SharePoint Online のパブリック Web サイトがいよいよ来月3月31日で削除されるようですね。

SharePoint Online パブリック Web サイトの提供中止 – Microsoft サポート
https://support.microsoft.com/ja-jp/help/3027254/sharepoint-online-public-websites-to-be-discontinued

僕も Office 365 を自前で契約した時は、せっかくなのでこのパブリック Web サイトでブログを運営しようと思っていました。でもなんだか嫌な予感(これ今までの人生で結構当たる)がしたのでやめたんです。

上のページを読むと、どうやら3月31日をもって通常のサイトのように削除され、
ごみ箱に移動するようですね。つまりそこからまた30日間はごみ箱の中だけど、その後は完全削除ですかね。

で、放り出された後はどうするのか?というと、サードパーティ プランとやらに誘導され、「GoDaddy」や「Wix.com」に移行できるようです。

もし、パブリック Web サイトを利用していて、削除される事をウッカリ忘れていた管理者さんは、はやめに上述のサードパーティ プランに移行するか、別のサービスに切り替えた方が良さそうですね。

SharePoint :モダンページのセクション追加の「+」ボタンが左端に移った!

知らぬ間に色々仕様変更されています。

以前はセクション追加やWebパーツ追加は同じコンテンツエリア中央に「+」ボタンがありました。どっちがどっちだかわかりづらいなぁとは思っていたんですが。

▼セクション追加ボタンは左端に移動されていました。

僕は最初利用しているブラウザがレイアウト崩れを起こしていて、別のブラウザだと中央なのかな?なんて疑ってしまいました。しかし、他のブラウザでも左端でした。意図した変更のようですね。これでややこしくなくなりました。

あ、過去のスクショを漁っていたら以前の仕様を発見しました。

▼ボタンが近いので操作ミスからイライラしてしまいかねないですよね。

SharePoint :モダンページ/ニュースのコメントがオンオフできる

モダンページやニュースでは下部にコメント欄があります。でも、中には必要ない場合やあったら困る場合もありますよね。だから邪魔かもなぁ?なんて思っていたのですが…。

▼先程ページ編集画面をよ~く見たらオンオフのボタンが。

これ前からあったのか?最近できたのかは不明です。

▼オフってみました。

▼コメント欄なくなった!

これで一つお悩み解決。

しかし、ニュースは今後主流になるんですかねぇ。特に昔から SharePoint を使っている企業さんなんかはそうもいかないのかな?と思ったりしています。今後 SharePoint を導入しようとしている企業さんならニーズさえ合えば!

SharePoint :モダンUIでアイテムを移動する時に現れる右パネル内に不思議なアイコンが!

▼ライブラリ内のアイテムを選択し、「…」から「移動」をクリック。

▼右パネルが出現します。

▼右パネルの中でも右端に謎のアイコンが!

▼マウスホバーしてみると吹き出しらしきものが表示されるけどブラウザから見切れてる!!

おそらく1行目は「ドキュメント」で2行目は「共有」でしょうかね。
ちなみにマウスホバーをするとカーソルが指カーソルに変わるのでクリックできそうな挙動ですが、ボタンをクリックしても何のアクションも起きません。

▼移動先フォルダーを移動させて再度マウスホバーをすると…

1行目は移動したフォルダーの「test」でしょうが、2行目は「およ」??およよ???、3行目は「て」…「てい」????、もはやわかりません。

とにかくクリックできそうなのにできなく、吹き出しの中身もよくわからないので、現時点では不思議な機能です。

このアイコンどこかで見たなぁと思ったら…

▼Windows 10 のタスクバー内のPeopleボタンですね。

どんな機能なんでしょうね。たぶんそのうち中の人が気が付いて修正してくれるハズです。

SharePoint : チームサイトやコミュニケーションサイトではライブラリにアップロードした.aspxファイルはクリックすると表示されずにダウンロードされてしまう

SharePoint Online の場合、HTMLファイルをライブラリにアップロードしても、ファイルをクリックすると表示されずにダウンロードされてしまいます。この場合の対策として、単に拡張子を.aspxに変更するだけで解決し、以下の太田さんの記事が参考になります。

静的 HTML ファイルを SharePoint にアップロードして公開する | idea.toString();
http://idea.tostring.jp/?p=1717

この方法でHTMLファイルを SharePoint Online のライブラリに保管して表示したりできるのですが、コミュニケーションサイトで同じ事をしたら、.aspxファイルをクリックすると表示ではなくダウンロードされてしまいました。まずは現象を再現してみます。

■再現

まず、拡張子を.aspxにしたファイルを用意します。(ソースはHTMLです。)

▼検証用途なので非常に簡単なHTMLです。作成後、拡張子を.aspxに変更します。

▼まずは SharePoint 管理センターから作成したサイトのライブラリにアップします。

▼sample.aspxをクリックするとブラウザ内に表示されます。(もっとわかりやすくサンプルがよかったですね…ゴメンナサイ。)

ここまでは想定の動作です。次はコミュニケーション サイトでやってみます。

▼コミュニケーション サイトを作成します。

▼作成されました。

▼ドキュメント ライブラリに移動し、先程と同じsample.aspxをアップロードします。そしてクリックすると…

▼クリックすると表示されずにダウンロードとなってしまいます。

■原因

正直言うと急いで解決したかったので人に聞いて回りました。そこで疑われたのが「カスタムスクリプト が禁止になっているのでは?」との事。

カスタム スクリプトを許可または禁止する – Office サポート
https://support.office.com/ja-jp/article/1f2c515f-5d7e-448a-9fd7-835da935584f

ではやってみましょう。

■対策

結局これも以前コミュニケーション サイトで外部ユーザーを招待できなかった際の対策と同じく、僕の苦手な PowerShell で対応します。

▼SharePoint Online Management Shell をダウンロードしてインストールします。

Download SharePoint Online Management Shell from Official Microsoft Download Center
https://www.microsoft.com/ja-jp/download/details.aspx?id=35588

▼SharePoint Online Management Shell を起動します。

SharePoint 管理センターに接続する以下のコマンドを実行します。

Connect-SPOService -Url https://<<hogehoge1>>-admin.sharepoint.com -Credential <<hogehoge2@hogehoge.com>>

<<hogehoge1>>:自分の環境に合わせて変更してください。
<<hogehoge2@hogehoge.com>>:管理者のアカウントのメールアドレス

▼サインインを促されるのでサインインしてください。

カスタム スクリプトを許可する以下のコマンドを実行します。(上述で紹介した Office サポートのページ内に記載されていたのを利用します。)

Set-SPOsite <SiteURL> -DenyAddAndCustomizePages 0

<SiteURL>:サイトのURL

実行すると相変わらず特に反応はなくスンっと終わります。

さて、これで.aspxファイルをクリックするとダウンロードじゃなくブラウザ内で表示されれば解決です!

▼おいおい、クリックしてもダウンロードされるぞ!

カスタム スクリプトの禁止が原因ではなかった!?と思いましたが、一応試してみようと思ったのが、.aspxファイルをアップロードし直す!

▼すでにアップロードしているファイルを一旦削除します。

▼再び同じsample.aspxファイルをアップロードします。そしてクリック!

▼やった!ダウンロードされずにブラウザ内で表示された!

って事でライブラリにアップロードした.aspxファイルがクリックすると表示されずにダウンロードされてしまう場合は、

  1. PowerShell でカスタム スクリプトを許可する。
  2. すでにアップロードしているファイルは再アップロードする。

という大きく2つの手順で解決できました。

PowerShell に慣れていない人はいろいろと怖いので検証用サイトコレクションを作ってテストしてみると良いですね。また、そもそもカスタム スクリプトを禁止から許可に変更した際の影響範囲なども考えないとですね。

SharePoint :リストを削除しようとしたけど関連リストがあるとかなんとかで削除できない場合

リストを削除しようとしたら、ダイアログが表示されて削除できない場合があります。

▼リストの設定画面で「このリストの削除」をクリックするとこんな感じでダイアログが

▼ダイアログの中身はこんな感じ

「関連リスト」ってなんだろう?

これは参照列を利用していて、その参照元のリストの事を指します。

▼削除できないリストには参照列があります

ただ、参照列があるだけならリストを削除する事はできます。できない原因は…

▼参照列の設定で「リレーションシップの動作を実行する」にチェックされている時

この時にリストを削除できなくなります。この場合、参照元のリストも同じく削除できません。削除したい場合は、このチェックを外せば削除可能です。

SharePoint : コミュニケーションサイトでは外部ユーザーの招待ができない


全体的な管理は以下の設定になっているとします。

▼ Office 365 管理センター > セキュリティとプライバシー > 共有

「オン」

▼そこからのリンク「サイトの設定」

「オン」
「新規と既存の外部ユーザー」

▼ SharePoint 管理センター > 共有

組織外との共有
「ユーザーに認証済み外部ユーザーの招待および共有を許可する」

この設定で通常は SharePoint に外部ユーザーを招待できます。しかし、コミュニケーションサイトで外部ユーザーを招待しようとしたところ、できませんでした。

▼このようにコミュニケーションサイトを作成

▼作成完了。共有します。

▼外部ユーザーのメールアドレスを入力するとエラーが

エラー内容
「このユーザーとの共有が組織で許可されていません。 Office 365 管理センターの外部共有に移動して、共有を有効にしてください。」

エラー内容を見る限り、その設定はすでに有効化しているんですよね。設定をいろいろ見直したのですがこのエラーが消える事はありませんでした。

他のサイトコレクションのサイトでは外部ユーザーを招待できることから、このサイトレクション固有の問題であるという原因の切り分けができます。このコミュニケーションサイトは今作ったばかりなので、つまりコミュニケーションサイトはデフォルトでは外部ユーザーの招待はできない設定になっているのでは?と推測ができます。

実際に管理センターで全体的に有効化していても、個々のサイトコレクションで外部ユーザーの招待の有効/無効は設定可能なんですよね。

▼ SharePoint 管理センターで該当サイトコレクションを選択し、「共有」

▼サイトコレクション単位でも設定が可能になっています。

では、コミュニケーションサイトもこの方法で設定を有効にすれば解決!!ではないんですよね…。

現時点での SharePoint 管理センターでは、Teams のチーム作成や Office 365 グループ のグループ作成などで自動で作成されるサイトコレクションは管理できません。そしてコミュニケーションサイトも管理できません。 SharePoint 管理センターのサイトコレクション一覧に表示されないんですよね。なので、コミュニケーションサイトの外部ユーザー招待機能を有効化はできないんです。

ここであきらめても良いのですが、僕の苦手な(苦手はたくさんありますが) PowerShell を使えば解決します。

▼SharePoint Online Management Shell をダウンロードしてインストールします。

Download SharePoint Online Management Shell from Official Microsoft Download Center
https://www.microsoft.com/ja-jp/download/details.aspx?id=35588

▼SharePoint Online Management Shell を起動します。(この画面見ただけで僕はしんどいです。)

SharePoint 管理センターに接続する以下のコマンドを実行します。


Connect-SPOService -Url https://<<hogehoge1>>-admin.sharepoint.com -Credential <<hogehoge2@hogehoge.com>>


<<hogehoge1>>:自分の環境に合わせて変更してください。
<<hogehoge2@hogehoge.com>>:管理者のアカウントのメールアドレス

▼サインインを促されるのでサインインしてください。

外部ユーザーの招待を有効にする以下のコマンドを実行します。


Set-SPOsite <<hogehoge3>> -SharingCapability ExternalUserSharingOnly


<<hogehoge3>>:サイトのURL
ExternalUserSharingOnly :他にも設定の選択肢はありますが割愛。

このサイトのURLは少し注意が必要です。例えば以下はブラウザでサイトを開いた時のURLをそのままコピった場合ですが、これではダメです。
https://hogehoge.sharepoint.com/sites/comtest01/SitePages/Home.aspx

SitePages以下を削除したのですが、これでもダメです。最後のスラッシュが不要でエラーになりました。
https://hogehoge.sharepoint.com/sites/comtest01/

これでイケます。
https://hogehoge.sharepoint.com/sites/comtest01

▼コマンドに問題があるとエラーになり、問題がないと特に「成功!」的な反応はなく、スン…と次の行が現れます。

↑赤いエラーがたくさん出ていますが、 PowerShell 苦手なので、試行錯誤した痕跡です。お恥ずかしい…。

これでたぶん PowerShell にて設定が変更されたハズ!

▼先ほど招待できなかった同じメールアドレスで外部ユーザーを招待したところ、問題なく招待できました。

とはいえ、やはりただ外部ユーザーを招待したいだけなのに PowerShell には抵抗感ありますよね…。

現在、 SharePoint 管理センターは新しくなろうとしています。(もうすぐ対象指定リリースで使えるとの事。)この新しい SharePoint 管理センターでは、これらの現時点で表示されないサイトコレクションも管理できるとの事なので、期待します!

SharePoint : SharePoint ホーム からニュースの投稿ができるようになった

今日気が付いたので、例によっていつ実装されたかは不明ですが…
(ただ、対象指定リリースのテナントでもテナント次第ではまた表示されていないテナントも確認できたので、やはりここ最近実装されたのかな?)

SharePoint ホームを開くと上部に「+ サイトの作成」の横に「+ ニュースの投稿を作成」がありました。

▼ココ

▼クリックすると右パネルが現れます。

ここに自分がニュースを投稿できる権限のあるサイトが一覧で表示され、クリックするとニュースの作成を開始できます。

わざわざサイトに入る手間は省けますね。使われるかどうかはなんとも言えないけど。

気を付けるべき事は、ココからもそうだし各サイトトップページの「ニュースの投稿」からもそうだけど、一度クリックするとクリックした時点でページは作られます。ページ名を設定するまでは適当なファイル名で保存されています。例えば、操作ミスや魔がさしたりしてクリックしちゃってニュース作成ページが開いてしまったので慌ててタブやブラウザごと閉じたとしても、適当なファイル名で中身が空のニュースは保存されるという点は注意が必要です。
「発行」をするまでは公開されないし、様々な新着情報欄にも表示はされませんが、こういう事の繰り返しでふと気が付くとページライブラリ内に適当なファイル名のページがたくさんある状態にはなりそうです。

▼「ニュースの投稿」をクリックするとニュース作成画面が現れます。

この状態で「保存して閉じる」や「発行」を押さないで即タブやブラウザを閉じても…

▼ページライブラリにはこのように適当なファイル名でページは作成されたままです。

ゴミを溜めないためにも、間違えて「ニュースの投稿」などをクリックしてしまったら、ページライブラリをチェックして該当するファイル(ニュース)を削除するクセを付けた方が良さそうです。または、サイト管理者は定期的にページライブラリ内をチェックしてみたり。別にそんなファイルがあったって困ることはないのでゴミ溜め状態が気にならないのであれば放置でも構わないとは思いますが。

SharePoint :モダンページのテキストWebパーツの「ハイパーリンク」

モダンページのテキストWebパーツに関しては、少し前の記事で、右パネルが表示されたり、テーブルがプレビューだけど実装されたり、を紹介しましたが、その時にはなんでもなかったハイパーリンクが少し機能アップしたようです。

以前のスクショがないのですが、リンクの挿入にはURL欄と表示テキスト欄しかなかったと記憶しています。

▼ところが、今日見てみたらこんな感じになっていました。

ハイパーリンクに入力するURLに関しては特に用途制限はないとは思いますが、これを見る限りだとサイト内のページをリンクする用途をメインとしてる感じでしょうか。それと、新しいタブでリンクを開く設定もできますね。

これ、どこかで見たことあるなぁと思ったら、WordPress の記事作成のリッチテキストにリンクを追加するUIがこんな感じです。過去記事へのリンクが楽なんですよね。

これまた先日紹介したページの「レベル上げ」機能。あれはナビゲーションにリンクを追加でしたが、ナビゲーションがゴチャつくので正直微妙かなと思っています。それよりもページのコンテンツエリア内に配置できるテキストWebパーツにリンクの方が用途としてはありそう。あ、忘れちゃいけないのがリンクWebパーツもありました。あっちはリンク先URLのサムネイル表示ができる機能はありますが、このようにサイト内のページを検索する機能はありません。
クラシックUIのWebパーツでも、概要リンクWebパーツだったりコンテンツ エディターWebパーツのリンクだったり、目的は同じでもやはり細かな用途に応じて様々な機能を使い分けていたので、今後もそんな感じでしょうか。

やはりこれからの SharePoint はニュース(ページ)をどんどん利用していく想定ですかね。

Yammer などでフロー情報が流れ、 SharePoint はどちらかというとストック情報の蓄積がメインになるかとは思いますが、そもそもお知らせリストだとか SharePoint はフローもストックもどっちもイケるわけで、ニュースもそういう意味ならフロー情報の用途になるかと思いますが、大事なニュースはこのように固定でリンクさせておくのも大事ですよね。

様々な機能が追加されていきますが、利用ユーザー目線でストレスなく利用されやすい事を第一に構築していきたいですね。今までの経験則だと、ページなどのコンテンツ作成者が自分本位でしか考えていなく、結果として利用ユーザーからすると使いづらい・わかりづらい…なんて場合も少なくはありませんでした。特に社内ポータルサイトのトップページなんかは。