セッション ID:T5-302 導入事例から学ぶ Office 2010 互換性問題に ついての対処法 株式会社大塚商会 LA技術グループ テクニカルスペシャリスト 内山 欣也 マイクロソフト株式会社 インフォメーション ワーカー ビジネス本部 シニア プロダクト マネージャー 松田 誠 アジェンダ Office の互換性問題 互換性問題の原因 マクロの互換性問題とその対応方法 10 の互換性問題事象 レイアウトの互換性問題とその対応法 5 つの互換性問題事象 互換性に対するその他の注意事項 まとめ 4 Office の互換性問題 Office 導入の 3 つの課題 マイクロソフト調べ 互換性検証 トレーニング 導入展開 60.3% 52.4% 31.7% •マクロの動作検証 •レイアウトの確認 •検証ファイルの収集 6 •操作トレーニング •ヘルプデスクの整備 •マニュアルの修正 •インストール作業 •イメージ作成 •メンテナンス 互換性問題とは? 旧バージョンから新しいバージョンに 移行したときに生じる問題 7 マクロの互換性 レイアウトの互換性 旧バージョンで 動作していたマクロが バージョンアップとともに 動作しなくなる 旧バージョンで作成した ドキュメントを 開いたときに レイアウトが崩れてしまう 互換性問題の原因 仕様による問題 リボン インターフェース への変更によるもの 廃止となった関数や 定数 描画エンジンの変更 図形のデザイン変更 etc… 8 不具合による問題 特定の操作による 不具合 Office 混在環境に よる不具合 etc… Office 導入支援センター 導入に関する情報とノウハウを集約し、お客様に提供 最適な導入手法で Office 2010 の導入コストを削減 ノウハウの一般提供 導入支援コンテンツの提供 導入支援サービスの提供 互換性検証と導入支援 各種コンテンツ作成 ドキュメンテーション Office 導入支援センターは、 株式会社大塚商会 株式会社CSK Win テクノロジ 株式会社日本システムディベロップメント とマイクロソフトが共同で運営しています 9 Office 2010 の互換性問題 90% 以上の問題をカバー 10 マクロの代表的な互換性問題 No 互換性に問題が発生する内容 1 全角数字で始まるクエリがエラー 2 3 4 5 コントロール等が参照できない 結合セルの検索が無視される シートのコピー/移動でエラー FileSearch の実行エラー 6 7 8 セル数のカウントでオーバー フロー 図形オブジェクトの既定名が変更 CSV 形式保存で \ が ? に変換 9 サンドボックス モード 10 acCmdImport は非サポート 11 レイアウトの代表的な互換性問題 No 12 互換性に問題が発生する内容 1 図形内の文字の改行位置が変化 2 図形内の文字が隠れる 3 グラフ値軸の目盛間隔が変化する 4 画像のイメージが表示されない 5 リンク貼り付け画像の縮尺が変化 マクロの互換性問題と その対応方法 1. 全角数字で始まるクエリがエラー 問題点 全角のアラビア数字が原因で、クエリ実行時に エラーが表示される ① 全角のアラビア数字で始まるフィールド名を含む クエリを実行する場合 ② フィールド名を修飾するテーブル名/クエリ名が 全角アラビア数字で始まる場合も同様 対象アプリケーション Access 全角アラビア数字から 始まるフィールドを 使用しているとエラー SELECT FullSize_FieldName.[1_FullSize_Field], FullSize_FieldName.[2_FullSize_Field] FROM FullSize_FieldName; 14 1. 全角数字で始まるクエリがエラー ① 全角のアラビア数字を使用しないように、 全角のアラビア数字で始まるフィールド名を すべて変更する ② 新しいクエリを作成して保存する 15 対応例 2. コントロール等が参照できない 問題点 参照情報が [参照不可] となり、コントロールや オブジェクトが利用できない状態となる ① カレンダー コントロール (Access 2010 で廃止) ② Office Web Components (Office 2007 で廃止) ③ Office 以外の マイクロソフト 製品 や、 サード パーティ製品 のライブラリなど 対象アプリケーション Word, Excel, PowerPoint, Access 16 2. コントロール等が参照できない 対応例 カレンダー コントロール (mscal.ocx) の対応 Microsoft Office Access 2007 Runtime に含まれる カレンダー コントロールを使用する http://www.microsoft.com/downloads/details.aspx?familyid=D9 AE78D9-9DC6-4B38-9FA6-2C745A175AED&displaylang=ja Access で利用する場合、日付選択コントロールで 置き換え、アプリケーションを修正する 日付選択コントロール カレンダー コントロール 17 問題点 3. 結合セルの検索が無視される 文字列を Find メソッドで検索すると、引数 SearchOrder に列方向を表す xlByColumns を 指定した場合に検索が無視される 対象の文字列が結合セル (横結合) にある場合 対象アプリケーション Excel 「Office」 を検索した場合、 結合セルは無視される 検索方向 Office Office 18 対応例 3. 結合セルの検索が無視される Sub FindMethodSample() 対応前 Worksheets("Sheet1").Range("A1").Select Cells.Find(What:="検索", LookAt:=xlPart, _ SearchOrder:=xlByColumns).Activate End Sub -------------------------------------------------------------------------------- 列方向を表す xlByColumns から 行方向を表す xlByRows に置き換える 対応後 Sub FindMethodSample2() Worksheets("Sheet1").Range("A1").Select Cells.Find(What:="検索", LookAt:=xlPart, _ SearchOrder:=xlByRows).Activate End Sub 19 4. シートのコピー/移動でエラー 問題点 ワークシートのコピー/移動によるエラー Excel 2007/2010 ファイル形式 (*.xlsx) の ワークシートを Excel 97-2003 ファイル形式 (*.xls) のワークブックに移動またはコピーする場合 Excel 2007/2010 ファイル形式: 約 104 万行 × 1.6 万列 Excel 97-2003 ファイル形式:約 6.5 万行 × 256 列 対象アプリケーション Excel 2007/2010 ファイル形式 97/2003 ファイル形式 ・コピー ・移動 20 実行時エラー 対応例 4. シートのコピー/移動でエラー Sub insNewSheet() Dim shBase As Workbook, shNew As Workbook 対応前 ‘ 互換モードでWorkbookを開く (.xls形式) Set shBase = Workbooks.Open(Filename:="C:\book1.xls") ‘ 新規WorkBookを作成 (.xlsx形式) Set shNew = Workbooks.Add ‘ 互換モードWorkbookに新規Workbookのシートを移動 shNew.Sheets.Move before:=shBase.Sheets(1) End Sub .xlsx 形式 ⇒ .xls 形式にシートを移動しようとしてエラー .xlsx ファイル形式にして、 移動元と移動先のファイル形式を揃える 21 問題点 5. FileSearch の実行エラー [ファイル検索] 作業ウィンドウおよび FileSearch オブジェクトは、Office 2007 以降利用できない FileSearch オブジェクトを利用している場合 対象アプリケーション Word, Excel, PowerPoint, Access 実行時エラー 22 5. FileSearch の実行エラー 対応例① - Dir 関数を利用 Sub FileSearchExcelBook() With Application.FileSearch .LookIn = ActiveWorkbook.Path & "\testSample" .FileType = msoFileTypeExcelWorkbooks .Execute 対応例 対応前 MsgBox "FileSearch関数検索結果 : " & .FoundFiles.Count & "ファイル" End With End Sub -------------------------------------------------------------------------------- Sub DirExcelBook() Dim buf As String Dim i As Long 'Dir関数の結果 'ファイル数カウンター buf = Dir(ActiveWorkbook.Path & "\testSample\*.xls") Do While buf <> "" i = i + 1 Dir 関数による検索 buf = Dir() Loop MsgBox "Dir関数検索結果 : " & i & "ファイル" End Sub 23 対応後① に置き換える 対応例 5. FileSearch の実行エラー 対応例② - FileSystemObject を利用 Sub FSOForExcelBook() 対応後② Dim objFolder As Folder Dim objFile As File Dim objFSO As FileSystemObject Set objFSO = New FileSystemObject Set objFolder = objFSO.GetFolder(ActiveWorkbook.Path & "\testSample") Dim i As Integer For Each objFile In objFolder.Files If Right(objFile, 4) = ".xls" Then i = i + 1 End If Next objFile MsgBox "FileSystemObject検索結果 : " & i & "ファイル" Set objFolder = Nothing Set objFSO = Nothing End Sub 24 FileSystemObject 利用に置き換える 6. セル数のカウントでオーバー フロー 問題点 セル数のカウントをするとオーバー フローする Excel 2007/2010 形式 (*.xlsx) のワークシートではセル数が 大幅に増えた為 ① Long 型の範囲を超える個数のセルを含む Range オブジェクトで Count メソッドを使用した場合 ② カウント以外にも、全行や全列に対して 繰り返し処理を行う場合など 対象アプリケーション 実行時エラー Excel 1,048,576 行 × 16,384 列 = セル数: 17,179,869,184 (約 171 億) 25 >Long 型:~ 2,147,483,647 (約 21 億) 6. セル数のカウントでオーバー フロー Sub countCell() MsgBox ActiveSheet.Cells.Count End Sub 対応例 対応前 -------------------------------------------------------------------------------- Sub countCell() MsgBox ActiveSheet.Cells.CountLarge End Sub Variant 型の Range.CountLarge に置き換える 26 対応後 7. 図形オブジェクトの既定名が変更 問題点 図形オブジェクトをマクロ コードから操作する 場合に、各オブジェクトに明示的に名前が 指定されていないとエラーとなる ① AutoShape の 「四角形」 を挿入した場合など 例)Office 2003 でのオブジェクト名:四角形1 Office 2010 でのオブジェクト名:正方形/長方形1 ② 図形削除後の連番:以前は番号の再利用はされなかったが、 Office 2007 以降は空き番号を利用 例)Office 2003:図形1を削除・保存後、追加すると図形2 Office 2010:図形1を削除・保存後、追加すると図形1 対象アプリケーション Word, Excel, PowerPoint 27 7. 図形オブジェクトの既定名が変更 対応例 対応後 Set myDocument = Worksheets(1) With myDocument.Shapes.AddShape(msoShapeRectangle, _ 144, 144, 72, 72) .Name = "Red Square" .Fill.ForeColor.RGB = RGB(255, 0, 0) .Line.DashStyle = msoLineDashDot End With 図形を追加 (Shapes.AddShape) した場合は、 既定名を利用せず、明示的に名前を指定する ※特に、マクロの記録で作成されたコードは、 既定名が利用されるために注意が必要 28 8. CSV 形式保存で \ が ? に変換 問題点 CSV 形式で保存すると、円マーク ”\” が ”?” に 変換される Excel 2007/2010 にて作成または編集したデータで、 セルの表示形式が 「通貨」 である場合 対象アプリケーション Excel CSV出力 29 8. CSV 形式保存で \ が ? に変換 Dim wb1 As Workbook Dim wb2 As Workbook Dim yen As String 文字列型として扱い、 ”\” を結合して出力する 通貨形式のデータを文字列型で扱う 対応例 対応後 Set wb1 = Workbooks.Open(Filename:="c:\CSVOutput.xlsx") yen = wb1.Worksheets("Sheet1").Range("A1").Value Workbooks.Add Set wb2 = ActiveWorkbook wb2.Worksheets("Sheet1").Range("A1").Value = "\" & yen wb2.SaveAs Filename:="c:\CSVOutput.csv", _ FileFormat:=xlCSV, local:=True 円マークが必要な合は、 文字列結合をする 30 9. サンドボックス モード 問題点 安全と見なされないマクロやクエリの実行が ブロックされる サンドボックス機能が有効 (デフォルト有効) な場合 対象アプリケーション Access Office 2003 参照時 31 Office 2010 参照時 9. サンドボックス モード 対応例 レジストリの設定で無効に変更する 1. [HKEY_LOCAL_MACHINE]\Software\Microsoft\ Office\14.0\Access Connectivity Engine\Engines 2. [SandboxMode] の [値のデータ] フィールドの 値 3 を 2 に変更します 「Access 2010 でサンドボックス モードを使用する」 http://office.microsoft.com/ja-jp/accesshelp/HA010342092.aspx 32 問題点 10. acCmdImport は非サポート DoCmd.RunCommand の acCmdImport コマンドは、Office 2007 以降利用できない 対象アプリケーション Access 実行時エラー 33 10. acCmdImport は非サポート Private Sub Import() DoCmd.RunCommand acCmdImport End Sub 対応例 対応前 -------------------------------------------------------------------------------- Private Sub Import() DoCmd.RunCommand acCmdImportAttachExcel End Sub ImportAttachコマンドを利用する例 ・acCmdImportAttachAccess ・acCmdImportAttachText ・acCmdImportAttachXML etc. 34 対応後 レイアウトの互換性問題と その対応法 1. 図形内の文字の改行位置が変化 問題点 問題が発生する場合:① 又は ② ① 図形内のテキストの余白部分が少ない場合 ② デザインが変更されている図形を使用している場合 (角丸四角形、角丸四角形吹き出し等) 対象アプリケーション Word, Excel, PowerPoint Office 2003 参照時 36 Office 2010 参照時 2. 図形内の文字が隠れる 問題が発生する場合 図形内のテキストの余白部分が少ない場合 対象アプリケーション Word, Excel, PowerPoint Office 2003 参照時 37 Office 2010 参照時 問題点 3. グラフ値軸の目盛間隔が変化 問題点 問題が発生する場合 軸のオプションで目盛を 「自動」 に設定している場合 対象アプリケーション Excel Office 2003 参照時 38 Office 2010 参照時 4. 画像のイメージが表示されない 問題点 問題が発生する場合:① かつ ② ① Word 文書内の画像をコピーし、 [図 (拡張メタファイル)] として同ファイル上に 貼り付けている ② 図の書式設定 (明るさ等) を初期値から変更している 対象アプリケーション Word Office 2003 参照時 39 Office 2010 参照時 JPEG JPEG 拡張 メタファイル 拡張 メタファイル 5. リンク貼り付け画像の縮尺が変化 問題が発生する場合:① かつ ② かつ ③ ① 同シート内でリンク貼り付けが行われている ② ズームが 100% 以下になっている ③ 保存時に該当シート以外のシートが表示状態 対象アプリケーション Excel Office 2003 参照時 40 Office 2010 参照時 問題点 レイアウト問題点の対応例 対応例 図形内の文字列変化 (No.1, 2) 図形を大きくする (余白を十分にとる) テキストのフォントサイズを調節する グラフ目盛変化 (No.3) 軸を 「自動」 ではなく 「固定」 とする 画像欠落 (No.4) 図 (JPEG) や図 (PNG) として貼り付けを行う リンク貼り付け画像の変化 (No.5) 図として貼り付けを行う 41 互換性に対する その他の注意事項 64 ビット版 Office への対応 ActiveX コントロールと COM アドイン 32 ビット版向けに作成された ActiveX コントロールと COM アドインは、64 ビット版では動作しない 64 ビット版向けにビルドしたものが必要 Visual Basic for Applications 7 (VBA 7) VBA 6 に代わる新しい VBA エンジン 32 ビット版と 64 ビット版の両方で使用可能 “VBA7” と “Win64” という 2 つのコンパイラ定数で 実行環境を判別可能 一部のコードについては 64 ビット版対応が必要 43 64 ビット版 Office への対応 Declare ステートメント 32 ビット版で Declare ステートメントを使用して DLL にアクセスしている VBA コードは書き換えが必要 64 ビット版 VBA 7 では Declare ステートメントに PtrSafe 属性の追加が必要 新しいデータ型 LongLong と LongPtr LongLong 型:64 ビット (8 バイト) 符号付き数値を 格納 LongPtr 型:32 ビット システムでは Long 型の数値、 64 ビット システムでは LongLong 型の数値を格納 LongPtr 型を使用すると、32 ビットと 64 ビットの 両環境で実行できる移植可能なコードを記述できる 44 セキュリティ機能の変更に対する対応 メッセージ バーの表示 Office 2007 以降セキュリティ警告がダイアログ ボックスからメッセージ バーに変更 マクロ等が含まれる場合 外部データへのアクセスがある場合 インターネットからダウンロードしたファイルを 表示する場合 電子メールの添付ファイルを表示する場合 ファイル検証などでエラーがあった場合 45 セキュリティ機能の変更に対する対応 信頼できる場所 特定のフォルダに保存しているファイルを信頼し 警告の表示などを省略する 信頼されたドキュメント ドキュメントの信頼性に関する判断を繰り返し 要求しないようにする機能 信頼できるドキュメントとして判断を保持する 46 まとめ Office 2010 互換性ホワイトペーパー Microsoft Office 2010 マクロ互換性について 以前のバージョンの Office で作成した マクロや VBA コードの 互換性 セキュリティの新機能と 留意事項 Office 2010 の 64 ビット版に関する 留意事項 Microsoft Office 2010 ファイル フォーマットおよび ドキュメント レイアウトの 互換性について Open XML の運用や 展開時の留意事項 以前のバージョンの Office で作成した ドキュメントの、 レイアウトの互換性 「企業向け Microsoft Office 2010 サイト」より入手できます http://www.microsoft.com/japan/office/2010/business/ 48 まとめ 約 10,000 ファイルの検証の結果、 互換性問題の 90% 以上は特定の事象が 引き起こしていることがあきらかに なりました 代表的な問題を理解することにより、 検証、改修にかかる工数を削減することが できます 今後も Office 導入に関する情報を 提供し続けますので、定期的にご確認を お願いいたします 49 関連セッション T5-301: Day 2 15:20 - 16:30 Office 2010 をスムーズに展開するためのポイント T2-304: Day 3 10:55 - 12:05 App-V/MED-V で実現する最新デスクトップ環境の 構築手法 ~ クライアントサイドの仮想化技術 ~ T2-303: Day 3 15:20 - 16:30 Microsoft VDI の実践 ~ 構築方法のポイントと活用ノウハウ ~ H-313: Day 1 15:20 – 16:30 / Day 2 13:45 – 14:55 Microsoft Application Virtualization における アプリケーションの管理体験 50 リファレンス 企業向け Microsoft Office 2010 サイト http://www.microsoft.com/japan/office/2010/business/default.mspx Office 2010 リソース キット http://technet.microsoft.com/ja-jp/library/cc303401.aspx Microsoft Office 2010 トレーニング センター http://www.microsoft.com/japan/office/2010/business/training/d efault.mspx 51 ご清聴ありがとうございました。 T5-302 アンケートにご協力ください。 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
© Copyright 2025 ExpyDoc