Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


605 / 2272 ツリー ←次へ | 前へ→

【10909】複数バージョンが共存する中で特定のバージョンのエクセルのオープン/書き込みを行... yuki 09/1/6(火) 17:21 質問[未読]
【10949】Re:複数バージョンが共存する中で特定のバ... 小僧 09/1/22(木) 21:07 発言[未読]
【10975】Re:複数バージョンが共存する中で特定のバ... yuki 09/2/3(火) 16:14 お礼[未読]
【10976】Re:複数バージョンが共存する中で特定のバ... neptune 09/2/3(火) 17:00 発言[未読]
【10979】Re:複数バージョンが共存する中で特定のバ... 小僧 09/2/3(火) 21:14 回答[未読]
【10959】Re:複数バージョンが共存する中で特定のバ... YU-TANG 09/1/24(土) 15:56 発言[未読]
【10974】Re:複数バージョンが共存する中で特定のバ... yuki 09/2/3(火) 16:11 お礼[未読]
【10980】Re:複数バージョンが共存する中で特定のバ... YU-TANG 09/2/3(火) 22:37 質問[未読]
【10982】Re:複数バージョンが共存する中で特定のバ... yuki 09/2/4(水) 10:10 お礼[未読]
【10986】Re:複数バージョンが共存する中で特定のバ... YU-TANG 09/2/4(水) 23:25 発言[未読]
【10987】Re:複数バージョンが共存する中で特定のバ... yuki 09/2/5(木) 10:16 お礼[未読]
【10989】Re:複数バージョンが共存する中で特定のバ... YU-TANG 09/2/5(木) 22:39 回答[未読]
【10991】Re:複数バージョンが共存する中で特定のバ... yuki 09/2/6(金) 17:41 お礼[未読]
【10992】Re:複数バージョンが共存する中で特定のバ... yuki 09/2/6(金) 17:49 お礼[未読]

【10909】複数バージョンが共存する中で特定のバー...
質問  yuki  - 09/1/6(火) 17:21 -

引用なし
パスワード
   [OSのVER]:WindowsXP
[AccessのVER]:ACCESS2000/2007共存

PCの中にexcel2000/2007が共存している環境でACCESS2000のVBAにてexcel2000を新規に開き、書き込みを行いたいです。
今は下記のようにvbaを動かしています。


Private Sub cmd_OK_Click()
On Error GoTo Err_cmd_OK_Click

'変数を宣言します。
  Dim strSql As String 'SQLを実行する際の処理内容を格納する変数
  Dim MyDB As Database 'データベースオブジェクトへの参照を格納する変数
  Dim TargetRecordSet As Recordset 'レコードセットオブジェクトへの参照を格納する変数
  Dim strPass As String
  Dim count_DollAC As Long
  Dim xlApp As Excel.Application


  ’マクロの実行
  strSql = "account extract"
  DoCmd.RunMacro strSql
   
  strPass = "C:\Program Files\Microsoft Office\Office\Excel.Exe"
  Shell strPass, 1
  Set xlApp = GetObject(, "Excel.Application.9")
  xlApp.Visible = True
  Set MyDB = CurrentDb

  '抽出したtblDoll_AccountレコードをExcelシートに貼り付けます。
  Set TargetRecordSet = MyDB.OpenRecordset("tblDoll_Account")
  count_DollAC = TargetRecordSet.RecordCount
  xlApp.Sheets(1).Select
  xlApp.Range("A2").CopyFromRecordset TargetRecordSet '目次次列より貼付


このようにVBAを実行すると、Shellで作成した新規のエクセルファイル(excel2000)ではなく、今開いてるexcel全て(excel2007を含む)のうち、一番最初に開いているexcelシートに書き込みがされてしまいます。
Shellで作成した新規のエクセルファイルに書き込みをするにはどのようにしたらよいのでしょうか。

どなたかご存じの方いらっしゃいましたら教えてください!!

【10949】Re:複数バージョンが共存する中で特定の...
発言  小僧  - 09/1/22(木) 21:07 -

引用なし
パスワード
   ▼yuki さん:
こんにちは。

複数のバージョンの Office がインストールされている場合の
Office オートメーションについて

h tp://support.microsoft.com/kb/292491/ja

この辺に問題がありそうですね。

またそのページのリンク先に


