Excelプロパティとライブラリ列の連携

SharePoint

今回は覚えておくとちょっと便利なExcelファイル上のプロパティとドキュメントライブラリ上の列の連携について語ってみたり。

連携

まず連携ってどういうことなのよ?という点から。

Excelファイルには下図のようなプロパティを持たせることができます。

このExcelファイルをShare Pointのドキュメントライブラリにアップロードした時、ライブラリの列に対応するプロパティの値が自動でセットされるように設定できるのです。

では早速やり方を見ていきましょう。ここではShare Point Online と Excel 2013を使って説明していきます。

 

プロパティの設定(Excel側)

今回、下図のよく分からない申請書っぽい何かで説明していきます。太枠線内の値をライブラリの列と連携させてみます。

セルに名前を定義する

まずは対象のセルに名前を付ける必要がありますので、セルを選択して数式タブの「名前の定義」をクリックします。

「新しい名前」ウィンドウが開くので「名前」欄に適当な名前を入力して「OK」を押下します。名前は日本語名でもOKっぽいのですが、いまいち仕様がよく分からないので英語にしておきました。

プロパティの作成

次にExcelブックに対してプロパティを作成し、先ほど名前を付けたセルとリンクさせます。「ファイル」タブの「情報」から「プロパティ」をクリックし、「詳細プロパティ」をクリックします。

プロパティウィンドウが開くので「プロパティ名」を入力し「内容にリンク」にチェックを入れます。「リンク先」のドロップダウン項目に先ほどセルに付けた名前が表示されますので、選択して「追加」ボタンを押下します。

同様にして対象のセル分のプロパティを作成します。

これでExcelファイル側の設定は完了です。

設定変更(ライブラリ側)

ライブラリ側ではコンテンツタイプに関する設定の変更と、プロパティに対応する列の作成をする必要があります。

コンテンツタイプの管理

ドキュメント ライブラリの設定画面を開き、「詳細設定」をクリックします。

詳細設定画面の一番上にある「コンテンツ タイプの管理を許可する」で「はい」を選択し、画面下部の「OK」ボタンを押下します。

列の作成

同様にドキュメント ライブラリの設定画面から「列の作成」をクリックします。

列の作成画面では「列名」にプロパティと同じ名前を入力し「すべてのコンテンツタイプに追加」のチェックを外して「OK」ボタンを押下します。

この時、列の種類は「1行テキスト」としてください。その他の種類では連携できません。

同様にして作成したプロパティ分の列を作成します。作成後は下図のようになり、「使用箇所」欄が空となります。

※「ドキュメント」などの値が入っていたらコンテンツタイプの設定を開き、そこから削除してください

使い方

作成したライブラリに作成したファイルをアップロードするだけです。

試しに先ほどの申請書っぽいもので動きを見てみましょう。

アップロードすると、、

列にExcelファイルの値が入っていますね。

使い道

例に出したように申請書の管理などに使えます。

列に値が入りますので、申請者の部署や名前などでフィルタリングしたり、ビューで自分の所属部署のファイルに絞り込んだりといった使い方が可能です。

その他の使い方は、、、正直思い浮かびません。。何か便利な使い方をご存知の方は教えていただけると幸いです。。

 

コメント

  1. 織田 より:

    同じ仕組みを作成していて躓いております。
    こちらで紹介されている
    連携確認ライブラリとExcelフォームですが
    Excelでは10月23日と入力されていますが
    sharepointでは違う日時が返されています。
    こちらが直せずに困っておりますが手順はありますでしょうか?

    • lafra lafra より:

      コメントありがとうございます。
      検証したわけではないので推測となってしまいますが、タイムゾーンの関係で9時間前になってしまっていると思われます。

      日本はUTC+9ですのでExcel上ではUTC+9の時刻を持っています。
      SharePointはグローバルに展開しているサービスなので、内部ではUTC+0の時刻を保持しようとして -9時間した時刻を格納します。ここで記事中画像の22日15:00の値になります。
      本来であればこの時刻を現地時刻に戻して表示するところですが、列のタイプが1行テキストとなっているため、変換されずにUTC+0の時刻が文字列として格納されてしまったと思われます。

      対応策としては、ユーザーが入力するセルとは別に連携用のセルを用意し、その中で+9時間してやればよいかと思います。
      A1セル:入力用 (例 2020/04/20 00:00:00)
      B1セル:連携用、A1セル + 9時間 (例 2020/04/20 09:00:00)

      もしくは最初から文字列として連携してしまえば問題ないかも。。

  2. ひら より:

    初心者向けに平易な表現をしてくださっているようで、助かります。

    当方、某書籍を参考にSharePointを用いた書類保管庫のようなものを作れないかと
    上司の指示を受けて途方に暮れている者です。
    使用する書類の種類は、社員がダウンロードする人事書類などです。
    何でもできるような感じが、逆に初心者にはとっつきにくく困っています。

    Excelの連携と関係ないのでこちらのコメントであっているのか分かりませんが、
    SharePoint内にサブフォルダを作ると、
    メインフォルダの中身しか検索に引っかかってこないような仕様のようなので、
    サブフォルダは作らず、悪く言えば「むやみやたらに」メインフォルダにファイルを放り込み、
    (作成者や部署のように、自動でアップされない)
    複数種のメタデータを作成して絞り込みができればいいと思っていますが、
    そうするとファイルのアップ時に逐一メタデータの作成をせねばならず詰んでいます。

    そういった「ユーザーで勝手に作成した列」をアップ時に自動で登録するなど、
    何かいいお知恵はありませんでしょうか?
    PowerAppsとかなら実現可能ですか??

    不躾にすみませんが、お分かりになる範囲でお答えいただけると幸いです。

    • lafra lafra より:

      SharePointのドキュメントライブラリ内にフォルダを作成しても検索には引っかかったかと思います。
      ひっかからない原因としてよくあるのが以下のパターンですので一度ご確認ください。
      1.ファイルの情報がインデックスされていない
      2.日本語で検索していてワードがマッチしていない

      まず1ですがファイルを登録・格納した直後ですと、ファイルの情報がインデックスされていない為に検索にひっかかりません。
      (インデックスは検索時に参照される索引のようなものです)
      この場合は時間経過か、ライブラリの設定画面から手動でインデックス作成してやることで解消します。

      2ですが、SharePointが元々アメリカの製品の為に日本語の検索能力がイマイチです。
      検索対象となるファイル名やファイル内の文字列を単語単位で区切り、それらが検索ワードと一致していたら結果に表示する、こんな動きをします。
      日本語の場合、その単語単位で区切る処理が変な区切り方をしてしまい、一致しないことがあります。
      例えば「書類保管庫」なら「書類 / 保管庫」と区切られそうなものですが「書類保 / 管庫」と区切られてしまって「書類」が一致しないといった感じです。※あくまでこんなイメージというお話

      >そういった「ユーザーで勝手に作成した列」をアップ時に自動で登録するなど、何かいいお知恵はありませんでしょうか?
      自動で登録するとなるとPowerAutomate(旧Flow)というサービスで実現可能かと思います。
      ただ、そちらも若干クセのあるサービスなので少し勉強が必要になるかもしれません。
      それ以外ですとライブラリに列を作成する際に必須項目として設定しておくことで、ファイルアップ時に入力を促す画面が表示されるようになります。少し手間ですがそこで入力していただくのが一番簡単に実現可能かと。

  3. ひら より:

    早々のコメントありがとうございます。

    挙動など確認して精進します。ご丁寧にありがとうございました。

タイトルとURLをコピーしました