Japan SharePoint Group 勉強会#25

今日、2017年2月11日に、Japan SharePoint Group 勉強会#25 でセッション担当させていただきました。

私は 「Excel + SharePoint」 というタイトルで、Excel Online や Excel Services といった Excel 関連の SharePoint 機能について、基本の使い方・使いどころ・機能差をお話させていただきました。 スライド UP します。
クリックでスライド開きます

勉強会で登壇させていただくのは久しぶりだったのですが、ユーザーの立場の方から管理、IT Pro、開発者とさまざまな立場の SharePoint ユーザーが70名近く!も参加されており、有意義な時間をすごさせていただきました。
また参加したいです!
主催、事務局のみなさま、参加いただいた皆様、ありがとうございました。

 

Office 365 と Azure RMS (IRM、共有アプリケーション)

1/30 (土) の Japan SharePoint Group 勉強会でお話しさせていただいた内容およびふれられなかったことも含めて Office 365 での IRM 機能と共有アプリケーションについてまとめました。長いです。。

1.Office 365 と  Azure RMS 概要

クラウド サービスの普及により、外出先や自宅からインターネット経由で社内データにアクセスでき、機密を含む情報を扱うことが多くなってきている今、情報セキュリティの強化を求められることがより当たり前になってきています。クラウドサービスを利用している場合には特に、ファイアウォールによる制御やアクセス権による制御、メールの暗号化やログ監査等を行うだけでは十分ではないことが多くなり、「情報が外にでてから」 にもカバーが必要といえます。

IRM (Information Rignts Management) 機能は、Office ファイルやメールに対して使用制限をかけられるコンテンツ保護機能です。IRM で保護された Office ファイルは暗号化され、ファイルに対する権限を持つユーザーしか開けないのは当然ですし、それに加えて印刷やコピー等の操作に関して制御が可能です。また IRM保護が適用されたメールは、受信者の転送や保存、印刷等の操作に制御がかけられます。

オンプレ環境で利用するためには Rights Managenet Server を構築し、それを Active Directory や Exchange Server、SharePoint Server と統合するためのセットアップが必要です。Office 365 では Azure RMS がクラウド側で Exchage Online、SharePoint Online と統合されているため、Office 365 ユーザーであれば簡単な設定のみで IRM 機能を使い始められます

※ サポートされる Office は Office 365 (Azure RMS) では 2010 以降です。
オンプレの場合 2007 以降、また一部 Rights Management Server の場合と Azure RMS の場合で機能差があります。
参考 https://technet.microsoft.com/ja-jp/library/jj739831.aspx

さて Office 365 と統合されている Azure AD や Azure RMS について少しふれておきたいと思いますが、Office 365 とからんで目にする機会が多くなってきたこれらについて、「なにができるのか」 「またライセンス的な部分がいまいちよくわからない」 という方も多いのではないでしょうか? まずはそのあたりを簡単にだけふれておきます。

■ Office 365 と Azure AD

Azure Active Directory (Azure AD) は Microsoft のクラウド製品のひとつである Enterprise Mobility Suite とよばれるラインナップに含まれるユーザー ID 管理機能です。

Office 365 は認証プロバイダーとして Azure AD を利用しています。Azure AD は Free、Basic、Premium と3つラインナップがあり、Office 365 を利用している場合、Azure AD の Free を自動的に使っていることになります。また Azure AD Free には本来含まれていない多要素認証やパスワード リセット機能、ログオン画面のブランディング機能は Office 365 では利用可能です。 Premium に含まれている機能を利用したい場合、別途ライセンスを購入することでアップグレードも可能です。

■ Office 365 と Azure RMS

Azure RMS (Azure Rights Management Service) はクラウド上での IRM 機能を提供するもので、Office 365 は既定で Azure RMS と連携しています。Office 365 の E3 と E5 では標準でライセンスが含まれています。(その他のエディションでは別途 Azure Rights Management を追加して IRM 機能を利用することも可能です)

※ 参考 https://technet.microsoft.com/ja-jp/library/dn655136.aspx#BKMK_SupportedSubscriptions

<Office 365 E3 の場合>
IRM_1

<Office 365 E1 の場合>
IRM_2

<別途追加も可能>
IRM_3

※ Office 365 には、Azure AD や Azure RMS、あとここではふれてませんが Microsoft Intune 機能をベースで利用しており、Office 365 のエディションによって差はありますが、Office 365 ライセンスに含まれています。
Azure AD (Premium) と Microsoft Intune、Azure Rights Management の3つのメイン機能とその他機能を合わせて Enterprise Mobility Suite とされています。ご興味ある方はこちらを参考にください。
https://www.microsoft.com/ja-jp/server-cloud/products-Enterprise-Mobility-Suite.aspx

■ Office 365 での IRM 機能

Office 365 では SharePoint Online や Exchange Online と連携した IRM 機能が利用できます。

SharePoint Online では、ライブラリ内ファイルやリストの添付ファイルに対して、ダウンロード後に制御を行ってくれる機能として利用できます。ファイルが開けるプログラムが制限されるとともに、閲覧ユーザーに対する操作制御が可能です。例えば、ファイルのコピーや印刷、スクリーンショットによる画面コピー等を制限があげられ、そもそもそのファイルが開けるかどうかは、もちろんアクセス権で制御がされていますが、ファイルがダウンロードされた後の持ち出しリスクやファイルを閲覧する適切な権限レベルを持たないユーザーへ転送しまうことなどを防げます。SharePoint ではコンテンツ格納の単位であるリストやライブラリに対し IRM のルール設定を行えます。個々のファイルごとに IRM 設定を行うことなく、そこに保存したファイルたちに対して一貫した IRM 設定を適用できます。

