...

PDF 形式

by user

on
Category: Documents
12

views

Report

Comments

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
Fly UP