| 
    
     |  | はじまして、OFFICE2000 DeveloperのExcel VBAで作成したマクロがXP環境で うまく動かなくて困っています。もし何か情報ありましたら教えてください。
 
 ■具体的なエラー内容
 XPの環境で、ブック間での関数の呼び出しを行うと、Openイベントで初期化した
 Public変数の値が値が消えてしまいます(intなら0、strなら"")。
 (Excel2000で動かす分には問題なく値は入ってきます。Excel XPの
 環境で動作させると上記のエラーが発生します。またXPで保存しなおした
 場合は上記エラーは発生しません。・・ですが、XPで保存しなおすやり方
 以外に方法があったら教えてください。)
 
 ■使用したファイル
 OFFICE2000 DeveloperのExcel VBA SR-1で作成しました。
 XPはパッチがあたっていない状態です。
 
 1. main.xls
 2. sub.xls
 
 1. main.xls
 ===================================
 (シートにボタンを張っています。)
 >シートへのコマンドボタンの内容
 Private Sub CommandButton1_Click()
 Workbooks.Open Filename:=("c:\sub.xls") ''←フルパスで指定
 End Sub
 ===================================
 
 
 2. sub.xls
 ===================================
 ''module1の内容
 Public ptest As Integer ''テスト用変数の定義
 ===================================
 ''ワークシートのOPENイベント
 Private Sub Workbook_Open()
 ptest = 1  ''変数の初期化
 MsgBox ("現在の変数の値は" & ptest & "です。") ''値の確認
 End Sub
 ===================================
 ''シートへのコマンドボタンの内容
 Private Sub CommandButton1_Click()
 MsgBox ("現在の変数の値は" & ptest & "です。") ''値の確認
 End Sub
 ===================================
 
 ■エラーの確認
 main.xlsをマクロ有効で開いて、コマンドボタンをクリックすると
 sub.xlsがOPENされます。OPEN後に、sub.xlsのコマンドボタンを押すと
 メッセージボックスで"現在の変数の値は0です。"と表示されます。
 OPENイベントで ptest = 1 と設定した値が、初期化されているようです。
 ためしにXPで同じファイルを開いて保存しなおしたら動くようになりましたが、
 再保存をしない方法がないかと探しております。
 
 ■よろしくおねがいします。
 私が思いついたのは、呼び出しもと(main.xls)にPublic変数を定義して、
 参照設定する方法がありましたが、ソースの改修量が多く難しそうです。
 同じような事例や不具合報告など検索しましたがうまく見つかりませんでした。
 どなたか、対処方法等ご存知でしたら教えてください。
 
 |  |