• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ExcelマクロをJP1で実行させる方法について)

ExcelマクロをJP1で実行する方法について

このQ&Aのポイント
  • VBA初心者のため、ExcelマクロをJP1から実行する際にマクロエラーが発生するが、コマンドプロンプトからは正常に動作する。
  • JP1のサポートによると、環境変数「TMP」の設定がJP1からアクセスできない場所になっていることが原因であることが判明。
  • ただし、一部のユーザはJP1からでも正常に動作するため、Excelにユーザ毎の環境変数の設定が関係している可能性がある。

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

  • ベストアンサー
回答No.2

なんとなく解せないところもありますが、そういうことがあるんですね。 解せないところというのは、JP1がトリガであろうともマクロを実行しているのがexcelであれば問題ないようにも思います。(excelでのマクロ実行時はexcelがユーザ環境変数を使える。Msgbox Environ("TMP")とだけ書いてexcelで実行すると、ユーザー環境変数のTMPのパスを返しますし。) それともJP1がVBAのコードを実行しているのでしょうか? (今更ですがJP1って日立の運用基盤ソフトのこと?) >とりあえず環境変数を指定する方法で回避するかなというところです。 明示的に指定しないということですが、それをを指定するようにできるってことですか?

ht0412
質問者

お礼

回答有難うございます。 >(今更ですがJP1って日立の運用基盤ソフトのこと?) はい、その通りです。JP1のマニュアルにも書いているのですが、プログラムを実行する際、ユーザ環境変数はセットせずシステム環境変数だけセットするのだそうです。実際に内容表示すると「TMP」は「C:\WINDOWS\TEMP」になってました。 >明示的に指定しないということですが、それを指定するようにできるってことですか? 明示的にプログラムの先頭でユーザ環境変数を指定するという意味です。

その他の回答 (1)

回答No.1

環境変数TMPをエクセルのマクロで使用しているのでしょうか? >Excelにユーザ毎の環境変数の設定があるようにしか思えませんが そんなことないと思いますが。。 推論ではありますが。 ユーザーに依っては、ということなのでAdministrator権限を持っているユーザーはできているとかあるのかも?その辺は確認されましたでしょうか? とりあえず、JP1がユーザ環境変数を取込まないことが分かっているのであれば環境変数TMPやTEMPは使用しないほうがいいのではないでしょうか。

ht0412
質問者

お礼

回答有難う御座います。 その後調べた結果、「C:\WINDOWS\TEMP」に「VBE」というフォルダがあり、正常動作する場合のユーザの権限がついてました。そのためユーザ(と言っても2個ですが)によって挙動が違うようです。(過去に何かのタイミングで間違って作成されたようです。。しかしどうやって??) 因みにこのユーザにはAdministrator権限はありません。 環境変数TMPはマクロで明示的に指定しているわけではないのでExcelが内部で使用しているように見えます。JP1サポートに言わせれば、JP1ではユーザ環境変数を取り込まないので使いたければプログラムで明示的に指定して下さいとのことです。 「C:\WINDOWS\TEMP」の権限も簡単に変更はできないので、とりあえず環境変数を指定する方法で回避するかなというところです。