Visio : Visio 2016 は IRM が使えます!

 

石田です。

Office 2016 がリリースされました。

こちらに新しい機能の概要が載っているので、この内容をベースに Visio 2016 の新しくなった機能を簡単に画面ショットつきでまとめてみました。

 

■ スターター ダイアグラム (図面)

Visio では基本的に、図面を新規作成をしたときには、ページ上は真っ白で図形は配置されていませんが、Visio 2016 では、[基本フローチャート] や [詳細なネットワーク図] などの一部のテンプレートに「スターター ダイアグラム」というサンプルが用意されていて、サンプルの図面やちょっとした編集のヒントがページ上に描かれています。

このままこの図面で完成!っていうわけにはいかないですが、作成の参考にはなりますし、合わせていくつかのヒントが記載されているので、あまり詳しくない方にもやさしいかな、と思います。

starter

 

■ 操作アシスト

Visio に限らず、Office 2016 には操作アシストという操作や設定の支援機能があります。

「実行したい作業を入力してください」と書いてある操作アシストのボックスに、やりたいことや知りたいことを入力すると、候補が表示され、設定のオン / オフを実行できたり、設定画面が表示されたり、ヘルプへの誘導が表示されたりします。

たとえば、、、

Visio で [図面の保護] の設定をするとき、リボンの [開発] タブを表示して、[ドローイング エクスプローラー] からダイアログ ボックスを表示するのが一般的なのですが、[開発] タブを表示していなくても、キーワードを入力してダイアログ ボックスを表示したりできます。

"調べたい" ときと、どこにあるのかは知ってるけど "こっちのほうが早い" ときと、使う理由はさまざまですが、ちょっと賢いヘルプとして活躍してくれそうな気がします。

ただ、、、どんどん私がモノを覚えなくなるような不安もあります。。。

telllme

 

■ クイック インポート

もともと Visio にはデータ リンクという機能があって、Excel や Access、SharePoint リストなどのデータを図面にインポートして、図面ページ上の図形とリンクし、図形データとして格納する、という機能があります。

大まかな手順として、

1. データをインポートする

2. 図形にデータをリンクする

3.(必要なら) データ グラフィックを設定する

という操作を行います。

Visio 2016 では、データソースが Excel の場合に限って、「データをインポートして、なおかつ、図形のテキストと一致すればリンクまでやりますよ。データ グラフィックもつけます。」という機能が追加されています。

 

たとえば、Visio で作成した座席表と Excel で作成した社員のデータがあるとします。

 

quick

 

クイック インポートを実行してデータソースとなる Excel ブックを指定すると、こんな感じ ↓ でインポートや図形とのリンクが実行されます。

もちろん今までどおりのウィザード形式の手順での実行も可能ですので、「これだったらクイック インポートで OK かな」というときに使うものでしょうね。

そもそもインポートしたいのが Excel ブックのデータではないとか、取り込む列や行を指定したいという場合は [ユーザー定義のインポート] から、今までと同じようにウィザードで実行し、図形とのリンクを行います。

quick2

 

■ データ グラフィック

データ グラフィックは Excel の条件付き書式のような機能です。

"図形データ" に登録されている情報を使って、図形のそばに文字列を表示したり、図形の色分けをしたり、アイコンを表示したりできる機能です。(こちらでも紹介しています。)

Visio 2016 では、データ グラフィックの設定がしやすくなっていたり、グラフィックの種類が少し増えたりしています。

(この色がいいかどうかは別として) 座席の色を部署ごと色分けする設定をしてみました。
色が気に入らなければもちろん編集できます。[編集] からアクセスしたダイアログ ボックスは Visio 2013 と同じです。

datagraphic

 

■ IRM の適用

やっと!Visio でも IRM (Information Rights Management) が利用できるようになりました。

IRM の詳細はここには書きませんので、このあたりでご覧ください。

意図しない図面の持ち出しに対して、印刷の制限などの要望が多かったので、Visio 2016 を使う一番大きなメリットかもしれません。

IRM

 

 ■ 図形のデザインが少しかっこいい&増えている

一部の図形、特にフロアプランや用地計画などで利用されるステンシルの図形のデザインが新しくなっていました。

下図は、[オフィス レイアウト図] テンプレートで、机やテーブル、植木なんかを配置した図面です。

同じシェイプを使っていますが、Visio 2013 と Visio 2016 ではデザインに違いがることがわかります。

これが、「モダンになりました。」ということなのですね。

