• 締切済み

マクロ システムの日時を変更(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

  • 【エクセルマクロ】日付変換

    A1 → 12:00 A1のセルに入力してあります。 マクロで、 Dim 時刻1 As Date 時刻1 = Cells(1, 1).Value としたところ、、 時刻1 → 0:05 となってしまいます。 なぜでしょうか。。。

  • ExcelマクロでCSVを開くと勝手に変更される項目があります

    ExcelマクロでCSVを開くと勝手に変更される項目があります Excel2003のマクロでの質問なのですが。 AAAというCSV形式のファイルに「3-90」という項目があります。 Excelから、ファイル - 開く - AAA.CSV で呼び出したときはセルに「3-90」と表示されます。 ところがマクロから Workbooks.Open Filename:="C:\Book1.csv" を実行して開くと「3-90」が「Mar-90」と表示され、セルの内容も「1990/3/1」と勝手に変換されて しまいます。 解決策ありましたら、教えてください。 できたら原因もお願いします。 よろしくお願いします。

  • VBAでマクロを走らせた日時をSheet2のAセルに入力する

    VBAでマクロを走らせた日時をSheet2のAセルに入力する はじめまして。 現在、ファイルを整理するマクロを使っています。 そのマクロを使った履歴を残す意味で、 いつマクロを走らせたかすぐにわかるように、 Sheet2のAのセル(2行目から)に走らせた日時を示したいと思っています。 マクロでの処理が終わったら、 毎回Sheet2に日時が入力されるようにするには、 どんな命令文を追記したらよいのでしょうか。 マクロに関しては知識がなく、 インターネットで調べて、 Sheets("Sheet2").Cells(R, "A").Value = Now というのを追記してみたのですが、 Sheet2に入力はされるものの、 Aセルの行がとびとびに入力されたり、 整理したファイルの数だけ(複数)入力されてしまいます。 マクロを1回走らせたら1つの日時が入力されるようにしたいです。 Sub ()とEnd Subの間にFor RとNext Rがあり、 作業が繰り返されているようです。 転記ができないため、マクロを示すことができません。 さすがに、これだけの情報では難しいでしょうか。 わかるかたがいらっしゃいましたら、 よろしくおねがいします。

  • 指定日時にプログラムを起動させたい。

    指定日時にプログラムを起動させようと考えています。 これを実現するにあたり、Application.OnTime 指定時刻,プログラム とすれば良さそうだと考えました。 ------------------------------------------------------- Application.OnTime DateValue(MyGoDate) + TimeValue(MyGoTime), "一括実行.xls!All_Execute_Click" ------------------------------------------------------- ところが、次の手順で指定日時を作成すると「実行時エラー13型が一致しません」のエラーが出てしまいます。 指定時刻には、必ずバリアント型を指定するとのことで、 「指定時刻 = DateValue("2007/08/31") + TimeValue("07:30:00")」 次の手順で作成されたものが、バリアント型になっていないことが原因かと思います。 ▼質問・お願い 1)「実行時エラー13型が一致しません」のエラーを回避するには、どうしたらよいでしょうか。 2)指定日時にプログラムを起動させるより良いコードがあれば、教えて頂けませんでしょうか。 ▼手順 ------------------------------------------------------- (1)ワークシートのセルに指定日時を入力。 指定日時を入力すると数値になるため、WorksheetFunction.Text((Cells(*, *)), "00")で文字列に変換。 (2)次の変数に指定時刻の要素を格納。 GoYear :Cells(4, 2)に年を入力。 GoMonth:Cells(4, 4)に月を入力。 GoDay :Cells(4, 6)に日を入力。 GoHour :Cells(5, 4)に時を入力。 GoMin :Cells(5, 6)に分を入力。 GoSec  : "00"を固定。 (3)DateValue("2007/08/31")、TimeValue("07:30:00")の( )の中身をつなげる。 MyGoDate = CStr(GoYear & "/" & GoMonth & "/" & GoDay) ▼作成したVBAコード Sub 時刻設定() '指定日時 Dim GoYear As Variant Dim GoMonth As Variant Dim GoDay As Variant Dim GoHour As Variant Dim GoMin As Variant Dim MyGoDate As Variant Dim MyGoTime As Variant Const GoSec As Variant = "00" '秒は固定値。 GoYear = Cells(4, 2) '月 mmに変換。 GoMonth = WorksheetFunction.Text((Cells(4, 4)), "00") '日 ddに変換。 GoDay = WorksheetFunction.Text(Cells(4, 6), "00") '時 hhに変換。 GoHour = WorksheetFunction.Text(Cells(5, 4), "00") '分 mmに変換。 GoMin = WorksheetFunction.Text(Cells(5, 6), "00") MyGoDate = CStr(GoYear & "/" & GoMonth & "/" & GoDay) MyGoTime = CStr(GoHour & "/" & GoMin & "/" & GoSec) Application.OnTime DateValue(MyGoDate) + TimeValue(MyGoTime), "一括実行.xls!All_Execute_Click" End Sub 以上 お手数ですが、よろしくお願い致します。

  • Excelマクロで同じブックにCSVを読み込むには

    Excelの指定したシートにCSVファイルを読み込ませたいのですが 以下のVBAマクロを実行すると新しいブックが起動して 新しいブックの方にCSVファイルが読み込まれてしまうのですが これをVBAマクロを実行しているブックの指定のシート(例えばSheet3など)に 読み込ませたいのですがどのように記述すればよいのでしょうか。 よろしくお願いします(Excel2010) Sub Macro1()  ChDir "C:\test"  Workbooks.Open Filename:= "test1.csv" End Sub

  • マクロについて

    マクロであるプログラムを組んでいますが、うまくいきません。 かなり簡素化していいますと、次のような状況です。 エクセルのcells(1,1)に「9:30」という文字が入っています。 この"9:30"という文字列を読み出そうとするのですが読み出した値は0.39583…という数値になってしまっています。 具体的に言うと、 sub macro1() 開始時刻="9:30" 時刻=cells(1,1) if 開始時刻=時刻 then a=1 endif end というようなプログラム(実際はもう少し複雑ですが)を組んだのですが、どうしても「a=1」にならないので、デバッグ式で見てみると「時刻」の中味は"9:30"ではなく0.39583という数値だったということです。 ちなみにエクセルのそのセルの書式は、「表示形式:時刻、種類13:30」となっています。 どうすれば"9:30"という時刻(文字列)を読み出せるのでしょうか。教えてください。よろしくお願いいたします。

  • マクロCellsがわからなくて困っています

    マクロのCellsについて、夜も眠れないほど悩んでいます。 助けてください。 相談は以下です。 Cells(1,1).Select の行、列部分に、他のセルに入力済みの数値を指定したり、算出することはできますか? たとえば、あらかじめセルに数値が入っていたら Cells(1,A1).Select Cells(1,B1-A1).Select のように。(誤った文章ですが・・・) またこの方法に使えるCells以外の言葉があれば、教えてくださいませ!

  • Excel ブック内の指定したデータのコピーマクロ

    よろしくお願いします。 エクセルで自動登録で自動化をしていますが、これだと限界があり今回こちらに書き込みさせていただきました。 流れとしては、マクロスタートでダイアログがでて(可能なら奥底に格納されるブックなのでそのフォルダの一個前辺りの階層指定されて)そこで指定した毎日新しく作られるブック内の指定したシートの指定したセルにあるデータをコピー(ブックは開かないで読み込み)してテンプレートととしている空のブックを開き(開いたまま)指定したシートの指定したセルにペーストするマクロを作りたいです。 (指定したシートと指定したセルの名前は常に同じです) 自動記録で指定したブックを開いて読み込む事は出来ましたが、毎回別のブックなのでそれでは事足りないのです。 ネットで探しましたが… ・ダイアログでファイルを開くマクロは見つけましたが、開いた後内部のデータを読み込むなどマクロは見つかりませんでした。 つながるところがわかりません。 ・(存在するブックの場所指定で)ブックを開かないでその中のデータを読み込むマクロは見つけましたが、ダイアログで選ぶけど開かないでと言う事が出来るマクロは見つけられませんでした これらは元々出来ないのでしょうか? 可能で有ればご教示下ださると助かります。 よろしくお願いします。

  • EXCEL のマクロを作りたいんですが・・・

    マクロはあまり詳しくありません。マクロの記憶で設定し、多少内容の変更をする程度です。 マスターのBOOKがあり、月ごとにデータを入力し、その都度名前を付けて保存します。 (データの量はまちまちです) Sheet1にデータを入力し、Sheet2には関数が入っております。 使いたいのはSheet2にあるデータなのですが、データが無い欄は関数が入っていますので、そのままではデータとして使うのが面倒です。 CSVで出力するにしても、空の関数の欄が,,,,と出ます。 データが入っているセルだけを範囲指定して、値の貼り付けをし、使用していない空のセルの関数を消すというマクロが出来るでしょうか?

  • エクセルのマクロのセルの範囲指定

    エクセルのマクロで、うまくセルの範囲を指定できません。 例えば、 Range(Cells(5.6), Cells(8, 7)) = "AAA" と、指定した時は、F5:G8のセルにAAAという文字を代入するつもりで書いています。 ところが、マクロを実行すると、F1:G8まで、AAAの文字が代入されます。 どうしてでしょうか。 宜しくお願い致します。

専門家に質問してみよう