>Office OLE オブジェクトを別のプログラムに挿入する
>
> 1台のコンピュータに複数のバージョンの Office をインストールした場合、
> Office オブジェクトを別のプログラムに挿入する
> (たとえば、Excel ワークシート オブジェクトを Word 文書に挿入する) と、
> 最新のバージョンのプログラムが使用されます。

なんて記述も見られます。

あまり良いとは思いませんが、

"C:\Program Files\Microsoft Office\Office\Excel.Exe" /regserver

と Shellステートメント実行後に
OLE処理を行うとうまくいくかもしれませんね。

(Officeの混在環境がないため、当方未検証です。)

【10959】Re:複数バージョンが共存する中で特定の...
発言  YU-TANG  - 09/1/24(土) 15:56 -

引用なし
パスワード
   小僧さんが上げるまでスレに気づかなかった YU-TANG です。

> このようにVBAを実行すると、Shellで作成した新規のエクセルファイル(excel2000)ではなく、今開いてるexcel全て(excel2007を含む)のうち、一番最初に開いているexcelシートに書き込みがされてしまいます。
> Shellで作成した新規のエクセルファイルに書き込みをするにはどのようにしたらよいのでしょうか。

逆じゃダメですか?
先に新規ブックをどっかに作ってしまって、そいつを Shell で Excel 2000 に
開かせたら、GetObject で Excel 2000 のインスタンスを取れませんかね。
混在環境ないので試していませんが。

まあ ROT から取るのが正攻法なんでしょうけど、面倒っちいんでパス。

【10974】Re:複数バージョンが共存する中で特定の...
お礼  yuki  - 09/2/3(火) 16:11 -

引用なし
パスワード
   YU-TANGさん、ご教授くださいましてありがとうございます!

ChDir "K:\外貨入出金比較"
  Workbooks.Open Filename:="K:\外貨入出金比較\BANK BOOK 照合\Book1.xls", UpdateLinks:=0
  Set xlApp = CreateObject("Excel.Application.9")
  xlApp.Workbooks.Add
  xlApp.Visible = True ' アプリケーションを表示する場合は、Visible プロパティに True を設定します。
  Set MyDB = CurrentDb

に変更してみたのですが、VERSION2000で保存していたBook1が2007で開いてしまいました(;_;)


▼YU-TANG さん:
>小僧さんが上げるまでスレに気づかなかった YU-TANG です。
>
>> このようにVBAを実行すると、Shellで作成した新規のエクセルファイル(excel2000)ではなく、今開いてるexcel全て(excel2007を含む)のうち、一番最初に開いているexcelシートに書き込みがされてしまいます。
>> Shellで作成した新規のエクセルファイルに書き込みをするにはどのようにしたらよいのでしょうか。
>
>逆じゃダメですか?
>先に新規ブックをどっかに作ってしまって、そいつを Shell で Excel 2000 に
>開かせたら、GetObject で Excel 2000 のインスタンスを取れませんかね。
>混在環境ないので試していませんが。
>
>まあ ROT から取るのが正攻法なんでしょうけど、面倒っちいんでパス。

【10975】Re:複数バージョンが共存する中で特定の...
お礼  yuki  - 09/2/3(火) 16:14 -

引用なし
パスワード
   小僧さん、ご教授くださいましてありがとうございます!!

↓こういうことでしょうか。。
strPass = "C:\Program Files\Microsoft Office\Office\Excel.Exe" / regserver
  Shell strPass, 1
  Set xlApp = CreateObject("Excel.Application.9")
  xlApp.Workbooks.Add
  xlApp.Visible = True ' アプリケーションを表示する場合は、Visible プロパティに True を設定します。
  Set MyDB = CurrentDb

実行してみると「型が一致しません。」とのエラーが表示されます。
VBAの記載方法が違いますか・・?(;_;)

▼小僧 さん:
>▼yuki さん:
>こんにちは。
>
>複数のバージョンの Office がインストールされている場合の
>Office オートメーションについて
>
>h tp://support.microsoft.com/kb/292491/ja
>
>この辺に問題がありそうですね。
>
>またそのページのリンク先に
>
>
>>Office OLE オブジェクトを別のプログラムに挿入する
>>
>> 1台のコンピュータに複数のバージョンの Office をインストールした場合、
>> Office オブジェクトを別のプログラムに挿入する
>> (たとえば、Excel ワークシート オブジェクトを Word 文書に挿入する) と、
>> 最新のバージョンのプログラムが使用されます。
>
>なんて記述も見られます。
>
>あまり良いとは思いませんが、
>
>"C:\Program Files\Microsoft Office\Office\Excel.Exe" /regserver
>
>と Shellステートメント実行後に
>OLE処理を行うとうまくいくかもしれませんね。
>
>(Officeの混在環境がないため、当方未検証です。)

