- 締切済み
マクロ システムの日時を変更(windows7)
システムの日時を変更するマクロなのですが、 Windows XPでは問題なく動作していたものが、OSがWindows7になると"書き込みできません" とエラーになってしまいます。 マクロ自体は単純で、別のシステムからCSVで書き出した時間を所定のセルに読み込んで、 DATEとTAMEでそのセルを指定しているだけです。 Date = 時刻合わせ.Cells(7, 1) '『時刻合わせ』にはbookとsheetをセット Time = 時刻合わせ.Cells(8, 1) ※念の為、Date=の後に直接年月日を指定しても結果は同じでした。 管理者権限のあるアカウントでログインしているのですが、 どこかにまだ制限があるのでしょうか? おわかりになる方がいらっしゃいましたら、ご解答よろしくお願いいたいたします!
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
#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)
>どこかにまだ制限があるのでしょうか? もともと、そのようなシステムを書き換えするようなコードは、ヒンシュクものですが、確かに、XPでは、VBA関数のDate, Time は、簡単に双方向のデータのやり取りは可能です。 Vista以上は、UACの問題でしょうから、それを外せば良いわけですが、それでも、VBAから、Date, Time は変更出来るのか、手元にないので、何とも言えません。 Win32 API のSetSystemTimeで変更できるはずですが、UACの管理上の問題は変わらないはずです。
お礼
早速UACを無効にして試してみたのですが、 ・・・やはりエラーが出てしまいました PLCのデータを表示する専用のシステムで、PLCと時刻を合わせる必要あるのですが。。。 別の方法を考えてみます。 アドバイスありがとうございました!