あと、、、[オフィス用アクセサリ] ステンシルにビリヤード台や卓球台なんていうシェイプが増えていたので、ビリヤード台を置いてみました♪

stencil

 

まだまだこれから Office 2016 全体を見ていかねばなりませんが、まずは Visio 2016 の新しい機能のご紹介でした。

 

-Kanoko Ishida

広告

Office 365 API サンプル (Exchange Online、OneDrive for Business へ接続する Web アプリケーション)

Office 365 API を利用すると、OAuth と REST により Exchange Online や SharePoint Online のデータに外部アプリケーションからアクセスできます。Office 365 API は 2014年10月に正式リリースされましたが、プレビューのときと比べて REST API は多く変更されています。特に Exchange!

Web で検索するとサンプル コードはいっぱい見つけることができますが、その記事の書かれたタイミングによってもしかするとプレビューの頃の REST API を使っているかもしれないので、サンプルコードを実行してみたいときには注意が必要です。

現在の REST API リファレンス
 http://msdn.microsoft.com/en-us/office/office365/api/api-catalog

また MSDN に 「Office 365 API プレビューのコード サンプル」 って記事があり、Office 365 API の利用サンプルが、MVC アプリケーションのものから Windows 8 アプリに Windows アプリといくつかのバリエーションで提供されています。とってもとっても参考になるんですが、このサンプルコードも今のところプレビュー時のコードなのでご注意を (2015年1月現在) しくみは変わってないので、上記 REST API リファレンスを見ながら REST 呼び出し部分や返ってきたデータ構造の扱い部分のみ、若干変更が必要です。

ここで提供されているひとつめのサンプルである 「Office 365 APIs: Web server app using REST calls」 について、現行の 365 API にあわせて、一部コードを修正してみました。

  修正後のサンプル ソリューションのダウンロードを行う

<サンプルの動作イメージ>
  Office 365 API で提供される REST API を利用して、OneDrive for Business のファイルを取得してみたり、Exchange Online のメールや予定を取得するといったとってもシンプルなものですが、365 API を利用について基本が全部つまってます。理解できれば、あとはやりたいことに応じて呼ぶ REST API が変わるだけ。
365Sample1

また Office 365 API を利用しているサンプル プログラムは動作確認するためには Azure AD への登録と、登録時に生成される ID と キーをコード内に含める必要があります。

参考までに、サンプルソリューションを動作させる方法も。

① 接続先の Office 365 サブスクリプションで、Azure AD サブスクリプションを利用するためのサインアップを行う  (これは1回だけでいいので、すでに行っている場合はスキップ)

    • Windows Azure ポータルに Office 365 管理者アカウントでサインイン
      ここで無事 Office 365 管理者アカウントで Windows Azure ポータルにアクセスできれば、サインアップは過去にやってあるってことです。
    • サインアップをまだやっていない場合は、「サブスクリプションが見つかりません」的なメッセージが表示されるので、めげずに 「Microsoft Azure にサインアップ」 をクリックする
    • 画面にしたがってサインアップ (登録) 作業をすすめてください。
      クレジットカードの登録を求められますが、Azure AD のみを利用する分にはお金はかかりません。
    • サインアップが終わると、Office 365 管理者アカウントを利用して Windows Azure ポータルにアクセスできるようになり、下図のように、組織名 (Office 365 テナント名) が表示されることが確認できます。
      365Sample3

      また、サインアップ後は、Office 365 管理ポータル内の 「Azure AD」 をクリックすると、Azure ポータルが開けるようになります。
      365Sample2


② Azure AD にアプリを登録

  • VS でデバッグ実行でのみ確認したい場合、あらかじめ VS プロジェクトをデバッグ実行する際の開発環境のポート番号を確認しておいてください。
    プロジェクトのプロパティで確認できます。
    http://localhost:**** ってやつですね
  • Azure ポータルに Office 365 管理者アカウントで入り、組織名をクリック – [アプリケーション] をクリック
  • アプリケーションが一覧されたら、画面下部の [追加] をクリック
  • ダイアログが表示されるので、[組織で開発中のアプリケーションを追加] → 任意のアプリケーション名を登録 → [サインオン URL] にデバッグ実行用の URL を指定 & [アプリケーションの URI] に任意の値を設定
  • アプリケーションが登録されるので、[構成] をクリック
    画面下部の [アプリケーションの追加] をクリックし、Exchange Online と SharePoint Online を追加する
    さらにアクセス許可を設定する。設定後、[保存] クリックしといてください。
    上の

    サンプルを動かすためには、Exchange Online に 「Read users’ mail」 と「Read users’ calendaers」 SharePoint Online には 「Read users’ file」 が必要です。

  • クライアント ID をコピっておく
  • キーを生成 (時間を選択して保存すると生成される) して、コピっておく

 