Exchange Online では、メール メッセージや添付ファイルに対して転送や印刷、コピーに対する制御が行えます。利用ユーザーがメールに対してポリシーテンプレートを適用することで、IRM 制御をかけられます。また管理者がトランスポート保護ルールを利用し、自動的に適用させる設定も行えます。

2.Office 365 で IRM を利用するための事前設定

① テナントで Rights Management の有効化

1.Office 365 管理センターで、[サービス設定] – [アクセス権管理]をクリックします。
2.[管理を行う] をクリックします。
IRM_4
3.[アクティブ化] をクリックします。
IRM_5
4.再度確認画面が表示されるので、[アクティブ化] をクリックします。
image
5.少し待ちます。
IRM_7
6.アクティブ化完了
IRM_8 

② SharePoint Online での有効化

1.SharePoint Online 管理センターを開きます。[設定] をクリックします。
IRM_9
2.[Information Rights Management (IRM)] で、[構成で指定した IRM サービスを使う] を選択し、
[IRM 設定の更新] をクリックします。
IRM_10

③ Exchange Online での有効化

PowerShell での有効化作業が必要です。Windows PowerShell を管理者として起動し、次のコマンドを実行します。

<資格情報が実行後求められるため、Office 365 管理者のユーザー名、パスワードを入れてください>
$Cred = Get-Credential
<Exchange Online に接続>
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $Cred -Authentication Basic –AllowRedirection
Import-PSSession $Session

<アジア地域の場合、Azure RMS テナントキーの場所を指定 (日本もこれ)>
Set-IRMConfiguration –RMSOnlineKeySharingLocation https://sp-rms.ap.aadrm.com/TenantManagement/ServicePartner.svc

Import-RMSTrustedPublishingDomain -RMSOnline -name “RMS Online”

<Exchange Online で IRM 機能を有効に設定>
Set-IRMConfiguration -InternalLicensingEnabled $true
<オプション: 行った構成に対するテスト>
Test-IRMConfiguration –RMSOnline

<切断>
Remove-PSSession $Session

Test-IRMConfiguration –RMSOnline 実行後、こんな内容が確認できれば OK です。
IRM_11

3.ライブラリでの IRM 機能

■ ライブラリでの IRM 設定

1.設定対象のライブラリを開きます。
2.[ライブラリ] タブ – [ライブラリの設定] を開きます。
IRM_12
3.ライブラリ設定画面で [Information Rights Management] をクリックします。
IRM_13
4.設定画面で、必要な設定を行います。
IRM_14
● [ダウンロード時にこのライブラリの権限を制限する] : オンに
● [アクセス許可のポリシー タイトル]、[アクセス許可ポリシーの説明]
ファイルを開いた際に表示される内容です。わかりやすい内容がよいかと。
IRM_15

■ IRM 設定を行った際の基本の挙動

    ※ オプション設定を行っていない場合

フル コントロール 権限   投稿 権限 閲覧 権限
・ Office Online で編集できない※ アクセス権変更可能 ・ Office Online で編集できない
・ 印刷できない
※ コピーしたファイルに対しても同様の IRM 制御がかかる
・ Office Online で編集できない
・ 印刷できない
・ 名前付けて保存できない
・ PrintScreen 使えない
・ コピーできない  

● ファイルのプレビューはできなくなる (Office Online を利用したやつ)
IRM_16
● Office Online での編集ができなくなる
IRM_17
● Office ファイル (Excel、PowerPoint、Word、Visio のみ、InfoPath)、PDF が対象であり、それ以外のファイルには適用されない。IRM に対応していないファイルをライブラリに保存できないようにするオプション設定は可能
<IRM に対応していないファイルを保存できないように設定した場合のアップロード操作後>
IRM_18
● IRM 保護がかかったファイルを開くことができるアプリケーション
・ Office 2010 以降 (Excel、Word、PowerPoint)
・ Visio 2016
・ PDF (最新の FoxIt が必要)
<FoxIt がない環境で IRM 保護された PDF ファイルを開いた場合>
IRM_19

■ ライブラリでの IRM その他オプション設定

● [IRM をサポートしないドキュメントのアップロードをユーザーに許可しない]
IRM に対応していないファイルをアップロードできなくなる
(設定前に保存されていたファイルはそのままライブラリに保存された状態。IRM 制御がかならないだけ)

● [このライブラリに対するアクセス許可の制限を解除する日]

● [このドキュメント ライブラリではドキュメントをブラウザーで開かないようにする]
Office Online が利用できなくなる
IRM_20
● [ドキュメントのアクセス権を構成]
閲覧ユーザーに対する制御をゆるめることが可能
IRM_21  

4.メールでの IRM 機能

■ ユーザーによる IRM テンプレートの設定

Exchange Online で IRM が利用できるよう設定されていると、ユーザーがメールを送信する際に IRM テンプレートを利用できるようになります。 Outlook でメール作成時に [ファイル] メニューより [アクセス権の設定] をクリックし IRM テンプレートを選択して適用可能です。
IRM_22
IRM_23

■ トランスポート ルールによる適用

Exchange Online でトランスポート保護ルールにより、特定の条件の場合に自動的に IRM 保護をメールにかけるよう設定も行えます。