【10976】Re:複数バージョンが共存する中で特定の...
発言  neptune  - 09/2/3(火) 17:00 -

引用なし
パスワード
   ▼yuki さん:
こんにちは


>"C:\Program Files\Microsoft Office\Office\Excel.Exe" / regserver
↑はコマンドプロンプト(DOSシェル?)へ打ち込むコマンドです。
いくらなんでも、こんな事は起動の度には普通しないと思います。
直接レジストリのExcelの規定のバージョンを書き換える命令ですから。

と、言っても直接の解決方法を知っているわけではありませんけど。

【10979】Re:複数バージョンが共存する中で特定の...
回答  小僧  - 09/2/3(火) 21:14 -

引用なし
パスワード
   ▼yuki さん、neptune さん:
こんにちは。

>>"C:\Program Files\Microsoft Office\Office\Excel.Exe" / regserver
>↑はコマンドプロンプト(DOSシェル?)へ打ち込むコマンドです。
>いくらなんでも、こんな事は起動の度には普通しないと思います。

について

>> 複数のバージョンの Office がインストールされている場合の
>> Office オートメーションについて
>>
>> h tp://support.microsoft.com/kb/292491/ja
> このスイッチは、テストや開発の目的には使用できますが、
> 運用時の手段として使用することはお勧めできません。

と「勧められない」と但し書きつきながら
MSで公式にアナウンスされています。

Excel2000 と Excel2007 が混在環境で存在していて、
どうしても先にインストールした Excel2000 を
OLEで呼び出したいのであれば
方法のひとつだと思われますがいかがでしょうか?


> 実行してみると「型が一致しません。」とのエラーが表示されます。
> VBAの記載方法が違いますか・・?(;_;)


neptune さんのご回答にもありましたが、
コマンドプロンプトにそのまま打ち込む様な感じになるため、