③ サンプル コード内にクライアント ID とキーを入れる

ダウンロードした Office 365 API のサンプル プログラムにはクライアント ID とキーを指定するコードがあります。この記事で紹介しているサンプルプログラムの場合は、web.config 内です。

 

 

以上、Office 365 API のサンプルプログラムと動作確認方法についてでした。

2015年2月、4月、6月にこんな無償セミナーもあります!ご興味ある方はぜひ受講を検討ください!

「Office 365 API によるアプリ開発と Azure AD 徹底解説」 ハンズオン セミナー

「マルチデバイスに対応した Excel、Word、Outlook、OneNote など Office 連携アプリ構築の最新テクニック」 ハンズオン セミナー (無償) のご案内

開発者向け無償セミナーのご案内です。
下記セミナーを、品川の日本マイクロソフト社で開催いたします。

「マルチデバイスに対応した Excel、Word、Outlook、OneNote など Office 連携アプリ構築の最新テクニック」

   – 2015/03/23 (月) 18:30 ~ 21:00
    https://msevents.microsoft.com/CUI/InviteOnly.aspx?EventID=89-E4-B6-BF-17-87-DC-42-B7-00-37-CB-FB-CE-88-76&Culture=ja-JP&community=0

   – 2015/05/22 (金) 18:30 ~ 21:00
https://msevents.microsoft.com/CUI/InviteOnly.aspx?EventID=89-E4-B6-BF-17-87-DC-42-A5-15-90-C4-CC-10-14-6E&Culture=ja-JP&community=0

2013 から新しく登場した Office 開発 のモデルである Offce 用アプリ (Office クライアント/Office Online に対応した開発、ストアへの展開などが可能) の概念から開発方法についてをご紹介します。またエンドユーザー向けサービスである OneDrive や OneNote と連携するアプリ開発方法をご紹介します。

  • Office 用アプリ
    Office 2013 から登場した Office 拡張機能の開発・展開モデルです。
    2013 の Office で、[挿入] タブ – [ストア] をクリックすると、Office 用アプリ (Office をさらに便利に利用するためのアドオン製品) が売られているマーケットプレイスに接続できます。無償のものであれば、すぐに自分の Office ファイル内で利用できます。有償のものも、インターネット経由で購入し、自分の Office ファイル内で利用ができます。
    AppO1
    実習で一緒に Office 用アプリの開発を行っていただけます。Office 用アプリは VBA や VSTO (.NET 開発) といった従来の Office 機能拡張とは違う特徴を持つ開発モデルです。
    ・ Office クライアント、Office Online 両方で動作するアプリ開発が可能
    ・ マーケットプレイスを利用して販売ができる (もちろん組織内展開のみ行う方法もあります)
    ・ 開発の基本は、Web スタンダード (HTML、JavaScript)

 

  • OneDrive、OneNote 機能に接続
    コンシューマー向けサービスとして提供されている OneDrive、OneNote に接続するための API を利用した Web アプリケーション開発を実習で行います。
    ハンズオンはすべてブラウザー ベースの開発ツール (Visual Studio Online Monaco) を利用するため、Visual Studio をインストールしたマシンをお持込いただく必要はありません。またコーディング内容は基本 JavaScript、HTML を利用します。

無償イベントで事前登録が必要です。3月、5月と現在2開催を予定しております。

「Office 365 API によるアプリ開発と Azure AD 徹底解説」 ハンズオン セミナー (無償) のご案内

開発者向け無償セミナーのご案内です。
下記セミナーを、品川の日本マイクロソフト社で開催いたします。

「Office 365 API によるアプリ開発と Azure AD 徹底解説」

     – 2015/02/20 (金) 18:30 ~ 21:00
      https://msevents.microsoft.com/CUI/InviteOnly.aspx?EventID=89-E4-B6-BF-17-87-DC-42-7C-BB-3D-6E-34-F7-C8-8D&Culture=ja-JP&community=0

     – 2015/04/24 (金) 18:30 ~ 21:00
