EXCEL VBA SaveAsメソッドの保存時に問題が発生する原因と解決方法

このQ&Aのポイント
  • 現在、ネットワーク内の2サーバー間でvbsを使用してExcelピボットを更新して別名で保存する処理を作成しています。しかし、SaveAsメソッドを実行する際に、作成されるべきファイルと拡張子無しの16進数のようなファイル名のファイルが2つ出来上がってしまいます。この問題の原因と解決方法を教えていただきたいです。
  • Excelのバージョンは2003で、Server2のExcelマクロを手動で実行した場合はこのような問題は発生しませんでした。しかし、Server1からExcelマクロ実行用のvbsをキックしてServer2のExcelマクロ内のSaveAsメソッドを実行すると、予期しないファイルが生成されてしまいます。この違いの原因と解決策を知りたいです。
  • どうすれば、Excel VBAのSaveAsメソッドを使用して正しくファイルを保存できるのでしょうか?ネットワーク内の2サーバー間でExcelピボットを更新して別名で保存する処理を実行していると、拡張子無しの16進数のようなファイル名のファイルが2つ生成されてしまいます。この問題を解決する方法を教えてください。
回答を見る
  • ベストアンサー

EXCEL VBA SaveAsメソッドについて

お世話になります。 現在、ネットワーク内の2サーバー間でvbsを使用してExcelピボットを更新して別名で保存する処理 を作成しています。この時、Server1からExcelマクロ実行用のvbsをキックしてServer2のExcel マクロ内のSaveAsメソッドを実行してExcelを別名で保存すると、 作成されるべきファイルと拡張子無しの16進数のようなファイル名のファイルが2つ出来上がってしまいます。 Excelのバージョンは2003でServer2のExcelマクロを手動で実行した場合はこのようなことは発生しませんでした。 どなたか原因がわかる方がいればご教示いただきたく存じます。 何卒よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • DaddyBear
  • ベストアンサー率38% (7/18)
回答No.1

【この回答は経験から考えた想像です、参考になれば】 SaveAsで指定したファイルが正しく作成されており、16進数のようなファイルが作成されることに困っている、と質問を読み取りました。 「16進数のようなファイル名」は、Excelのテンポラリファイルのような気がします。 それが残る原因となると ・VBA実行環境(アカウント等)に削除権限が無い のでは?という気がしますが、如何でしょうか?

anman0201
質問者

お礼

ご回答ありがとうございます。 まさにおっしゃる通りでした。 バッチ実行用ユーザーに変更権限がありませんでした。 それを付与して実行したところ希望通りの処理を作成することができました。 本当にありがとうございました!

