- 日時: 2007/08/16 22:22
- 名前: 花ちゃん
- ***********************************************************************************
* カテゴリー:[エクセル][][] * * キーワード:参照設定,バージョン,, * ***********************************************************************************
元質問:複数のCSVデータ⇒XLSブック - Blue 2003/05/30-17:12 No.4200 CSVデータを1枚のXLSシートのように扱ってブックにすることはできないでしょうか?
----------------------------------------------------------------------------------- Excelの異なるバージョン間で同じプログラムを使用するには - 花ちゃん 2007/08/16 ----------------------------------------------------------------------------------- Excel の起動部分を下記から実行時バインディングの方法で起動すると参照設定の必要が なくなり、異なるバージョン間で使用する事ができます。 (ここのサイトの下記でも掲載しております。) http://hanatyan.sakura.ne.jp/vbhlp/Excel01.htm
'================================================================== 'Excel の起動処理(新規ファイルを使用する場合) 'オブジェクトへの参照を格納する変数を宣言(事前バインディング) Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet
'変数にオブジェクトの参照を代入します。 '新規 workbookとworksheet オブジェクトを作成します。 Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets(1) '1 の代わりにシート名でも可 'エクセルを表示します。(非表示でも動作します) xlApp.Visible = True
'==================================================================
変更後(実行時バインディング(レイトバインディング)) '================================================================== 'Excel の起動処理(新規ファイルを使用する場合) 'オブジェクトへの参照を格納する変数を宣言(実行時バインディング) Dim xlApp As Object Dim xlBook As Object Dim xlSheet As Object
'変数にオブジェクトの参照を代入します。 '新規 workbookとworksheet オブジェクトを作成します。 Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets(1) '1 の代わりにシート名でも可 'エクセルを表示します。(非表示でも動作します) xlApp.Visible = True
'==================================================================
但し、上記の方法でExcel を操作するにはいくつかの注意が必要です。
1.使用するExcelの定数等は、別途ご自分で宣言するか、定数値のようなものを使用しないと VBAの定数は使用できません。 http://hanatyan.sakura.ne.jp/logbbs1/wforum.cgi?mode=allread&no=2295&page=1230
2.Excelのバージョン間で互換性のないメソッドやプロパティ等は使用できません。 例えば、Open メソッド や SaveAs メソッドのようなものでも、バージョン間で引数の型 が違ってきていますので、十分確認する事が必要です。
3.自動メンバ表示などのインテリセンス機能が使用できないのでコードの入力間違いの チェックが十分できないので注意が必要です。
4.従って、使用するであろう、バージョンのExcelで十分に動作確認する事が必要になります。
又、Excel のプロセスが残る等の問題が多く発生する可能性があり、解決も難しくなります。
少なくても、VBからExcelを操作する事に熟知されてから使用するようにして下さい、でないと 後で、エラーが発生したり、Excelのプロセスが解放されない等の問題が発生し、結局時間を とられて、各バージョンに合ったプログラムを別々にインストールした方が楽だったという事 になります。
上記の問題点をクリアできれば、ある程度は、Excel の各バージョン間で使用できますが、 Excel95以前やExcel2007以降のように範囲が広がると複雑な処理をした場合は、大抵問題が 発生するかと思いますので、くどいようですが、事前に対象のバージョンで十分テストをして 使用されるようにお願いします。
|