https://msevents.microsoft.com/CUI/InviteOnly.aspx?EventID=89-E4-B6-BF-17-87-DC-42-D6-A2-A4-D5-B8-5A-CF-66&Culture=ja-JP&community=0

     – 2015/06/22 (月) 18:30 ~ 21:00
https://msevents.microsoft.com/CUI/InviteOnly.aspx?EventID=89-E4-B6-BF-17-87-DC-42-14-B8-F8-8B-AA-B8-0E-46&Culture=ja-JP&community=0

Office 365 API と Azure AD を利用したアプリケーション開発について、ハンズオン形式で、サンプルアプリケーションを一緒に開発しながら解説する内容です。

  • Office 365 API ってなに?
    Office 365 API は 2014年10月に正式リリースされ、Office 365 内のデータに外部アプリケーションから接続するための API です。現在 Exchange Online、OneDrive for Business、SharePoint Online に対応しています。Windows 上のアプリケーションからだけではなく、Web アプリケーション、iOS、Android から Offce 365 API が利用し、メールや連絡先、予定、SharePoint データにアクセスできます。
  • Azure AD ってなに?
    Azure Active Directory。クラウド上で利用できるディレクトリ サービスです。Office 365 で利用されています。(それ以外の Microsoft オンラインサービスでも利用) ID 管理を行い、クラウド サービスへのアクセスを一元的に管理できるものです。少し前に、Office 365 管理画面にも、表示されるようになったやつですね。
    AAD

Office 365 を利用していれば、Azure AD が利用できます (Office 365 を契約していれば、無償版の Azure AD のみ利用できる Azure サブスクリプションが使えます。サインアップ操作は必要ですが)
このセミナーでは、Exchange Online や SharePoint Online のデータにアクセスする Web アプリケーションを開発する実習をハンズオンで行います。

   1. Office 365 テナントに付属する Azure AD のみ利用できる Azure サブスクリプションのセットアップ
   2. Web ベースのアプリケーション開発 (Azure Web サイト)
   3. 開発した Web アプリケーションを Azure AD に登録
   4. Office 365 API を利用した認証フロー部分の開発
   5. 動作テスト!

ハンズオンはすべてブラウザー ベースの開発ツール (Visual Studio Online Monaco) を利用するため、Visual Studio をインストールしたマシンをお持込いただく必要はありません。またコーディング内容は基本 JavaScript、HTML (一部 PHP) を利用し、C# や VB (.NET) は利用しませんので、.NET 開発者の方以外も大歓迎です。またハンズオン時に、Office 365 管理者アカウントや Azure アカウントを利用するため、ご自身の環境で開発実習を行っていただけます。アカウントのセットアップは事前に行っていただく必要があり、方法はお申込時、もしくはお申し込み後にご案内さしあげる予定です。

無償イベントで事前登録が必要です。2月、4月、6月と現在3開催を予定しております。
すべて 18:30 からと、夜開催です。この機会に少し早めにオシゴトを切り上げていただいて Office 365 の最新の開発方法にふれるお時間はいかがでしょうか。

奥田

プログラミングなしでリストにアイテムを追加する

この投稿は Facebook Office 365 コミュニティ Advent Calender 2014 の 12月13日分として投稿するものです。

みなさん、こんにちは。クリエ・イルミネートでノンテク担当の沼口です。
Office 365 の SharePoint Online や SharePoint Server のカスタム リストへのアイテムの追加で悩んだことありませんか。
特に、すでに Excel で管理していたものを SharePoint 上で作成したカスタム リストに移したい場合です。

10件、20件なら手入力すればいいですが、100件、500件、1000件となると、時間もさることながら誤入力も想定されるため、自動化、バッチ化したいところ。(バッチって古いなぁ) 「SharePoint リスト にアイテム追加」で検索すると、C# で SPListItem を使ったり、REST API を使ってのアイテム追加の記事を見つけることができますが、これを、プログラミングなしでしてみよう、というのが今回ご紹介するやり方です。

SharePoint ~ Access 連携の既出ネタといえば、既出ネタですが最後までお付きあいください。
なお、サンプルとして使用したデータは「なんちゃって個人情報」サイト様からお借りしました。ありがとうございます。