1.Exchange Online 管理センターで [メール フロー] をクリックします。
2.[+] – [メッセージに権利保護を適用する] をクリックします。
IRM_24
3.ルールに名前を付け、適用条件を指定、実行する処理で RMS テンプレートを選択し、[保存] します。
IRM_25

■ IRM テンプレートのカスタム作成

Azure ポータルより IRM テンプレートのカスタム作成も可能です。

1.Office 365 管理センターで、[サービス設定] – [アクセス権管理]をクリックします。
2.[管理を行う] をクリックします。
IRM_4
3.[高度な機能] をクリックします。
IRM_26
4.Azure Portal が開きます。(サインインが必要な場合は、Office 365 管理者アカウントでサインイン)
5.組織名をクリックします。
IRM_27
6.いったんもどります。
IRM_28
7.[Rights Management] をクリックし、さらに組織名をクリックします。
IRM_29
8.[新しい権利ポリシー テンプレートを作成する] をクリックします。
IRM_30
9. 言語、名前、説明を入力し、保存します。
IRM_31
10. [権限ポリシー テンプレートの管理] をクリックします。

11. 先ほど作成したポリシー テンプレートをクリックして開き、ユーザーやグループ権限に対する設定を行います。
設定後、[発行] を選択し [保存] します。
IRM_32
12. Exchange Online のポリシー テンプレートを更新するには PowerShell を実行します。
Windows PowerShell を管理者として起動し、次のコマンドを実行します

<資格情報が実行後求められるため、Office 365 管理者のユーザー名、パスワードを入れてください>
$Cred = Get-Credential
<Exchange Online に接続>
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $Cred -Authentication Basic –AllowRedirection
Import-PSSession $Session

<テンプレートの再インポート>
Import-RMSTrustedPublishingDomain -Name “RMS Online – 1” -RefreshTemplates -RMSOnline

<切断>
Remove-PSSession $Session

  <追加された結果>
IRM_33

5.RMS 共有アプリケーション

Azure RMS により提供される 「RMS 共有アプリケーション」 を利用することで、さらにこんなことも可能です。

  ● 組織外のユーザーにメールでファイルを送信し、メールの受信者のみがファイルを表示可能としたい
保存や編集、印刷、転送を不可能にしたい
● スマホでメールを確認することが多い人に、保護されたファイルを送信したい
● IRM でサポートされていない Office や PDF 以外のファイルを保護したい
● どこで誰がファイルを開いたか追跡したい
● 必要に応じてあとからアクセス権を取り消したい

■ RMS 共有アプリケーションを利用するためには?

① Rights Management サブスクリプションがある
② RMS 共有アプリケーションを利用する PC やモバイルデバイスにインストールされている
・ 下記よりダウンロード可能 (Windows 用、MacOS 用、Windows Phone 用、iOS 用、Android 用があり)
  https://portal.aadrm.com/home/download
IRM_34
・ 共有アプリケーションは無償。スクリプトによる展開も可能
参考 https://technet.microsoft.com/ja-jp/library/dn339003(v=ws.10).aspx

■ 利用例① メールで外部のユーザーにファイル添付

> メール送信者

1.Outlook でメールを作成し、ファイルを添付します。
●  共有アプリケーションはファイルに対する保護を行うものなので、添付ファイルは必要です。
また複数添付ファイルはサポートしていないようです
● 宛先ユーザーが別組織 (Azure Rights Management を利用していない) でもかまいません
● 宛先に Gmail、Hotmail といったインターネットメールは利用できないようです。
IRM_35
2.[保護ファイルの共有] – [保護ファイルの共有] をクリックします。
IRM_36
      ※ RMS アプリケーションをインストールすることで、Outlook のリボン内にメニューが追加されています。
3.Microsoft Rights Management Services よりサインイン画面が表示された場合、サインインを行ってください。
IRM_37
4.[閲覧者-表示のみ] を選択し、[今すぐ送信] をクリックします。
IRM_38
5.メールが送信されます。

> メール受信者

1.受信したメールを開きます。添付ファイルや本文に対して、自動的に変更がされています。
IRM_39
2.添付ファイル (ここでは Excel ファイル) を開きます。 サインインを求められた場合、サインインします。
IRM_40
3.アクセス制御がされています。
[ファイル] メニュー内の [名前を付けて保存] や [印刷]、[共有] 等のメニューは利用できません。
IRM_41

■ 利用例② 画像ファイルや PDF ファイルに保護

画像ファイルなど IRM の対象外のファイルにもアクセス制御が可能です。画像ファイルおよび PDF ファイルに対して保護をかけて共有してみます。 ※ PDF ファイルは IRM の対象ですが、専用のリーダーが必要。

> 保護を設定するユーザー

1.保護をかけたいファイルを右クリックし [RMS による保護] – [その場で保護] – [*- 社外秘(閲覧のみ)] をクリックします。
  IRM_42
● 組織で定義されているテンプレートを選択しています。
● 自分でアクセス許可を設定したい場合 [カスタム アクセス許可] より可能です。

2.保護がかかり拡張子やアイコンが変更されたことが確認できます。
IRM_43
3.保護をかけたファイルを共有します。ここではライブラリに保存してみます。
IRM_44

> 共有されたファイルを閲覧するユーザー

