0

お世話になっております。

スクリプト関連で、ご質問をさせて頂けませんでしょうか。

VBSやOfficeの動作環境などにお詳しい方がおりましたら何卒、ご助力頂きたく存じます。

標準ライブラリでネットワークドライブ上にエクセルを新規作成した後、

同じく標準ライブラリでエクセルを上書き保存しようとすると、失敗して、処理結果がfalseになってしまいます。

とあるPC限定で発生している現象です。

ローカルのCドライブにエクセルを保存しようと同様の処理をかけると、正常に保存されます。

また、まったく同じシナリオファイルを別のPCで動作させると、正常に保存ができております。

現象発生時の標準ライブラリの上書き保存のスクリプトをデバッグしてみたところ、

以下の太字斜めフォントの処理(GetObject)にて、オブジェクトの取得に失敗しているようでした。

' workbookオブジェクトを取得する
Set workbook = Nothing
On Error Resume Next
  ' 既存のエクセルが起動されていれば警告を抑制する
  Set existingXlsApp = Nothing
  Set existingXlsApp = GetObject(, "Excel.Application")
  existingXlsApp.DisplayAlerts = False

  ' 一先ずWorkbookオブジェクトをGetObjectしてみる
  Set workbook = GetObject(filePath)
  Set xlsApp = workbook.Parent

Set workbook = GetObject(filePath) の実行直後、workbookはNothingでした。

ファイルパスは特に問題がなく、また、本シナリオがエラーとなったあと、ひらっきぱなしになっている

新規作成のエクセルを手動で保存すると、ネットワークドライブ上に正常に保存されます。

関連の動作と致しましては、本現象が発生するPCで、ネットワークドライブに存在する既存のエクセルファイルを開いた後に、

上書き保存や別名保存を行うと、正常に保存されます。

しかし、新規作成の標準ライブラリを実行させ、エクセルが開いた状態のまま、新規作成したファイルパスを、

標準ライブラリで名前付けて保存をしようとすると、保存ができず、失敗してfalseになります。

新規作成で開いたエクセル、または、Bookオブジェクトを引っ張ってくることに失敗しているような気がしております。

いずれも、保存に失敗するPCは限られております。

設定は以下のような差異があります。

 ①本不具合が発生するPC

    Office 2019 Home&Buissiness

 ②本不具合が発生しないPC

    Office 2019 Personal

エクセルの、マクロの権限や、Active X コントロールの設定は合わせております。

どうか、宜しくお願いいたします。

新しいコメントを投稿
申し訳ありません。回答とコメントを閲覧するにはログインが必要です。会員登録はこちらからアクセスしてください。