Office 2007 対応
[ JCLEmu | 1NMATCH | MNMatch | ListEdit | ListEdit3 | Sort | Pickup | Summary | Break | Report | Asasikomi | EMaile | Doujyou | DGenerate | IMGGet | 機能一覧 | BlockSort | UserList | 図形ファインド | 複合検索 | Windows7 | リンク集 | 掲示板 ]

結論:【Excel2007 にはSP2のパッチ適用が不可欠】

1、始めに  
1−1、配布の形式  
2、機能別対応状況一覧  
3、 Office2007 マクロ実行許可(セキュリティ) 
3'、Office2002 マクロ実行許可(セキュリティ) 
4、Office2007 印刷プレビュー時操作の相異点 
5、その他機能対応状況一覧 
6、拡張子対応について 
1、始めに
  Office 2007 の対応状況をまとめました。
 【前提】
 エクセルのVBAを、2007用に作り変えた訳ではありません。「2007で動作するかだけを検証」しました。
 従来のエクセルで作成したブックをそのままの状態で、Excel2007で開いて、
 従来のブックを入出力として動作させた。
 (列の最大が増えた、ソートキーが増えた事等への根本的な対応は行っていない。)
 (新しいファイルの拡張子に関しては、対応していない。後述6参照)
 Excel2007のインストール時、旧(Excel2002)を残してインストールした状態でテストしている。
 追々、2007用も出したいと考えています。
 【お詫び】 Excel2010も発売になりましたが、しばらく対応出来ないと思います。

↑先頭へ   ↓末尾へ
1−1、配布の形式
  新規作成ツールでは、Office 2007 完全対応済としているが、
  旧エクセルをご使用の方が多いとの判断から、旧エクセル(xxxx.xls)として配布しています。
  VBAの非互換部分は、条件式で、使用可能なVBAが実行されるようにしています。
  シートに関しては、非互換機能は、使用してないと思います。
  Office 2007 用エクセルとされる場合は、xxxx.xls 版を開いていただき、
  名前を付けて保存操作で、xxxx.xlsm として格納して下さい。(拡張子のみ替える)
  旧版を使用しない場合は、xxxx.xls  を削除してください。
  (エクスプローラで削除する場合は、ファイルの拡張子を表示させ、間違わないよう気を付けて下さい。)
  又、例題として付属しているエクセルも同様の操作を行って下さい。
  例題のエクセルを変えた場合は、例題用のパラメタ内のエクセルブック名の拡張子も、
  xls からxlsmに変更してください。
  フォルダ内の構造(配置位置とフォルダ名)は変えないで下さい。
  ツールのみ新エクセルで、例題は旧のままとしても、例題の実行は可能です。
2、処理機能別対応一覧                    2010年10月
a@エクセル名.xls機能説明         提供書庫名 対応状況
1JCLエミュレータJCLエミュレータKTJCLEmu  使用可能
2マッチング1:nのマッチング処理KT1NMATCH 使用可能
3MNマッチング m:nのマッチング処理KTMNMatch 使用可能
4リスト形式に変換伝票形式から、リスト形式にKTListEdit使用可能
5リスト形式に変換3表形式から、リスト形式にKTListEdit3使用可能
6バッチソートソート、及び単純抽出処理KTSort   使用可能
7抽出ソート同上(抽出条件変更)KTPickup   使用可能
8サマリー複数のキーで集計レコード 出力KTSummary 使用可能
9ブレークサマリとほぼ同等KTBreak 使用可能
10汎用差込機能一品一葉印刷KTASasikomi使用可能
制限1
10葉書差込機能一品一葉印刷(葉書)〃     使用可能
制限1
11伝票型印刷伝票型(応用用紙)印刷KTReport  使用可能
調査中1
12Eメール送信Eメールを住所録等から一括送信KTEMail使用可能
13同上変換同上表現に変換、又はその逆に戻すKTDoujyou使用可能
14データ生成指定シートに、データを自動で作成KTDGenerate使用可能
15イメージ取込(7完)指定シートに、画像(イメージ)を取込むKTIMGGet使用可能
【制限1】office2007sp2(サービスパック)適用前は、「差込元と先を対話型で指定」ボタンを押すとエラーとなる。
【調査中1】Excel2007(サービスパックsp2)適用済、
  1、「解析対象の図形に漏れが出る」。
  2、「解析した図形が持つ、TopLeftCellの値が、先頭図形の値と同じになる」。
     現象が発生する。
【制限2】Grep機能で制限あり、フォルダ単位での検索が出来ません。実行するとエラーとなる。

    原因:VBAでFileSearchを使用している。(Excel2007でこのオブジェクトが無くなった為)
