Comments
Description
Transcript
PDF 形式
マクロソフト株式会社 ジニアス平井 わんくま同盟 東京勉強会 #48 • Office Open XML を知っておきましょう • VBA より .NET でやりましょう • VS2010 での Office ゕプリ開発新機能の色々 • ゕドン開発:リボン編 • ゕドン開発:Backstage ビュー編 • 配布・配置の新機能 わんくま同盟 東京勉強会 #48 • Office Open XML – Office 2007(Version 12)で採用された文書フォーマット • Word、Excel、PowerPoint の保存形式として採用 – XML で記述された文書群と画像などのバナリデータを ZIP 圧縮した構造 • Office のンストールされていない環境でもフゔルの操作が可能 • パーツの再利用が容易で破損のリスクを限定 • ZIP 圧縮されることでフゔルサズが小さくなる • 標準規格 – 2006年12月に ECMA-376 – 2008年4月に ISO/IEC 29500として標準化 • http://www.ecma-international.org/publications/standards/Ecma376.htm わんくま同盟 東京勉強会 #48 • .NET マネージドライブラリ – .NET Framework 3.5 + LINQ ベース – System.IO.Packaging 名前空間 • 参照の追加: [DocumentFormat.OpenXml] • SDK ツール(OpenXmlSdkTool.exe) – スキーマと対応する Open XML SDK のクラスを確認 – 2 つのフゔルの比較(Diff) – ドキュメントからそのフゔルを生成するための Open XML SDK コードを出力 • Open XML SDK 2.0 ダウンロード – http://www.microsoft.com/downloads/details.aspx?displaylang=en&Fam ilyID=c6e744e5-36e9-45f5-8d8c-331df206e0d0 わんくま同盟 東京勉強会 #48 • Office 2010 でも VBA をサポート – VBA:Visual Basic for Applications • Office 2010 では 6.0 から 7.0 に更新されているが進化なし – VBA エデゖタなど開発環境も機能追加なし – VBA の方が便利なシナリオもあり • マクロの記録による定型タスクの簡易実装 • カスタム ワークシート関数作成 • コードがドキュメントに埋め込まれるので配布が用意 • .NET マネージドコードへ移行する価値 – パフォーマンスの大幅な改善 – 開発生産性の圧倒的な向上 • VBA エデゖタは VB6 レベルの機能のみ わんくま同盟 東京勉強会 #48 • No-PIA(Primary Interop Assembly) – Office プラマリ相互運用機能ゕセンブリ(PIA)は不要 – 利用する型情報だけを自分のゕセンブリに埋め込む わんくま同盟 東京勉強会 #48 • dynamic 型により遅延バインディング – Visual C# • dynamic で宣言 – Visual Basic var typesafeExcel = new Excel.Application(); typesafeExcel.Visible = true; dynamic dynamicExcel = new Excel.Application(); dynamicExcel.Visible = true; • Object 型で宣言 + Option Strict Off – 遅延バンデゖングでのみ使用可能なメンバが多い • 状況によって返す型が違うので Object 型で返される • Ex: ActiveSheet プロパテゖ → WorkSheet or Chart オブジェクト dynamic dialog = wordApp.Dialogs[Word.WdWordDialog.wdDialogFileOpen]; dialog.Name = "demo.docx"; dialog.Show(); わんくま同盟 東京勉強会 #48 • 名前付き引数・省略可能引数 – Visual C# 2010 のコンパラの新機能でコードが簡素化 object missing = Type.Missing; object before = @"Genius"; object after = @"ジニアス"; object option = Word.WdReplace.wdReplaceAll; Word.Range docRange = wordApp.ActiveDocument.Content; docRange.Find.Execute(ref before, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref after, ref option, ref missing, ref missing, ref missing, ref missing); // VS2008 Word.Range docRange = wordApp.ActiveDocument.Content; docRange.Find.Execute(FindText : "Genius", ReplaceWith : "ジニアス", Replace : Word.WdReplace.wdReplaceAll); // VS2010 わんくま同盟 東京勉強会 #48 • VS2010 が提供する Office 開発テンプレート – Office 2007 用と Office 2010 用を提供 わんくま同盟 東京勉強会 #48 • 大幅な UI 変更の背景 – Office が持つ機能は大幅に増加・拡張し続け、既存の UI に載せるには限界に達していた • • • • 必要な機能が見つけられない 機能がありすぎてどれを使ったらよいのかわからない 新しい機能を使いこなせない より簡単な操作で体裁の良いドキュメントを作りたい • Office 2007 からの変更 – Office ボタン(丸いやつ)の廃止 • [フゔル]タブを特殊なビューに変更(Backstage View) わんくま同盟 東京勉強会 #48 • リボン – メニューやツールバーに代わって採用した UI • タブ – 特定のオブジェクトやシナリオごとに整理 • グループ – タブの中をさらに分割する単位 わんくま同盟 東京勉強会 #48 • コンテキストリボン – 選択・挿入時に対応するタブを表示 • Office 2010 では自動的に切り替わらないよう変更 • ギャラリー – 視覚的に機能を探す手段 わんくま同盟 東京勉強会 #48 • Visual Studio 2010 でのリボン開発 – リボン(ビジュゕル デザナー) • ドラッグ&ドロップによるデザン • XML へのエクスポートが可能(不可逆) – リボン(XML) • ンテリセンス サポート OK • リボンパーツ – 多層化も可能 わんくま同盟 東京勉強会 #48 <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <ribbon> <tabs> <tab id="Tab1" label="ジニアス"> <group id="Group1" label="ダビンチ"> <button id="Button1" onAction="Button1_Click" label="変換" /> <dialogBoxLauncher> <button id="Group1__btn" /> </dialogBoxLauncher> </group> <group id="Group2" label="Officeアイコン"> <gallery id="Gallery1" onAction="Gallery1_Click" label="LOGO" size="large" columns="3" itemHeight="128" itemWidth="128"> <item id="__id2" label="Access" /> <item id="__id3" label="Excel" /> <item id="__id10" label="Word" /> </gallery> わんくま同盟 東京勉強会 #48 firstColumn secondColumn ファスト コマンド Button group Tab group わんくま同盟 東京勉強会 #48 <?xml version="1.0" encoding="utf-8" ?> <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> <backstage> <tab id="Area1" label="ジニアスなタブ" columnWidthPercent="30" > <firstColumn> <group id="grpOne" label="第1グループ"> <primaryItem> <button id="firstButton" label="Primary Button" /> </primaryItem> <topItems> <layoutContainer id="layoutOne" layoutChildren="vertical"> <editBox id="firstEBox" label="テキスト" /> <button id="Button1" label="Done" isDefinitive="true" /> </layoutContainer> </topItems> </firstColumn> わんくま同盟 東京勉強会 #48 • .NET Framework 3.5 をターゲットにしたもの – Office 2010 には .NET Framework 3.5 用の [Visual Studio 2010 Tools for Office Runtime] が含まれている • .NET Framework 3.5 が入っていない環境に Office 2010 をンス トールした場合は NG • .NET Framework 3.5 をンストールすれば OK • .NET Framework 4 をターゲットにしたもの – .NET Framework 4(Client Profile)とともに [Visual Studio 2010 Tools for Office Runtime] を配布 • [Visual Studio 2010 Tools for Office Runtime]の配布パッケージに は 3.5 用機能と 4 用機能の両方が入っている • .NET Framework のンストール状況で機能のンストールの可否 が決まる わんくま同盟 東京勉強会 #48 • すべてのユーザー(AllUser)への配置が可能 – Windows ンストーラ(MSI)で可能 – ゕプリケーションレベルのゕドン – 管理者権限が必要だが、1回のンストールでOK • 複数の Office ソリューションの単一パッケージ – [プログラムの追加と削除]は1エントリ • 例)Excel ゕドンと Word ドキュメントレベルのソリューション を単一のパッケージで配布 • インストール完了後のアクション – 配置後ゕクション(postActions) • ドキュメントのコピー、レジストリの追加、構成フゔルの変更… わんくま同盟 東京勉強会 #48 • Microsoft Office 2010 公式ホームページ – http://www.microsoft.com/japan/office/2010/ – Office 2010 製品エデゖション比較・特長トップ 10 – 各製品の機能紹介ビデオ – TIPS 100 連発・互換性情報 • Office 開発者向け技術情報ポータル – http://msdn.microsoft.com/ja-jp/office/ • Microsoft Office Professional Plus 2010 評価版 – http://msdn.microsoft.com/ja-jp/evalcenter /ee390818.aspx わんくま同盟 東京勉強会 #48 Genius Hirai Presents わんくま同盟 東京勉強会 #48