共有されたファイルを開きます。
[保護されたファイル] ダイアログが表示された後、共有アプリケーションを利用して画像ファイルや PDF ファイル等の保護がかけられたファイルが開きます。(Office ファイルの場合は Office クライアントで開きます)
IRM_45
IRM_46

■ 利用例③ スマホや iPad から開いてみる

> メール送信者

1.Outlook でメールを作成し、ファイルを添付します。
2.[保護ファイルの共有] – [保護ファイルの共有] をクリックします。
3.[閲覧者 – 表示のみ] を選択し、[今すぐ送信] をクリックし、メールを送信します。  

   > メール受信者
ここでは、iPad で開いてみます。App Store よりあらかじめ RMS Sharing アプリをインストールしておきます。
IRM_47

1.保護されたファイルが添付されたメールを受信しました。
image
2.添付ファイルを OneDrive に保存します。(操作はブラウザー版 Outlook で行っています)
image
3.添付ファイルを保存した OneDrive からファイルを開きます。
image
4.RMS 共有アプリで開きます。
image
5.サインインします。
image
6.保護されたファイルが RMS Sharing アプリによって閲覧できます。
image

■ 利用例④ 保護されたファイルを Skype で共有してみる

RMS 共有アプリケーションで保護がかけられたファイルを開いた状態で、Skype でデスクトップ共有を行ってみます。 

> 共有した方
image

> 共有された方
image

■ 利用例⑤ 追跡してみる

保護がかけられたファイルを追跡してみます。   

> ファイルに保護設定

1.保護をかけたいファイルを右クリックし [RMS による保護] – [その場で保護] – [カスタム アクセス許可] をクリックします。
2.ユーザーを指定し、[閲覧者 – 表示のみ] を選択します。
さらに [他のユーザーがこれらのドキュメントを開こうとしたときにメールで通知する] [これらのドキュメントへのアクセスをすぐに取り消せるようにする] をオンにし [適用] します。
image
3.ファイルを共有します。(メールで送信しても OK)  

> 追跡

1.ファイルが開かれたら表示される通知メールはこんな感じです。
image
2.追跡したいファイルを右クリック – [RMS による保護] – [使用の追跡] をクリックします。
image
3.追跡画面が開きます。ファイル名をクリックします。
image
4.ファイルの詳細画面が開き、誰がいつ開いたか、誰がいつアクセスを拒否されたかが一覧表示されます。
また [アクセスの取り消し] を利用することで、ファイルの権限を取り消すことも可能です。
image
どこでファイルが開かれたかを地図でみることも。
image

奥田 Bunny

SharePoint Designer でお知らせ 表示フォーム デザイン変更例

SharePoint Designer でお知らせ リストの表示フォームのデザインを次のように変更する例です
<SharePoint 2010 例
>
image

下記手順は SharePoint Designer 2010 のものですが、SharePoint Designer 2013 でもデザインビューは利用できませんが、コードレベルで同様のことは可能です。
<SharePoint 2013 例>
image

■ 参考手順

1.SharePoint Designer 2010 で対象リストの [フォーム] 一覧を開きます。
リボンから [表示用のフォーム] をクリックします
image
2.[新しいリスト フォームの作成] ダイアログが開くので、ファイル名を任意につけ、[OK] をクリックします。
     image
3.作成したリストフォーム (aspx ファイル) をクリックしてエディターで開きます。 [デザイン] モードに切り替えます。
4.表示フォーム内容の上下に [閉じる] ボタンが用意されていますが、フォーム内容が少ない (縦幅がそんなに多くない)
ため、上部の [閉じる] ボタン は削除したいと思います。
[閉じる] ボタンが表示されている行を範囲選択し、右クリック ― [削除] – [行の削除] をクリックします。
5.ラベル部分の列を削除します。ラベル内容を右クリック – [削除] – [列の削除] をクリックします。
image
image
6.[分割] モードに切り替え、デザイン画面内で [タイトル] をクリックし、タイトル欄に相当するソースコードを探します。
image
7.タイトル欄に相当するソースコードを次のように変更します。 

<変更前>
<td width=”400px” valign=”top” class=”ms-formbody”>
<xsl:value-of select=”@Title” /></td>

<変更後>
<td style=”padding:5px”>
<p style=”font-family: Meiryo UI; font-size: 14px; border-bottom: dotted 1px #000088; border-left: solid 8px #000088;padding-left:10px”><xsl:value-of select=”@Title” /></p></td>

8.デザイン画面内で [本文] をクリックし、本文欄に相当するソースコードを探します。
image
9. 本文欄に相当するソース コードを次のように変更します。   

<変更前>
<td width=”400px” valign=”top” class=”ms-formbody”>
<xsl:value-of select=”@Body” disable-output-escaping=”yes” /></td>

<変更後>
<td style=”padding-left:10px; font-family: Meiryo UI;”>
<xsl:value-of select=”@Body” disable-output-escaping=”yes” /></td>

10. デザイン画面内で [有効期限] をクリックし、有効期限欄に相当するソースコードを探します。
11. 有効期限欄に相当するソース コード を次のように変更します。     

<変更前>
<td width=”400px” valign=”top” class=”ms-formbody”>
<xsl:value-of select=”@Expires” /></td>

<変更後>
<td style=”padding-right:20px;text-align:right;font-family: Meiryo UI;”>
有効期限:<xsl:value-of select=”ddwrt:FormatDate(string(@Expires) ,1041 ,3)” /> </td>