(7完):Excel2007 完全対応済。 図、エクセル2007でマクロ実行許可の指定
3、【エクセル2007で、マクロの実行を許可する方法。】
 (旧バージョンのメニューから「ツール」→マクロ→セキュリティ→「中レベル」が無い)
 1.Office2007の「ロゴマーク」、左上隅をクリック  (上図参照)
 2.エクセルのオプション(画面イメージなし)画面の右下「エクセルのオプション」をクリック
 3.セキュリティ ーセンター画面、「セキュリティ ーセンターの設定」をクリック
 4.セキュリティ ーセンターの左真中、「マクロの設定」をクリック
 5.すべてのマクロを有効にする(推奨しません。危険なマクロが実行されることがあります)(E)の
  ラジオボタンをクリックする。
或いは、信頼できる場所にツールを移動するか、ツールを信頼できる場所にする。(メーカーはこちらをお奨めか?)

3’、【エクセル2002で、マクロの実行を許可する方法。】
 1.マクロが実行できない場合下記のメッセージが出ます。
 (「OK」としてから、)
  図、エクセル2002でマクロの制限にかかった。

 2.メニューから「ツール」→マクロ→セキュリティを選択。
 3.→「中レベル」を選択し、「OK」とし、警告のでたエクセルも、終わらせる。
  図、中程度に設定の例。

 4.もう一度、目的のエクセルを開きなおす。「許可する」で実行可能となる。

4、Office2007 印刷プレビュー時操作の相異点。
 【制限3】office2007sp2(サービスパック)適用前は
  印刷プレビュー時のGUI(操作方法)が変更になっている。
  2007より前は、プレビュー画面のメニューに「閉じる(C)」ボタンが有ったが、2007では見当たらない。
  2007では、「Esc」ボタン(キーボード左上隅に有ると思う、エスケープキー)を押して下さい。(2007以前も可)
 (office2007sp2以降は、「閉じる」ボタンあり)

5、その他機能別対応一覧
a@エクセル名.xls機能説明         提供書庫名 対応状況
1ブロックソート対話型ソートKTBlockSort  使用可能
2図形検索図形中の文字検索KTZFind  使用可能
調査中1
制限2(V1.3より解除)
3複合検索AND,OR,NOT使用検索KTFFind  使用可能
制限2(V1.1より解除)

6、拡張子対応について。
 拡張子と使用の可否について、Excelの仕様では下記の様です。
拡張子Excel2007以前Excel2007
 .xls○(何の操作も加えなくてもよい)
 .xlsx×(このファイルの形式を認識できませんと出る)
 当ツールに於いては、
 エクセルブックを検索するダイアグラム(画面)で拡張子の指定を使用しています。下図参照
 Excel2007との関係は次のようです。
拡張子Excel2007以前Excel2007
 .xls○(何の操作も加えなくてもよい)
 .xlsx画面に見えない、
ファイル名欄に
手入力で指定すると、エラーが発生する。
画面に見えてこない、
ファイル名欄に
手入力で指定すれば、使用可能である。
(解決策参照)
【現行マクロでの検索画面】

 解決策(マクロの修正)ファイルの種類を変更する。
 従来マクロが下記のようなら
        KK_Book = Application.GetOpenFilename( _
            "エクセル ファイル (*.xls;*.csv), *.xls;*.csv," & _
            "すべてのファイル (*.*),*.*")
 改造後
        If CInt(Application.Version) > 11 Then
            KK_Book = Application.GetOpenFilename( _
                "Excel2007ファイル (*.xlsx;*.xlsm;*.csv),*.xlsx;*.xlsm;*.csv," & _
                "Excel2003以前ファイル (*.xls;*.csv),*.xls;*.csv," & _
                "すべてのファイル (*.*),*.*")
        Else
            KK_Book = Application.GetOpenFilename( _
                "エクセル ファイル (*.xls;*.csv), *.xls;*.csv," & _
                "すべてのファイル (*.*),*.*")
        End If
 色付き部分が改造する部分です。
 青色部分が、Excel2007で作成されたものを、対象にする部分です。
 xla(アドイン)も対応させたい場合は";*.xla"、";*.xlam"等を追加して下さい。
 Versionにより変えているのは、旧形式で、2007用を開いた場合エラーとなる為です。
 Excel2007のVersionは、"12"です。
 全てが選択できる(*.*)のであれば、余り意味がないかと思われる方は、
 If文を付けずに、Then以下の部分に置換されてもよいと思う。
 又、Excel2007と旧バージョンを混在してお使いの場合は、
        If CInt(Application.Version) > 11 Then
            KK_Book = Application.GetOpenFilename( _
                "Excelファイル (*.xlsx;*.xlsm;*.xls;*.csv),*.xlsx;*.xlsm;*.xls;*.csv," & _
                "すべてのファイル (*.*),*.*")
 とされる方が使いやすいかもしれない。
【参考】
 ・エクセルブックを検索するダイアグラム(画面)を使わず、直接ブック名を入力した場合。
  実行中のExcelのバージョンに関係なく、開こうとするため、エラーとなる場合や
  エクセル互換ツールを使用するように、要求される場合があります。
 ・注意を要するのは、Excel2007で実行時、パラメタを新ブックに格納すると、パラメタ自体は、2007バージョンとなり、
  このパラメタを、旧バージョンのエクセル実行下で、読み込もうとした場合使えなくなります。