さて、プログラミングしないとなると製品やサービスの「機能」を使うしかないわけですが、SharePoint リストの機能として「エクスポート」はあっても、インポートはありません。しかし、その昔、SharePoint が Microsoft Office SharePoint Server (MOSS) と呼ばれていたように、Office 製品側に SharePoint への「エクスポート」機能があったりします。例えば Excel にはテーブル デザイン タブのエクスポートに「テーブルを SharePoint リストにエクスポート」という機能があります。しかし、この機能は Excel のテーブルごと、そっくりそのまま SharePoint リストとして新規作成してしまいます。既存もしくは自分が作成したカスタム リストにアイテムを追加することはできません。

ExcelTblSpExport

すでに作成済みの SharePoint リストに Excel のデータをリスト アイテムとして追加する、それも VBA を含む、プログラミングなしでやろうとした場合は Excel だけではできませんが、Office 製品群のひとつである Access の機能を使うとプログラミングせずに既存のリストへ Excel のデータをリスト アイテムとして追加できます。では、その手順を追っていきましょう。

1. カスタム リストを作成する

今回はすでに SharePoint 側でカスタム リストが作成されている、という前提で、そのリストに Excel で管理されているデータをリスト アイテムとして追加することが最終目的です。そのため、事前にカスタム リストを作成します。

例として、以下のようなカスタム リストを作成します。

リスト列

1行テキスト、選択肢、数値、日付と時刻などが使われています。
このリストの入力画面は以下のようなものです。

入力画面

すでにこのリストには SharePoint のリスト入力画面からデータ(アイテム)が数件入力されているものとします。ここに今まで Excel で管理していた、すでに手元にあるデータを追加したい、それもノンプログラミングで追加したい、というシナリオです。

リストサンプル2

これまで Excel で管理していたデータは、基本的には今回作成したリストと同じような項目があります。

Excel顧客データ

先に重要な「できないポイント」を提示しておきます。

SharePoint リストの列の作成で「選択肢」を選び、そのオプションで「チェック ボックス(複数選択可能)」を選んだ場合、今回の主旨のプログラミングしないで Excel から Office 製品の機能だけを使って SharePoint リストにアイテムを追加することはできません。(2014/12/13現在、、、)

これは SharePoint リストとのデータ連携に限らず、Access ~ Excel の間でも存在する課題で、Access のテーブル デザインビューのフィールド プロパティで [ルックアップ] タブの [複数の値の許可] を [はい] にしたフィールド(つまり、複数選択可能)への Excel からのデータのインポートは単純な機能だけではできないようです。

この複数選択可能もしくは複数の値の許可が [はい] として設定されたフィールドは、フィールドの中に子のレコードセットが存在していることになり、単純なテキスト、たとえば、カンマ( , ) で区切る、セミコロン( ; )で区切るといったテキストから子のレコードセットを Access のリンク/データインポートの機能で生成することが現状はできません。このインスタンスを作るためには Access VBA でプログラムする必要があります。

[参考] Access 2013|office 2013 DAO で複数値を持つフィールドを操作する方法
http://msdn.microsoft.com/ja-jp/library/ff821054.aspx

一方で、SharePoint リストと Access の間だけでみると、SharePoint リストの「選択肢 チェックボックス(複数選択可能)」の列は Access の「データ型:短いテキスト ルックアップ:コンボ ボックス 複数の値の許可」にマッピングされ、Access から SharePoint リストのアイテムの操作はデータシート ビューから可能です。

今後も Excel からのリスト アイテム追加の作業が発生することが予見されるようであれば、「カレーの食べ方」列での「選択肢 - チェック ボックス(複数選択可能)」をやめ、別の手段をとるほうが得策です。今回は、「カレーのルーの位置」列と「カレーとごはんの関係」列に分け、それぞれの列を「選択肢 ― ラジオ ボタン」(択一)に設定しなおします。

リストアイテム入力画面2

 

すでに存在している SharePoint リストが複数選択可能な列を利用している場合は、残念ながら上記理由でプログラミングするしかありません。

2. Access で SharePoint リストに接続する

SharePoint リストにアイテムを追加するために、どのようなフォーマット(アイテム構造)を用意すべきかを調べるために、まず、Access を使います。 Excel は SharePoint から Excel への一方通行のデータ接続を提供していますが、Access は SharePoint リストと双方向のデータ接続が可能です。いえ、双方向というよりは、SharePoint リストの入り口、窓口、フロントエンドとなる、と考えた方がいいかもしれません。

SharePoint リストと Access のデータ接続は Excel のそれと同じです。SharePoint リストのリスト タブの [接続とエクスポート] から [Access で開く] をクリックします。

リストタブアクセス