12. リボンを非表示とするためスタイルを追加します。リボン内の [ホーム] タブの [詳細モード] をクリックします。
13. ソースコード内で、PlaceHolderBodyAreaClass という ID の ContentPlaceHolder タグ内のスタイル タグに、
スタイルを追加します。(赤字部分)     

<asp:Content ContentPlaceHolderId=”PlaceHolderBodyAreaClass” runat=”server”>
<style type=”text/css”>
.ms-bodyareaframe {
padding: 8px;
border: none;
}
#s4-ribbonrow{display:none;
}
</style>
</asp:Content>

14. 上書き保存します。上書き保存時に、警告ダイアログが表示された場合、[OK] をクリックします。
15. [フォーム] をクリックし、フォーム一覧に戻ります。
image
16. フォームの一覧で、追加したリストフォーム (aspx ファイル) を選択肢、[既定に設定] をクリックします。
image     

動作確認すると、表示フォームのデザインが変更され、表示フォーム内のリボンが非表示となっていることが確認できます。

奥田 Bunny

[SharePoint Online/SharePoint Server 2013] JS リンクでリストビューに条件付き書式設定

SharePoint 2013 では SharePoint Designer 2013 でリストビューを開いても、2010 では利用できる [条件付き書式] 機能は利用できません。SPD 上からメニューもなくなっています。
JS リンクを利用して条件付き書式を設定する例をご紹介します。

<設定例>
image

まず、用意する JS ファイルの内容はこんな感じです。

(function () {

var overrideCtx = {};
overrideCtx.Templates = {};
overrideCtx.OnPostRender = Condition;
   SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCtx);

})();

