【EXCEL VBA】1/100秒で時間を取得する方法

このQ&Aのポイント
  • RS232C通信で受信したデータをリアルタイムでグラフ表示するプログラムを作成しましたが、X軸を時間軸にする方法について行き詰まっています。
  • データ受信と同時に現在時刻を取得してX軸に使用しようとしましたが、1/100秒単位の時間を取得することができませんでした。
  • どのようにすれば1/100秒単位で時間を取得できるでしょうか。アドバイスをお願いします。
回答を見る
  • ベストアンサー

【EXCEL VBA】 1/100秒単位で時間取得するには?

RS232Cで通信して、受信データをリアルタイムでグラフ表示するプログラムを作成しました。 受信した順番に1,2,3…と番号を振っていき、その数字をそのままX軸にしているのですが、 X軸を時間軸にしたく行き詰っております。 ◆失敗策◆ データ受信と同時にNOW()で現在時刻を取得。 1つ目のデータ取得時刻を基準とし、各データ取得時刻との差を求めX軸とする。 上記の方法だと、NOW()で得られる時刻は1秒単位のためうまくいきませんでした。 少なくても1/100秒単位の時間を取得が必要です。 質問内容がうまく説明できたか不安ですが、もし説明不足でしたら補足させて頂きますので、どうかアドバイスを宜しくお願いいたします。

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

  • ベストアンサー
回答No.1
delilah91
質問者

お礼

早速のご回答ありがとうございました。 おかげさまで無事に解決できました! himajin100000さま、本当にありがとうございました。 ◆メモ◆ timeGetTime関数はそのままでは使えず、 Declare Function timeGetTime Lib "winmm.dll" () As Long でDLLを呼び出すことで使用可能となりました。

その他の回答 (1)

回答No.2

#1だ。 経過時間じゃなくて 現在時刻か・・・・ http://members3.jcom.home.ne.jp/daruma_kyo/info/getMilliSec.html GetLocalTime APIってのがあるもよう

delilah91
質問者

お礼

いえ、経過時間でいいんです…。 すいません。 経過時間を知りたかったのですが、経過時間を出すために 1個目のデータ受信当時の現在時刻と n個目のデータ受信当時の現在時刻を取得して、 その差から経過時間を出そうと思っていたものですから・・・。 誤解を招く表現ですいませんでした。 ありがとうございました。