ダイアログが表示され [OK] をおすと、Access が開きます。CustmerList に関連する List (参照先リスト)もリンクされます。

Access開く1

左サイドにあるテーブル名をダブルクリックすれば、データシート ビューが開きます。

Access開く2

この Access の SharePoint リンク テーブルから一旦 Excel にテーブルをエクスポートして、Excel 側でどんなデータを用意すればいいかを確認します。
また、このリンク テーブルは最終的にリンクされている SharePoint リストへのアイテム追加にも使います。

外部データ タブの [エクスポート] の [Excel] をクリックします。

Excelへエクスポート

書式設定とレイアウトの保持のチェックはしません。ここ重要です。[OK] をクリックします。

AccessExcelスプレッドシート

確認のダイアログが開いていますので閉じてください。

このエクスポートされた Excel のワークシートを参考にしてどのようなデータを用意すべきか確認します。

3. Excel で SharePoint リスト用のフォーマットを修正する

以下がエクスポートされたワークシートです。列数が多いので2つの図に分けています。

エクスポート1

エクスポート2

ピンクの列は SharePoint が付けた列です。別の言い方をすれば、ユーザーによって作成・追加された列ではありません。

オレンジ色の列はユーザーが見えているものとは違う列です。これは他のリストを参照先とする参照列です。[都道府県] と [キャリア] が該当し、ドロップダウン リストから選択した文字列ではなく参照先リストのアイテム ID が割り振られています。

リスト アイテムの入力画面では、白い列とオレンジの列だけ入力すればよく、ピンクの列は SharePoint が用意してくれます。このことから、[タイトル]、[名前]、[フリガナ]、[メールアドレス]、[性別]、[誕生日]、[婚姻]、[都道府県]、[携帯番号]、[キャリア] のユーザー追加の列を用意し、[都道府県] と [キャリア] は該当するアイテム ID を入力すればいいことになります。

[都道府県] と [キャリア] については、SharePoint リストから Access へエクスポートした時に「関連するリスト」として一緒に Access にエクスポートされています。ですから、これらも Excel にエクスポートしてしまいます。

もうひとつこのデータの場合は注意点があります。それは冒頭に説明した「カレーの食べ方」です。(複数選択可能な選択肢の列)

SharePoint リストの列の複数選択可能な選択肢問題で、「カレーの食べ方」列は「カレーのルーの位置」と「カレーとごはんの関係」の2つの列に分けられました。Excel のブックにあるデータは「右ルー・せき止め派」のように「・」で区切られているデータです。これを Excel 側で2つの列に対応する変換をする必要があります。

これで材料はすべて揃いました。Access から Excel にエクスポートした最初のブックにある列名を使って、SharePoint エクスポート用のデータを用意します。 VBA でももちろん処理できますが、プログラミングしない縛りなので、関数でやってみましょう。

元データがあるブックに追加ワークシートとして「エクスポート用」、「都道府県」、「キャリア」ワークシートを追加します。「都道府県」と「キャリア」は Access からエクスポートしたデータをコピーします。エクスポート用は Access からエクスポートしたワークシートから必要な列名(白とオレンジの列)だけをコピーします。

カスタマリストワークシートExcelで管理していたカスタマーリスト

エスくポート用ワークシートエクスポート用の空のワークシート

都道府県インポートした都道府県リスト

キャリアワークシートインポートしたキャリア リスト

[カスタマーリスト]、[都道府県]、[キャリア] の各シートの情報から [エクスポート用] ワークシートにデータを数式を使って準備していくわけです。なお、それぞれの表は「テーブル」形式に変換しています。エクスポート用の表をテーブルにすることは必須ではありませんが、Excel のテーブルで利用できる構造化参照による数式を使ったほうがわかりやすいためテーブルにしています。

以下がポイントになります。このあたりは完全に Excel のテクニックになります。

  • 変更なしの列は単純に数式で参照させる
  • 都道府県は、カスタマーリストから参照した「都道府県名」を使って、都道府県ワークシートから MATCH/INDEX 関数を使って ID を抜き出す
  • キャリアについても同様にキャリアワークシートから MATCH/INDEX 関数を使って ID を抜き出す
  • カレーの食べ方では「・」より前をカレーの位置、後をごはんとの関係にいれる
  • タイトルは固定で「顧客情報」をすべてのレコードに入力する
  • ふりがなが SharePoint リストではフリガナになっているので PHONETIC 関数でカタカナに変換する