function Condition(ctx){

for (i = 0; i < ctx.ListData.Row.length; i++) {
if (ctx.ListData.Row[i][“FieldName“]) {

if (ctx.ListData.Row[i][“FieldName“].indexOf(‘AZ‘) != -1) {

var rowId = GenerateIIDForListItem(ctx, ctx.ListData.Row[i]);
var trElement = document.getElementById(rowId);
trElement.style.backgroundColor = “#FFFF00“; }

} } }

● FieldName : 条件に利用したい列の内部名
AZ : 列に含まれる値 (部分一致も可)
#FFFF00 : 条件に一致する際のアイテムの背景色

[適用方法]
1. JS ファイルをマスター ページギャラリーにでもアップロードします。

–  アップロード時にプロパティの編集画面でコンテンツ タイプは何を選んでもいいです。
–  アップロードしたファイルはメジャーバージョンに発行します。

2. JS リンクを適用させたいビューを、[設定] – [ページの編集] をクリックし、編集モードに切り替えます。
3. ビュー内に配置されているリスト ビュー Web パーツで、[Web パーツの編集] をクリックし、 Web パーツの設定画面を表示します。
4. [その他] カテゴリーにある [JS リンク] に js ファイルへのパスを次のように指定し、[OK] をクリックします。
 ~sitecollection/_catalogs/masterpage/ファイル名.js
5. [ページ] タブから [編集の終了] をクリックします。

以上、JS リンクで条件付き書式を設定する内容でした。JS リンクで、アイテム全体に対するスタイル設定を行いたい場合の参考 (OnPostRender の利用) にもいただけると思います。

奥田 うさぎ

SharePoint Online/SharePoint Server 2013 – ディスカッション掲示板でビューを作成

SharePoint 2013 で掲示板にビューを作成する Tips をご紹介します。
下図のように掲示板の既定のビューを、標準ビュー形式に変更してみます。
image

① 標準ビュー形式のビュー作成

 1.  [リスト] タブ – [ビューの作成] をクリックします。
 2.ディスカッション掲示板では、[標準ビュー] がでてこないので、既存のビューから作成開始の [管理] をクリックします。
image

3.ビュー名を付けて、表示したい列を指定します。必要に応じて並べ替えやフィルター、グループ化等その他設定も行います。
また作成したビューを既定にしたい場合、[このビューを既定にする] を選択しておきます。
image

ここまでで、見た目は標準ビューになります。
image

が! ここまでだと問題があり、タイトル列 (件名に入力した内容) のリンクをクリックすると、下図のように、返信も既定ビューである標準ビュー形式で開きます。。
image

本来は、タイトル列をクリックすると、こうなってほしいんですよね?
image

次のステップでこれをなんとかします。

② ビューの設定変更

コメント欄で教えていただいた内容を追記します
作成したビューの編集画面で、 [フォルダー] 設定を [最上位のフォルダー内を表示する]に変更

[参考] 集計列を作成

 ② で解説しますが、参考までに、集計列を使う方法も
もともとの既定ビューである [件名] ビューで、タイトル列をクリックし、開いた画面の URL を確認すると、こうなっています。
 https://サイトURL/Lists/掲示板パス/Flat.aspx?RootFolder=掲示板への相対パス/件名の値(エンコードされている)

いったん開いてみて、表示される URL をコピーしてみてください。
私の環境だと、こんな感じでした↓
https://crie.sharepoint.com/Cust/Lists/List2/Flat.aspx?RootFolder=%2FCust%2FLists%2FList2%2F%E3%83%86%E3%82%B9%E3%83%88%EF%BC%91&FolderCTID=0x01200200836448E9AAB30E48A7F54EC0409D8662

一番おしりの &FolderCTID=XXXXXXXXXXXXXXXXXXXXX の部分はなくてもいいので、それ以前の部分の、
https://crie.sharepoint.com/Cust/Lists/List2/Flat.aspx?RootFolder=%2FCust%2FLists%2FList2%2F%E3%83%86%E3%82%B9%E3%83%88%EF%BC%91 を利用して集計列を作成します。

■ 集計列の数式は、下記です。
列名: 任意
この列の情報の種類:集計値
数式 : ※ 赤字部分は環境にあわせて変更ください)
※ この式から返されるデータの種類 は [数値] にしてください。
=CONCATENATE(“<a href=’https://crie.sharepoint.com/Cust/Lists/List2/Flat.aspx?RootFolder=%2FCust%2FLists%2FList2%2F”,件名,”‘>クリックして開く</a>”)    

 image

③ ビューを編集

最後にビューに表示する列を整えれば、、
・ 集計列で作成したハイパーリンクが表示される列を一番左に
・ 表示する列に対して、[タイトル(編集メニュー付きのアイテム)] を [件名] に変更
image

ディスカッション掲示板でないと、なかなか返信を付ける形でのデータ登録は難しいですし、ディスカッション掲示板に列を追加した際にはデフォルトの件名ビューよりも、標準形式ビューで追加した列も表示したいケースが出てくると思います。そんなときに活用いただければ。

奥田 うさぎ

SharePoint 今月のデータをビューに表示したい

列の値 (日付型) を利用したビューにおけるフィルター設定について 「今月のデータを表示したい」 場合です。

基本

 日付型を利用してフィルターしたビューを作成する場合、フィルター条件でよく [Today] 利用するかと。[Today] には足し算引き算もできますよね
image

今月のデータをフィルター表示したい場合

フィルター条件で、今月の日付かどうかを直接判断する方法がないため、あらかじめ日付型の列をベースに集計列を2個作っておきます。両方とも [この式から返されるデータの種類] は [日付] にしてください。

   ・  当月開始日      =DATE(YEAR(日付列),MONTH(日付列),”1″)

   ・  当月終了日      =DATE(YEAR(日付列),MONTH(日付列)+1,0)

image

ここまでできたら、あとはビューのフィルター条件において、[Today] でなんとかなりますね。
image

集計列の数式を工夫すれば、先月のデータとか今年のデータとかも同様にできます。

以上です。

奥田 Bunny

SharePoint Online/SharePoint Server 2013 – アンケートの質問内で画像を利用したい

よくいただく質問から第4弾です。

■ 質問内容

    アンケートの質問内で画像とかハイパーリンクを利用したい

■ 回答

標準機能の範囲ではできませんが、簡単な JavaScript を入れることで質問内での画像の挿入やリンクの挿入は可能です。
さらに JavaScript を挿入した状態でリストテンプレート化することで、再利用もできます。

   下記リスト テンプレートはサンプルです。

      ・ SharePoint Online および SharePoint Server 2013 用
SharePoint Server 2010 用

サンプルの リスト テンプレートについて

アンケートがベースになっており、質問内に画像の挿入や、ハイパーリンクの挿入が行える内容です
image

 

■ サンプルのリスト テンプレート展開方法

 サイト コレクション内のリスト テンプレート ギャラリーに、上記よりダウンロードしたリスト テンプレートファイル (stp) をアップロードします。展開作業後、サイト コレクション内で利用可能です。

1.トップ レベル サイトのサイトの設定画面を開き、[Web デザイナー ギャラリー] 内の [リスト テンプレート] をクリックします
image
2.リスト テンプレート ギャラリーが開いたら、ダウンロードしたリスト テンプレートファイル (stp) をアップロードします
image

■ サンプルのリスト テンプレート 利用方法

リスト テンプレート ギャラリーに展開すると、そのサイト コレクション内の全サイトでアプリ作成時のテンプレートとして利用できます。
image

1.追加したテンプレートを利用して、アンケートをサイト内に作成します
2.質問を作成する際に、下記を利用ください。
● 画像を質問内に挿入したい場合
あらかじめサイト内の任意の場所に画像ファイルをアップロードしておき、質問内に
startimg_画像ファイルパス_endimg  と入力
image
● ハイパーリンクを質問内に挿入したい場合
質問内に startlink_ハイパーリンク先_endlink と入力


image

■ カスタマイズ内容について

SharePoint Designer を利用し、NewForm.aspx および EditForm.aspx に JavaScript を挿入しています。質問文章内の下記文字列を次のように変換しているだけです。
   ・
startimg_  → <img src=
・  _endimg    → />
・ startlink_   → <a href=”
・ _endlink     → “ target=”_blank”>クリックして開く</a>

サンプルなので、あんまり細かいところまで作りこんでいません。
たとえば、1質問内に画像やハイパーリンクはそれぞれ1つずつしか挿入できないです。
あと DispForm.aspx はカスタマイズしていないので、回答内容を表示する画面では画像やハイパーリンクには置き換わりません。
そのあたりも対応してみたい場合や、画像やハイパーリンクだけではなく、それ以外の要素を含めたい場合は SharePoint Designer で JavaScript を編集してください。

NewForm.aspx は新規で回答する際の回答フォームです。EditForm.aspx は再編集する際の回答フォームであり、新規で回答する際にも、[ページ区切り] を利用している場合は2ページ目以降の回答フォームとして利用されています。JavaScript 内容をご自身でさらに変更加える際には、同じコードを NewForm.aspx および EditForm.aspx 両方に入れてくださいね。


 以上、奥田でした Bunny

SharePoint Online/SharePoint Server 2013(2010) – リストやライブラリで列を表示する幅を調整したい

ここ最近というわけではないですが、よくいただく質問から第3弾です。

■ 質問内容

    リストやライブラリのビューで、列幅を調整できないか?

    ■ 詳細

入力されたデータ内容 (文字数) により、またブラウザーのサイズにより途中でデータが折り返して表示される場合があり、どうしても折り返して表示したくないデータがあるときです。

そして下図のように列のデータ型によって、折り返して表示されるものとされないものがあります。よく利用しがちな [一行テキスト] は折り返しされますね。下図リストには含まれていませんが [複数行テキスト] も折り返されるほうです。対して [選択肢] や [数値]、[日付と時刻] は折り返しされないようです。

 image

■ 解決方法

まず設定のみではできません。CSS をビューの aspx 内に挿入する必要があります。

1. 列幅を調整したいと思っているビューを開きます。
2. [設定] – [ページの編集] をクリックします。
   image
3. ページが編集モードに切り替わるため、[Web パーツの追加] をクリックし、コンテンツ エディター Web パーツを挿入します。
   image
4. 一番上に挿入されたコンテンツ エディター Web パーツをドラッグ操作で、ビューの下に移動します。
   image

5. コンテンツ エディター Web パーツ内の [ここをクリックして新しいコンテンツを追加] をクリックします。
    そしてコンテンツ エディター Web パーツ内にマウス カーソルをあわせ、リボン内の [テキストの書式設定] タブ – [ソースの編集] をクリックします。 

 ※ コンテンツ エディター Web パーツ内に [ここをクリックして新しいコンテンツを追加] が表示されない場合は、
    まずコンテンツエディター Web パーツの設定画面を表示してください。
    トップページに配置した Web パーツに対して同様のことを行う場合など、サイトのページ内に配置したコンテンツ エディター Web パーツではそうなります。

6. [HTML ソース] に次の CSS コードを追加し、[OK] をクリックします。

<style type="text/css">
.ms-vh-div[DisplayName=’列の表示名を入れてください’]
{
  
width:250px;
}
</style>

       ※ 列の表示名や、列幅は任意に変更
     image

7. [ページ] タブの [編集の終了] をクリックして保存します。
   image

指定した列幅で表示されるように変更されました。
  image

  • この方法を行った場合の注意点
  • まず、SharePoint の既定のスタイル クラス名を利用しているため、SharePoint 側で生成されるクラス名が変わると、たちまち動作しなくなります。たとえば SharePoint Online の場合だと大きな Update とか、SharePoint Server 2016 になったときとか。
    個人的にはおそらく大丈夫だと思います。なぜかって、おんなじコードで SharePoint Server 2010 でも動作するんですよね、コレ。というか 2010 のときから使ってた Tips です。リストの基本はあんまり変わらないかと。もし変わったとしても、列幅が変更になるくらい大したことないですし。

それよりも、これをやると、ビューを開いた際に [アイテム] タブと [リスト] タブが既定で表示されなくなります。ライブラリで行った場合や [ファイル] タブと [ライブラリ] タブですね。

こんな感じ↓
  image

どれでもいいので、リストアイテムを選択すると出てくるのですが。。
  image

微妙ですよね。
コンテンツ エディター Web パーツだけではなく、ビューの aspx 内に Web パーツを追加するとこうなるんですよね。。
これも 2010 でもおんなじです。

もしこうなるのがどうしてもいやだ、でも列幅は調整したいんだ!って場合は、面倒ですが、SharePoint Designer 2013 で同様の CSS を追加してください。

1. SharePoint Designer 2013 で対象サイトを開きます。
2. 左側のサイト オブジェクトより [リストとライブラリ] をクリックします。
3. リストとライブラリの一覧が開くため、対象リストもしくはライブラリをクリックして開きます。
4. 対象リスト、ライブラリが開いたら、[ビュー] カテゴリーより、列幅調整 CSS を挿入したいビュー名をクリックします。
   image
5. ビューが編集画面 (ソースコード) で開きます。ほとんどのコードが黄色い背景で表示されているかと思います。
       これ、コード編集にロックがかかっている状態ですので、[ホーム] タブより [詳細モード] をクリックします。
   image

6.<asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server"> タグ内に CSS を挿入してください。他のタグの間にいれたりしないようにご注意を。
  自信ない方は <asp:Content ContentPlaceHolderId="PlaceHolderMain" runat="server"> タグのすぐ下がおすすめ。
   image

7.  上書き保存します。

この方法だと、Web パーツを追加しているわけではないため、リボンタブが既定で表示されない!ってことにはなりません。
  image

以上、リストやライブラリのビューで、列幅を調整する方法のご紹介でした。
さて、最後にちょっと考えてみてください。ここまでやってまで本当にその列幅、調整する必要ありますか?
「はい!」 って自信もてる場合はぜひ活用してやってください。ある程度、標準機能や画面を受け入れて、うまく利用するのが SharePoint の本当の活用です♪

奥田Bunny

SharePoint Online/SharePoint Server 2013 – サイト テンプレート保存ができない

ここ最近、よくいただく質問から第2弾です。

■ 質問内容

    サイトをテンプレート保存したいのに、サイトの設定画面に [テンプレートとしてサイトを保存] メニューがない。この場合サイト テンプレート保存はできないのか?
    image

    ■ 詳細

これもいつものヤツが原因です。そう発行インフラストラクチャです。

  • トップ レベル サイトを作成時に利用するサイト テンプレートによって、[テンプレートとしてサイトを保存] メニューが利用できるケースと利用できないケースがあります。
       – 利用できないケース
        トップ レベル サイト作成時に [発行ポータル] 等 [SharePoint Server 発行インフラストラクチャ] サイトコレクション
       機能が既定でアクティブ状態となるサイト テンプレートを利用した場合
       – 利用できるケース
        トップ レベル サイト作成時に、[チームサイト] 等の [SharePoint Server 発行インフラストラクチャ] サイトコレクション
       機能が既定で非アクティブ状態となるサイト テンプレートを利用した場合
  • 発行インフラストラクチャをアクティブ化すると、対象サイト コレクション内の全サイトで [テンプレートとしてサイトを保存] メニューが利用できなくなります。
    と、いうことで [テンプレートとしてサイトを保存] メニューが利用できない犯人はわかりました。
    発行インフラストラクチャがアクティブ化されていないと利用できない機能もそれなりにあるので、アクティブ化されているケースが比較的多いかと思います。

じゃあ、発行インフラストラクチャを、あとから非アクティブにすればいいのでは? と思いがちなんですが、運用中にアクティブ化されている発行インフラストラクチャを非アクティブ化することはおすすめできませんし、たとえあとから非アクティブ化したとしても、[テンプレートとしてサイトを保存] メニューは利用できるようにはなりません。 

■ 解決方法

ちょっとだけ注意が必要な解決方法ですが、どうしてもテンプレート保存したいサイトがある場合には、下記手順で [テンプレートしてサイトを保存] 機能を利用ください。また SharePoint Designer 2013 が必要です。

1. SharePoint Designer 2013 で、テンプレート保存したいサイトを開きます。

2. [サイト オプション] をクリックします。
    image

3. [サイト オプション] 内に 「SaveSiteAsTemplateEnabled」 パラメータがあればクリックして開き、値を true に変更して上書き保存します。
      なければ、[追加] をクリックし、「SaveSiteAsTemplateEnabled」 を 値を 「true」にして追加してください。
      image

4. 以上で SharePoint Designer 2013 は閉じていただいて結構です。

5. 設定したサイトの設定画面を開いても、[テンプレートとしてサイトを保存] メニューは復活していません。 
       次の URL でアクセスして直接テンプレート保存画面を開きます。

      サイトURL/_layouts/15/savetmpl.aspx

※ 「SaveSiteAsTemplateEnabled」がfalse になっている状態だと、URL で直接テンプレート保存画面を開いてもエラーになります。
   image

※ 発行インフラストラクチャをアクティブ化することで、トップレベル サイト内にシステム ライブラリが自動的に複数できあがります。
   [サイト コレクションのイメージ] とか [サイト コレクションのドキュメント] とか [コンテンツと構造のレポート] とか。
   それらも含めてサイト テンプレート保存することはおすすめしません。
   できればテンプレート保存するサイトはサブサイトにしたほうがいいです。また同様の理由ですが、テンプレート保存するサイトでサイト機能である [発行機能] は利用しない状態でのテンプレート保存をおすすめします。

以上、サイト テンプレート保存したいけどできない場合の解決方法でした。

奥田Bunny

SharePoint Online/SharePoint Server 2013 – サブサイト作成時に目的のサイト テンプレートがでてこない

ここ最近、よくいただく質問からです。

■ 質問内容

        ・ 発行サイトのサブサイトとしてチームサイトを作成できない
       
    ・ チームサイトのサブサイトとして発行サイトが作成できない

■ 詳細

これ両方とも、「作成できない」 わけではなく、サブサイト作成時に利用したいと思っているサイトテンプレートが表示されないということです。下記のようにいくつかパターンがありますが、サブサイト作成時に表示されるテンプレートが違う原因は、トップレベル サイト作成時に利用したサイト テンプレートが違うことです。

[A:チームサイトが作成できないパターン]
  image
    トップ レベル サイトを [発行ポータル] サイト テンプレートで作成している

[B : 発行サイトが作成できないパターン]
   image

   
トップ レベル サイトを [チームサイト] や [ドキュメントセンター] のサイト テンプレートで作成している 
      
※ 他のサイト テンプレートでも B パターンになることがありますが、よく利用しがちなサイト テンプレートのみあげています。
           解決方法はおんなじです。

[問題なくすべてのサイト テンプレートが利用できる状態]
   image

■ 解決方法

これ両方とももちろん解決方法はありますが、パターンによって解決方法が少し違ってきます。

[A:チームサイトが作成できないパターン] 
 
前述のとおり、トップ レベル サイトを [発行ポータル] サイト テンプレートで作成した場合にこのようになります。
 
解決方法は、下記のとおりです。

1. サイトの設定画面を開きます。
2. [ページ レイアウトとサイト テンプレート] をクリックします。
3. [サブサイト テンプレート] にチームサイトなどサブサイト作成時に利用したいサイト テンプレートを追加しておきます。
   image

[B : 発行サイトが作成できないパターン]
  
この場合の解決方法は、[発行インフラストラクチャ] サイト コレクション機能をアクティブ化することです。

1. サイトの設定画面を開きます。
2. [サイト コレクションの管理] – [サイト コレクションの機能] をクリックします。
3. [SharePoint Server 発行インフラストラクチャ] を [アクティブ化] をクリックして有効化します。

以上、サブサイト作成時に目的のサイト テンプレートがでてこないときの解決方法でした。

奥田Bunny