strPath = """C:\Program Files\Microsoft Office\Office\Excel.Exe"" /regserver"
Shell strPath, 1

のように、ダブルクォーテーションをさらに囲ってあげる必要がありますね。


当方の環境(Excel2003のみ)で行うと
レジストリへの登録に多少時間がかかります。

Shellメソッドが非同期のため次の行のコードが実行されるので
こちらについても対策が必要になってきますね。
(「Shell」「同期」などでWeb検索すれば出てくるかと思われます。)

ただ、当方としても

・VBA のコードとして可能である(と思う)

という為に提示させて頂いているだけであり、
実運用にそのまま使えるかどうかはまた別の話かと思います。

【10980】Re:複数バージョンが共存する中で特定の...
質問  YU-TANG  - 09/2/3(火) 22:37 -

引用なし
パスワード
   こんばんは、YU-TANG です。

>   Set xlApp = CreateObject("Excel.Application.9")
(中略)
> に変更してみたのですが、VERSION2000で保存していたBook1が2007で開いてしまいました(;_;)

すみません、自分の回答とは無関係の内容のようですが、
どういう意図のレスでしょうか。
GetObject は使いたくないという意味でしょうか…?

【10982】Re:複数バージョンが共存する中で特定の...
お礼  yuki  - 09/2/4(水) 10:10 -

引用なし
パスワード
   ▼YU-TANG さん:

説明が足りずにすみません!
excel2000/2007共存の環境でaccess vbaにてexcel version2000を開き作業をしたいというのがやりたい事です。
CreateObjectとGetObjectを誤って記載してしまっていました!
下記の通り記載を直しました!

  ChDir "K:\外貨入出金比較\BANK BOOK 照合"
  Workbooks.Open Filename:="K:\外貨入出金比較\BANK BOOK 照合\Book1.xls"
  Set xlApp = GetObject(, "Excel.Application.9")

あらかじめファイルをver2000で作成しておきオープンというYU-TANG さんのご指摘方法で出来ました☆
ありがとうございました!!!!!


>こんばんは、YU-TANG です。
>
>>   Set xlApp = CreateObject("Excel.Application.9")
>(中略)
>> に変更してみたのですが、VERSION2000で保存していたBook1が2007で開いてしまいました(;_;)
>
>すみません、自分の回答とは無関係の内容のようですが、
>どういう意図のレスでしょうか。
>GetObject は使いたくないという意味でしょうか…?

【10986】Re:複数バージョンが共存する中で特定の...
発言  YU-TANG  - 09/2/4(水) 23:25 -

引用なし
パスワード
   こんばんは、YU-TANG です。

> 下記の通り記載を直しました!
>
>   ChDir "K:\外貨入出金比較\BANK BOOK 照合"
>   Workbooks.Open Filename:="K:\外貨入出金比較\BANK BOOK 照合\Book1.xls"
>   Set xlApp = GetObject(, "Excel.Application.9")
>
> あらかじめファイルをver2000で作成しておきオープンというYU-TANG さんのご指摘方法で出来ました☆
> ありがとうございました!!!!!

解決したようで何よりです。

……が、一応 過去ログのために補足しておくと、そのやり方は
自分の回答と関係ないですし、そのコードでバージョンを特定
できるというのも不思議です。
解決しているわけですからそれでいいのかもしれませんが、
小僧さんの提案で Excel 2000 を regserver したから
クラス名 Excel.Application が Excel 2000 に関連付けられて
いるだけの可能性はありませんか(まあそれで問題ないなら、
はなから Excel 2000 を既定のクラス ハンドラーにしておけば
よかっただけの話ですが)。
また、Access VBA のはずなのに、何の修飾も無く「Workbooks」が
出現するのも非常に香ばしい感じです。幽霊にとりつかれなければ
よいのですが。

2007 に関連付けられている混在環境の方は、10974 のコードで
本当に特定バージョンの Excel を開けるのでしょうか?
時間と環境が許す方は、再現テスト結果などお寄せいただけると
有効性が確認できると思います。

それでは。

【10987】Re:複数バージョンが共存する中で特定の...
お礼  yuki  - 09/2/5(木) 10:16 -

引用なし
パスワード
   ▼YU-TANG さん:
おはようございます!
本日2000/2007の双方のバージョンのエクセルを開けている状態で再度試したらダメでした・・・。
昨日できたのは、何か特定の条件で行ったからでしょうか。。
(ちなみに、Workbooks.の前にはxlappをつけて実行していました。スミマセン。)
もう一度YU-TANG さんと小僧さんにご回答いただいた内容を含めていろいろ試してみます!
またご報告します!


>こんばんは、YU-TANG です。
>
>> 下記の通り記載を直しました!
>>
>>   ChDir "K:\外貨入出金比較\BANK BOOK 照合"
>>   Workbooks.Open Filename:="K:\外貨入出金比較\BANK BOOK 照合\Book1.xls"
>>   Set xlApp = GetObject(, "Excel.Application.9")
>>
>> あらかじめファイルをver2000で作成しておきオープンというYU-TANG さんのご指摘方法で出来ました☆
>> ありがとうございました!!!!!
>
>解決したようで何よりです。
>
>……が、一応 過去ログのために補足しておくと、そのやり方は
>自分の回答と関係ないですし、そのコードでバージョンを特定
>できるというのも不思議です。
>解決しているわけですからそれでいいのかもしれませんが、
>小僧さんの提案で Excel 2000 を regserver したから
>クラス名 Excel.Application が Excel 2000 に関連付けられて
>いるだけの可能性はありませんか(まあそれで問題ないなら、
>はなから Excel 2000 を既定のクラス ハンドラーにしておけば
>よかっただけの話ですが)。
>また、Access VBA のはずなのに、何の修飾も無く「Workbooks」が
>出現するのも非常に香ばしい感じです。幽霊にとりつかれなければ
>よいのですが。
>
>2007 に関連付けられている混在環境の方は、10974 のコードで
>本当に特定バージョンの Excel を開けるのでしょうか?
>時間と環境が許す方は、再現テスト結果などお寄せいただけると
>有効性が確認できると思います。
>
>それでは。

【10989】Re:複数バージョンが共存する中で特定の...
回答  YU-TANG  - 09/2/5(木) 22:39 -

引用なし
パスワード
   こんばんは、YU-TANG です。

> 本日2000/2007の双方のバージョンのエクセルを開けている状態で再度試したらダメでした・・・。

やはりそうでしたか。

> (ちなみに、Workbooks.の前にはxlappをつけて実行していました。スミマセン。)

了解です。
できれば実際のコードのまま転記していただけるとありがたいです。

> もう一度YU-TANG さんと小僧さんにご回答いただいた内容を含めていろいろ試してみます!

ご苦労様です。

ちょっと自分の説明が伝わりにくかったようなので、改めて説明して
みますが。

もともと 10959 でこう書きました。

> 先に新規ブックをどっかに作ってしまって、そいつを Shell で Excel 2000 に
> 開かせたら、GetObject で Excel 2000 のインスタンスを取れませんかね。

箇条書きにすると、こういう意味です。

1. 先に新規ブックをどこかに作っておく
2. 1 のファイルを Shell で Excel 2000 に開かせる
3. GetObject で 2 のインスタンスを取得する(混在環境がないので実際に取れるかどうかは知らない)

この通りのコードはまだ書かれていないようなので、あるいはコードを
書いて提示しないと伝わらないのかもしれません。

こんな感じです(ベタ打ちです)。

' 1. 先に新規ブックをどこかに作っておく
sFile = "K:\外貨入出金比較\BANK BOOK 照合\Book1.xls"

' 2. 1 のファイルを Shell で Excel 2000 に開かせる
sExcel2kExe = "C:\Program Files\Microsoft Office\Office\Excel.Exe"
Shell """" & sExcel2kExe & """ """ & sFile & """", vbNormalFocus
DoEvents  ' 念のため