関連するQ&A

  • VBAのSAVEASメソッド

    こんにちわ。 ACCESS2000のVBAでEXCEL2000ファイルを操作していますが, ファイルを上書きする「.SaveAsメソッド」を実行したとき, 「ファイルを上書きしますか?-はい/いいえ/キャンセル」という ダイアログが表示されます。 このダイアログを表示せずに強制的に上書き保存したいのですが, どのようにすればよいでしょうか? 教えてください。お願いします。

  • エクセルVBAのメソッドSaveasについて

    Dell Dimention8300 HDD 80GB (空き領域 17.4GB) Pentium4 2.6GHz 512MB RAM Windows XP Pro/エクセル2002使用です。 エクセルVBAで下記のようファイルを追加するようにしました。 ブックA(.xls) 147KB ブックB(.xls) 18KB ブックC(.xls) 7,955KB ブックAにマクロを記述 ブックBから新しいファイルをつくる個数を取得 略 for i = 1 to (新しく作る個数)  Workbooks("ファイルC").Activate  ActiveWorkbook.SaveAs FileName:="C:\・・・・・・(新ファイル名)" next 略 ファイルCをメソッドSaveAsにて新しいファイルを作っていくのですが、その個数が数十個程度あれば問題ないのですが、100個を越えると非常に遅くなるか、途中でプログラムの応答がなくなります。 メソッドSaveAsが、CPUかメモリを浪費しているのかと思うのですが、関係あるでしょうか? よろしくお願いします。

  • SaveAsメソッドについて

    いつもお世話になっております。 Accessから抽出したデータをVBAを使って、Excelファイル として保存しています。 ExWorkSheet.SaveAs "ファイルパス" として保存しているのですが、上書き確認のダイアログ が表示されたときに、「いいえ」を押すと 「SaveAsメソッドは失敗しました」とエラーがでて しまいます。 エラー処理の書き方を調べているのですが、 よくわかりません。 ご存知のかた、どうかよろしくお願いいたします。

  • VBSとエクセルVBAの連携

    一定の処理を自動化したいと考えております 以下が現在の構成 main.vbs       メインの処理を実行 Master.xls (Macro1) マクロを記述してあるエクセル A.xls マクロを実行したいエクセル 現状はmain.vbsの処理を終了後に手動でアクティブウィンドウをA.xlsにしてMacro1を実行しています。 (エクセルファイルは両方開きっぱなしです) これをmain.vbsの処理の中に組み込み main.vbsの処理終了後に自動的に実行するようにしたいと考えています。 1.既に開いてあるエクセルファイルをアクティブにする処理が分かりません。 2.アクティブなエクセルファイルから別のエクセルファイルのマクロを実行する方法がわかりません。 初心者の質問で理解に苦しむかと思われますがご教授よろしくお願いいたします。

  • エクセルVBA 実行時エラーって出るんですけど・・・;;

    いつもお世話になってます またまた質問載せさせていただきます。 マクロで2つのファイルをSaveasで各保存をした後に、 エクセルを閉じると、 実行時エラー'1004' WorksheetクラスのSelectメソッドが失敗しました と出るのです。 デバックボタンもグレーのままなので、デバックは使えないし、そのまま終了をかけると、エクセル自体が閉じられるので、 さっぱり何がなにやらって感じなのです。 どなたか分かる方いらっしゃいますでしょうか??

  • ExcelのMacroOptionsメソッド

    エクセルのFunctionプロシジャーにてユーザー定義関数を作成したのですが その説明を[マクロ オプション] ダイアログ ボックスにいれようとMacroOptionsメソッドにて 説明をいれました。 このメソッドの実行イベントはWorkbooks_Openイベントでいれればいいとのことですけど ユーザー定義関数をいつでも使用したいので、エクセルブック本体にマクロとして組み込む のではなくアドインマクロとして、作成した標準モジュールのあるエクセルをアドインとして xlamで保存し、アドインを参照することにより使用したいと考えています。 その際、このユーザー関数の説明をいれるためにMacroOptionsメソッドをいれたいのですが xlamのThis_WorkBookモジュールのWorkbooks_Openイベントにいれましたが、実行されず [マクロ オプション] ダイアログ ボックスに表示されません。 どのモジュールのどのイベントにいれるのでしょうか? できることならxlam内のモジュールにいれたいのですが・・・・

  • slk拡張子のエクセルファイルを保存せずに.xlsに変換するには

    slk拡張子のエクセルファイルを保存せずに.xlsに変換するには slk拡張子のエクセルファイルが開かれています。 私の勉強不足のせいかslkでマクロでピボットテーブルを実行するとエラーになってしまい それをエクセルファイル.xlsで一旦保存後、実行するとエラーにならずうまくいきます。 その為、slk拡張子のエクセルファイルを.xlsに変換したいと思います。 しかしやりたいのはデータ容量が大きいので保存せずにそのまま.slkファイルを.xlsファイルに変換したいのですがそんなマクロって出来ますでしょうか?

  • Excel VBA

    マクロ処理で、VBSファイルを実行することは可能でしょうか?

  • VBA SaveAsでワークシートの指定する時

    以下は自動マクロで作成したものをちょっと変えたものです。 Sub Macro1() Sheets(1).Select Sheets(1).Copy ChDir "C:\" ActiveWorkbook.SaveAs Filename:="C:\Book2.xlsx", _ FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False Windows("Book2.xlsx").Activate ActiveWindow.Close End Sub 内容: 一番左のシートのみBook2.xlsxに保存する 疑問点: シートをコピーした後、SaveAsコマンドで保存する際に「コピーしたシートのみ保存する」ような記述が見られないことです。SaveAs自体が、コピーされたシートのみ保存すること前提のメソッドなのでしょうか? ちなみに、Sheets(1).Copyを削除するとブック全体を保存します。

  • エクセルのマクロで...

    エクセルのマクロなのですが、うまく実行されません。 sheet1・sheet2とシートがあって、 sheet1のデータを範囲にして、既存のワークシート に保存の形でsheet2にピボットテーブルを作成し、 できたピボットテーブルの、フィールドを"表示しない" にする、というマクロを作成し、実行したのですが、 ピボットテーブルは作成できるところまでは実行される のですが、「フィールドを"表示しない"」が 出来ません。なぜがsheet1の元のデータがデリート されてしまいます。 マクロ初心者なので、困っています。 どなたかご存知でしたらお願いします。

専門家に質問してみよう