• 締切済み

マクロ システムの日時を変更(windows7)

システムの日時を変更するマクロなのですが、 Windows XPでは問題なく動作していたものが、OSがWindows7になると"書き込みできません" とエラーになってしまいます。 マクロ自体は単純で、別のシステムからCSVで書き出した時間を所定のセルに読み込んで、 DATEとTAMEでそのセルを指定しているだけです。   Date = 時刻合わせ.Cells(7, 1) '『時刻合わせ』にはbookとsheetをセット   Time = 時刻合わせ.Cells(8, 1)   ※念の為、Date=の後に直接年月日を指定しても結果は同じでした。 管理者権限のあるアカウントでログインしているのですが、 どこかにまだ制限があるのでしょうか? おわかりになる方がいらっしゃいましたら、ご解答よろしくお願いいたいたします!

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

#1の回答者です。すでにご覧になっているかもしれませんが、念の為にリンク先を置いておきます。 一応、発言の根拠は以下にあります。 「システム時計の日時を設定する」 http://dobon.net/vb/dotnet/system/setlocaltime.html ここのWin32 APIのコードは、旧VB系でも関係ありませんから、ほとんど同じように書けるはずです。 UACに関しては、以下以上のプログラムでの変更は、VBAでは期待出来ないと思います。 「Vistaでプログラムを管理者モードで実行する。」 http://www.atmarkit.co.jp/fwin2k/win2ktips/899uacpromo/uacpromo.html

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

>どこかにまだ制限があるのでしょうか? もともと、そのようなシステムを書き換えするようなコードは、ヒンシュクものですが、確かに、XPでは、VBA関数のDate, Time は、簡単に双方向のデータのやり取りは可能です。 Vista以上は、UACの問題でしょうから、それを外せば良いわけですが、それでも、VBAから、Date, Time は変更出来るのか、手元にないので、何とも言えません。 Win32 API のSetSystemTimeで変更できるはずですが、UACの管理上の問題は変わらないはずです。

setu-kei
質問者

お礼

早速UACを無効にして試してみたのですが、 ・・・やはりエラーが出てしまいました PLCのデータを表示する専用のシステムで、PLCと時刻を合わせる必要あるのですが。。。 別の方法を考えてみます。 アドバイスありがとうございました!

関連するQ&A