' 3. GetObject で 2 のインスタンスを取得する
Set xlBook = GetObject(sFile)
Set xlApp = xlBook.Application
MsgBox xlApp.Version  ' 9.0 だったら Excel 2000

注意点としては、2 で Excel 2000 を起動しても ROT に登録される
前に 3 に進んでしまうと、GetObject が既存のインスタンスを取得
せずに Excel 2007 で新たに開きに行く可能性があります。その場合
は 2 と 3 のあいだでちょっと時間稼ぎする必要があるかもしれ
ません(10979 と混同しないようにしてください。こちらは同期待ち
したらダメですので)。

上の説明で伝わりますか?
それでは。

【10991】Re:複数バージョンが共存する中で特定の...
お礼  yuki  - 09/2/6(金) 17:41 -

引用なし
パスワード
   ▼YU-TANG さん:

YU-TANGさん、こんばんは!
詳細な御説明ありがとうございます!
皆様プロフェッショナルな方々なので、ド素人な私はお話についていけずあたふたしてしまっていたので、コードを書いて頂けて本当にありがたかったです!

  Dim strSql As String
  
  sFile = "K:\外貨入出金比較\BANK BOOK 照合\Book1.xls"

  sExcel2kExe = "C:\Program Files\Microsoft Office\Office\Excel.Exe"
  Shell """" & sExcel2kExe & """ """ & sFile & """", vbNormalFocus
  DoEvents

  Set xlBook = GetObject(sFile)
  Set xlApp = xlBook.Application
  MsgBox xlApp.Version  

で実行して、2000のワークシートへ書き込みができました!!!!
2000/2007双方を開けている状態でも試しましたが、問題なく処理ができました!

本当にありがとうございました!!
YU-TANGさんの優しさに感動です!