数式を参考として以下に示します。

都道府県
=INDEX(PrefTbl[ID],MATCH(CustTbl[@都道府県],PrefTbl[都道府県名],0))
キャリア
=INDEX(CarrierTb[ID],MATCH(CustTbl[@キャリア],CarrierTb[キャリア],0))
ふりがな
=PHONETIC(CustTbl[@ふりがな])
カレーの位置
=MID(CustTbl[@カレーの食べ方],1,FIND(“・”,CustTbl[@カレーの食べ方])-1)
ごはんとの関係
=RIGHT(CustTbl[@カレーの食べ方],LEN(CustTbl[@カレーの食べ方])-FIND(“・”,CustTbl[@カレーの食べ方]))
タイトル
=”顧客情報”  式で文字列を入れれば、テーブルの行追加の新規行でも同じ文字列が入力される

この方法でテスト用30件のエクスポート用のデータをオートフィルで生成しました。
ちなみに、テーブルの右下のフィルハンドルをドラッグしたオートフィルを使って 5,000件以上のデータを再計算させながら準備しましたが、、、、Excel 無茶苦茶速いです。気持ち悪くなるほどに軽いですね。この程度の処理ならば。

300サンプル

実際は、生成された列をチェックするチェックシートなどといった2重、3重チェックを業務では組み込むことになるでしょう。
特に Excel のデータは手入力されているものが多いケースもあり、数字、アルファベット、カタカナの全角・半角や、無駄な空白の削除、選択肢であれば存在チェックなどをします。

4. Access のインポート機能を使って、Excel のデータを SharePoint リストに追加する

SharePoint リストのタブから生成した Access へのデータ接続をそのまま使って、上記で準備した Excel のエクスポート用テーブルを SharePoint リストに追加します。

外部データ タブの [インポートとリンク] の [Excel] をクリックし、[外部データの取り込み – Excel スプレッドシート] ダイアログで、エクスポートするデータのあるブックを指定し、[レコードのコピーを次のテーブルに追加する] で対象となるリストを選択する。この例の場合は [CustmerList] を選択。[OK] をクリックします。

データ取り込み

 

Access の追加先のテーブルが開いているダイアログがでたら [はい] をクリック。

追加先テーブルダイアログ

インポートウィザードが開始されます。ワークシートが複数あるので「エクスポート用」を選びます。

インポートウィザード1

[先頭行をフィールド名として使う] がすでにチェックされているので、そのまま [次へ] をクリック。

インポートウィザード2

インポート先のテーブルに間違いがないことを確認して [完了] をクリック。

インポートウィザード3

エラーなく完了すると、インポートした旨のダイアログになります。[閉じる] をクリック。

エクスポート完了

SharePoint 側で確認します。
もともとあった3件のリスト アイテムの下に30件のアイテムが追加されました。

updated1

このインポートは「列名」を比較しています。列名が同じものでなければいけないことに注意してください。そのため今回は一旦 Access から Excel に SharePoint リンク テーブルをエクスポートして、エクスポートしたデータから列名をコピーして使いました。

5. [参考] パフォーマンス

Office 365 SharePoint Online と Excel + Access によるリスト アイテム追加のパフォーマンスを計測してみました。もちろん、ネットワークの実行速度や PC の CPU/メモリーで差が出るところですが、意外に速いと思いました。

件数は 4,996 件を新たに追加して、計 4,999 件にしてみます。

サンプル追加データ(4,996件)

4997件

 

追加された SharePoint アイテム(4,999件)

4999

 

1回目: 2分52秒 (1秒あたり 29 アイテム)
2回目: 2分53秒
3回目: これ以上やると MS から怒られそうなので中止。。。

終わりに

SharePoint の活用となると、どうしても C#/VB による .NET 開発もしくは HTML/CSS/JavaScript に行きがちですが、Office 製品との組み合わせでもかなりのことができると思います。今回ご紹介したケースなどは、SharePoint リストの特徴(というか、Office 連携すると厳しいところ = 複数選択可能列)を理解した上で SharePoint リストを用意しましたが、結局重要なのはインポート用のデータを用意する Excel のスキルだと思います。Excel 側ではそれほど難しいことをやっているわけではありませんが、実務でよく使われる関数の組み合わせを知っていると知っていないとでは全くやれることが変わるでしょう。