関連するQ&A

  • [EXCEL] 時間単位のグラフ作成方法について

    掲題の件について、方法がわからず困っております。 ご教示願います。 現在、サーバの稼働統計をパフォーマンスモニタを使用して、CSV出力しました。 レポートは5分毎に取得され、1週間分のレコードがCSVで出力されました。 この結果を、X軸を時間、Y軸をCPU(%Processor Time)のグラフで整理したいと考えております。 現在、時間単位の平均グラフ(棒グラフ)を整理したいと考えております。 前述したように、データは5分単位で出力されているため、そのままでは分単位のグラフになってしまいます。 最終的には、サーバ台数分の同時刻の平均CPU使用率を比較したいと考えています。 DAVERAGEを利用し、別表で整理した結果をグラフのデータとして使用すれば、時間単位の平均をグラフ可能だとは思っていますが、サーバ台数が多く、かなりの時間がかかってしまうため、簡単に時間単位の平均グラフ(棒グラフ)を作成する方法を探しております。 よろしければ、作成方法をご教示願います。

  • 1/10秒単位で経過時間を測りたい

    Excell VBA で 1/10 秒単位で経過時間を表示する方法を教えてください。 現在は次の書式を使っているので、1秒単位でしか表示されません。 MsgBox "所要時間 : " & Format(Now - StartTime, "hh:mm:ss") StartTime は計測開始時刻です。

  • 秒以下は取得できないですか?

    VBAで現在時刻を取得する時は秒以下は取得できないですか? Sub Nowを取得する() Debug.Print Now End Sub だと、秒までしか取得できません。 APIなどを使えば秒以下の取得は可能でしょうか?

  • EXCEL2000グラフの作り方

    EXCEL2000です。 お世話になっております。 散布図のグラフを作成しました。 X軸に時間、Y軸にとあるデータです。 X軸のことについて質問です。 X軸は、左から 0:00:00 4:48:00 9:36:00 ・・・・ ・・0:00:00 4:48:00 とまあこんな感じになっていますが、実際には、最後の時刻4:48:00のところまで データがなく、途中でデータグラフが終わっているので、 もうちょっとグラフを縮めたいのです。 つまり、具体的には4:48:00を削除して グラフを0:00:00のところで終わりたいのですが。。 どうすればいいのでしょうか? 欲を言えば、こういうグラフがいくつかあるので、 図形を選択するみたいに、選択して、 いっぺんにいくつものグラフの同じ設定をすることが できますでしょうか???どうかおねがいします!!!

  • Excel2000マクロ

    お世話になっております。 マクロのことで教えてください(マクロ初心者です(^_^;)) A列・・日付 B列・・時刻 C列・・数値データ “時刻”が2秒おきのデータなので1分おきのデータを抽出したいので、D列にSECOND関数を使って秒だけを抜き出し、 オートフィルタで“0”だけを抽出し、これで1分おきのデータを抽出し、 B列がX軸でC列がY軸のグラフを作ります。 これをマクロで記録して自動的にやりたかったのです。 ですが、 「D列にSECOND関数を使って秒だけを抜き出し、 オートフィルタで“0”だけを抽出し、これで1分おきのデータを抽出し、・・」 のところは、うまくマクロで自動化できるのですが、 別シートに出来たグラフを見ると、一番最初に記録して作ったグラフがそのまんまできてしまいます。 次のデータでグラフをつくりたかったのですが。。 これはどうしてでしょう? グラフまではうまくできないのでしょうか?

  • 数値で表示されている時間を秒単位に変換したい

    Excleの関数についての質問です。 ある表について、A列を「処理時間」としているのですが、その列は書式を時刻(XX:XX:XX)の形ではなく、数字で入力しています。 例えば、11:20:01であれば「112001」、00:00:01であれば「1」と入力されています。 (頭0は無し) ここに秒単位変換用の列を追加し、処理時間が1(時刻形式では00:00:01)であれば1、100(時刻形式では00:01:00)であれば60、10000(時刻形式では01:00:00)であれば3600というように、秒単位に変換する関数を組みたいのですが、どのようにすれば良いでしょうか?

  • Excel2007 グラフ作成について

    添付したデータでグラフを作成したいのですが、思うようなものができないので教えてください。 1.データは1/1~1/10のある作業の所要時間とその平均値 2.グラフの種類は散布図 (1)Y軸に時間、X軸に日付をとっていますが、00:00が2つ、00:02も2つ取られているのはどうしてでしょうか?単純に00:00から1秒刻みで増えていってほしいのですが。。。 (2)どうもデータとグラフが一致していません。たとえば、1/1は00:01なのにグラフ上では00:01よりも下に交点があります。どうして00:01上にないのでしょうか。 (3)平均値(00:02)を基準にして(0と考えて)その差をまずB3~K3に入れ、それをグラフ化したいのですが時刻の引き算でマイナス表示ができません。どうすればいいでしょうか。

  • ASPを使用してミリ秒単位の時間の取得

    タイトル通りです。 とある関数のオーバーヘッド時間を計測したいです。 ミリ秒単位の時間を取得する方法は無いでしょうか? 言語はASP(VBScript)です。

  • Accessでグラフを作りたいのですが

    アクセスは殆ど使用したことがなく 分からないことも多いのですが、 今回はある計測データのグラフを作成したいと考えております。 Excelでもいいのですがデータ点数が86400もあるため データをOffice2003ではグラフかできません。 計測データは1日(24時間)の1秒間隔のデータです。 x軸に時刻、y軸に計測データにしたいです。 よろしくお願いします。

  • Excel2010 VBAについて

    以下のソースを書いて実行したのですが 「実行エラー'1004' WorksheetFunctionクラスのVlookupプロパティを取得できません」 と表示されます Sub 時刻表示() '日本の時間と選択した年の時刻・時差を1秒ごとに表示しなおす Dim City As String Dim Jisa As Long Application.ScreenUpdating = False City = Range("C6").Value Jisa = WorksheetFunction.VLookup(City, _ Worksheets("都市リスト").Range("B3:C14"), 2, False) Range("E7").Value = Jisa Range("C4").Value = Now Range("C7").Value = DateAdd("h", Jisa, Now) Range("C4, C7").NumberFormat = "m/d h:mm:ss" Application.ScreenUpdating = True Application.OnTime Now + TimeValue("0:00:01"), "時刻表示" End Sub Sub 時刻表示終了() '時計を止める Application.OnTime Now + TimeValue("0:00:01"), "時刻表示", Schedule:=False End Sub デバックをすると Application.OnTime Now + TimeValue("0:00:01"), "時刻表示", Schedule:=False がマーカーで引かれます 一応本通りには打ったと思うのですが、、、。 どこが間違えているか教えてください

専門家に質問してみよう