>こんばんは、YU-TANG です。
>
>> 本日2000/2007の双方のバージョンのエクセルを開けている状態で再度試したらダメでした・・・。
>
>やはりそうでしたか。
>
>> (ちなみに、Workbooks.の前にはxlappをつけて実行していました。スミマセン。)
>
>了解です。
>できれば実際のコードのまま転記していただけるとありがたいです。
>
>> もう一度YU-TANG さんと小僧さんにご回答いただいた内容を含めていろいろ試してみます!
>
>ご苦労様です。
>
>ちょっと自分の説明が伝わりにくかったようなので、改めて説明して
>みますが。
>
>もともと 10959 でこう書きました。
>
>> 先に新規ブックをどっかに作ってしまって、そいつを Shell で Excel 2000 に
>> 開かせたら、GetObject で Excel 2000 のインスタンスを取れませんかね。
>
>箇条書きにすると、こういう意味です。
>
>1. 先に新規ブックをどこかに作っておく
>2. 1 のファイルを Shell で Excel 2000 に開かせる
>3. GetObject で 2 のインスタンスを取得する(混在環境がないので実際に取れるかどうかは知らない)
>
>この通りのコードはまだ書かれていないようなので、あるいはコードを
>書いて提示しないと伝わらないのかもしれません。
>
>こんな感じです(ベタ打ちです)。
>
>' 1. 先に新規ブックをどこかに作っておく
>sFile = "K:\外貨入出金比較\BANK BOOK 照合\Book1.xls"
>
>' 2. 1 のファイルを Shell で Excel 2000 に開かせる
>sExcel2kExe = "C:\Program Files\Microsoft Office\Office\Excel.Exe"
>Shell """" & sExcel2kExe & """ """ & sFile & """", vbNormalFocus
>DoEvents  ' 念のため
>
>' 3. GetObject で 2 のインスタンスを取得する
>Set xlBook = GetObject(sFile)
>Set xlApp = xlBook.Application
>MsgBox xlApp.Version  ' 9.0 だったら Excel 2000
>
>注意点としては、2 で Excel 2000 を起動しても ROT に登録される
>前に 3 に進んでしまうと、GetObject が既存のインスタンスを取得
>せずに Excel 2007 で新たに開きに行く可能性があります。その場合
>は 2 と 3 のあいだでちょっと時間稼ぎする必要があるかもしれ
>ません(10979 と混同しないようにしてください。こちらは同期待ち
>したらダメですので)。
>
>上の説明で伝わりますか?
>それでは。

【10992】Re:複数バージョンが共存する中で特定の...
お礼  yuki  - 09/2/6(金) 17:49 -

引用なし
パスワード
   ▼YU-TANG さん:
Dim strSql As String
ではなく、
Dim sExcel2kExe As String
で実行してます!失礼しました!

出来て本当にうれしいです(;▽;)
ありがとうございます!!


>こんばんは、YU-TANG です。
>
>> 本日2000/2007の双方のバージョンのエクセルを開けている状態で再度試したらダメでした・・・。
>
>やはりそうでしたか。
>
>> (ちなみに、Workbooks.の前にはxlappをつけて実行していました。スミマセン。)
>
>了解です。
>できれば実際のコードのまま転記していただけるとありがたいです。
>
>> もう一度YU-TANG さんと小僧さんにご回答いただいた内容を含めていろいろ試してみます!
>
>ご苦労様です。
>
>ちょっと自分の説明が伝わりにくかったようなので、改めて説明して
>みますが。
>
>もともと 10959 でこう書きました。
>
>> 先に新規ブックをどっかに作ってしまって、そいつを Shell で Excel 2000 に
>> 開かせたら、GetObject で Excel 2000 のインスタンスを取れませんかね。
>
>箇条書きにすると、こういう意味です。
>
>1. 先に新規ブックをどこかに作っておく
>2. 1 のファイルを Shell で Excel 2000 に開かせる
>3. GetObject で 2 のインスタンスを取得する(混在環境がないので実際に取れるかどうかは知らない)
>
>この通りのコードはまだ書かれていないようなので、あるいはコードを
>書いて提示しないと伝わらないのかもしれません。
>
>こんな感じです(ベタ打ちです)。
>
>' 1. 先に新規ブックをどこかに作っておく
>sFile = "K:\外貨入出金比較\BANK BOOK 照合\Book1.xls"
>
>' 2. 1 のファイルを Shell で Excel 2000 に開かせる
>sExcel2kExe = "C:\Program Files\Microsoft Office\Office\Excel.Exe"
>Shell """" & sExcel2kExe & """ """ & sFile & """", vbNormalFocus
>DoEvents  ' 念のため
>
>' 3. GetObject で 2 のインスタンスを取得する
>Set xlBook = GetObject(sFile)
>Set xlApp = xlBook.Application
>MsgBox xlApp.Version  ' 9.0 だったら Excel 2000
>
>注意点としては、2 で Excel 2000 を起動しても ROT に登録される
>前に 3 に進んでしまうと、GetObject が既存のインスタンスを取得
>せずに Excel 2007 で新たに開きに行く可能性があります。その場合
>は 2 と 3 のあいだでちょっと時間稼ぎする必要があるかもしれ
>ません(10979 と混同しないようにしてください。こちらは同期待ち
>したらダメですので)。
>
>上の説明で伝わりますか?
>それでは。

605 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078198
(SS)C-BOARD v3.8 is Free