リスト操作で Access をリストとの双方向フロントエンドとして、リスト アイテムの集計、操作を Excel でやる、さらに Excel Services を使ってワークシートや指定範囲、グラフ、ピボットテーブルをページで表示する、アイテム数の多いものは SharePoint Access アプリを使うなど、SharePoint と Office の組みあわせを工夫するなどでかなりのことができると感じています。

最後までお読みいただきありがとうございました。クリエ・イルミネートのノンテク担当 沼口でした。

次の Advent Calender は CLRH.jp の naoki さんです。

Office 用アプリ開発、Office 365 API ハンズオン セミナー (無償) のご案内

セミナーのご案内です。
下記セミナーを、品川の日本マイクロソフト社で開催いたします。

   「Office を活用したアプリ開発のステップ バイ ステップ」
     
– Office 用アプリ、OneNote、OneDrive、Office 365 API を活用したアプリケーション開発

     2014年12月15日 (月) 18:30 ~ 21:00

   https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032605627&Culture=ja-JP&community=0

最新の Office 開発について、ハンズオン形式で解説させていただく内容で、PC をお持ちこみいただくこと (MS アカウント必要) により、実際に実機で操作もためしていただけます。

– Office 用アプリ
  2013 から新しく登場した Office 開発 のモデルである Offce 用アプリ (Office クライアント/Office Online に対応した開発、ストアへの展開などが可能) の概念から開発方法についてをご紹介します。

– Office 365 API
  SharePoint Online や Exchange Online に接続するアプリケーション間発に利用できる API です。Windows 上のアプリケーションからだけではなく、Web アプリケーション、iOS、Android から Offce 365 API が利用し、メールや連絡先、予定、SharePoint データにアクセスできます。リリースされたばかりの最新の API について、AzureAD へのアプリケーションの登録方法や API の利用方法をご紹介します。

ハンズオンはすべてブラウザー ベースの開発ツール (Visual Studio Online Monaco) を利用するため、Visual Studio をインストールしたマシンをお持込いただく必要はありません。またコーディング内容は基本 JavaScript、HTML (一部 PHP) を利用し、C# や VB (.NET) は利用しませんので、.NET 開発者の方以外も大歓迎です。

またハンズオン時に、Office 365 管理者アカウントや Azure アカウントを利用します。こちらはハンズオン用に用意したものを当日はご利用いただけますが、もしご自身のアカウントをすでにお持ちの場合、そちらを利用いただくことも可能です。

最新の Office 開発について興味がある開発者の方はぜひご参加くださいませ。無償イベントで事前登録が必要です。こちら、11月にも開催があり、2回目の開催となります。また2015年1月23日にも開催を予定しております。

3社協業による Office 365 社内ポータル内製化支援サービスを発表しました

先日、株式会社ソフィア様テックインフォメーションシステムズ株式会社様と株式会社クリエ・イルミネートの3社協業で Office 365 を活用した社内ポータルサイト構築の内製化支援サービスの提供開始をリリースいたしました。

インナーコミュニケーションに係るコンサルティング実績を多数持つソフィア様が「お知らせ」をベースに「全社発信情報の整理と体系化」についてワークショップを行い、SharePoint のトレーニング、テクニカル支援の実績を持つクリエ・イルミネートがお知らせWebパーツの活用方法とポータルへの組み込み方法の「テクニカルトレーニング」を実施し、受講特典として提供する「プログラムコード」をテックインフォメーションシステムズ様が作成・提供するという協業を行った、3社による情報発信の内製化コンサルティング ワークショップ/トレーニング コースとなります。

コンサルティング、テクニカルトレーニング、そして開発という分野で多くの実績を持つ3社がそれぞれの強みを結集した、他に類を見ないハイクオリティなサービスとなります。

Office 365 を活用した社内ポータルサイトの内製化を支援(クリエ・イルミネート)
http://www.crie-illuminate.jp/News?FilterField1=DeliveryDate&FilterValue1=2014/11/13

Office 365 を活用した社内ポータルサイトの内製化を支援(ソフィア様)
http://www.sofia-inc.com/info/2014/11/271

Office 365 を活用した社内ポータルサイトの内製化を支援(ValuePress)
http://www.value-press.com/pressrelease/133798

お客様自身で内製しているポータルのクオリティを上げていく、構築し活用するための支援サービスとなります。
社内ポータルをご自身で構築している SharePoint ユーザー、Office 365 ユーザー様で、全社発信情報ポータルについてさらに効果的に活用したいとお考えであれば、ぜひご検討いただければと思います。