
http://www.excellenceweb.net/vba/api/what_window …
のページを参考にPC起動時間を取得したいのですが
サンプルは単位がミリ秒になっています。
--------------------------------------------------
Declare Function GetTickCount Lib "kernel32.dll" () As Long
Sub TEST1()
Dim Tickcount As Long
'GetTickCount関数から、起動からの時間が返される
Tickcount = GetTickCount()
MsgBox "PC起動から " & Tickcount & " ミリ秒経過しています"
End Sub
--------------------------------------------------
○時間○分○秒にしたいのですが
どうすればいいでしょうか?
Formatを使うと思うのですが
どういうコードを書けばいいのかわかりません。
ご教授よろしくお願いします。
No.6
- 回答日時:
こんなのとか
Declare Function GetTickCount Lib "kernel32.dll" () As Long
Sub TEST1X()
Dim Tickcount As Long
'GetTickCount関数から、起動からの時間が返される
Tickcount = GetTickCount() / 1000
MsgBox CLng(DateAdd("s", Tickcount, 0)) & "日と" & TimeValue(DateAdd("s", Tickcount, 0))
End Sub
No.4
- 回答日時:
GetLocalTime は時刻を返す関数ですから、時間を計算するのはかえって面倒になりますよ。
C言語の localtime 関数なら秒から時刻に変換できます。ミリ秒から変換する必要がありますが。
確かに一般に、誰でも使う機会がある機能を再発明するのはよくないとされていますが、この場合は当てはまらないでしょう。
正直に言って、プログラミングの勉強の前に小学校の算数をやり直すことをお勧めします。

No.3
- 回答日時:
GetLocalTimeじゃなくて、GetSystemTimeの誤りでした、大変失礼。
ただ、残念ながら、どちらを使っても無理みたいですねえ。
MSDNを見た限りでは、GetTickCountのミリ秒から時分秒に変換できるAPIは無いようです。
自力で変換するしかないと思います。VBの割り算は四捨五入なのでFix関数を通さないと計算結果が狂うみたいです。
とりあえず、これで出来ませんかね。因みに、Microsoft Office Excel 2007 VBAで試してます。
Declare Function GetTickCount Lib "kernel32.dll" () As Long
Type HMS
h As Long
m As Long
s As Long
End Type
Sub MS2HMS(ByRef r As HMS, ByVal tick As Long)
tick = tick / 1000
r.h = Fix(tick / 3600)
r.m = Fix((tick - (r.h * 3600)) / 60)
r.s = tick - ((r.h * 3600) + (r.m * 60))
End Sub
Sub TEST1()
Dim Tickcount As Long
Dim result As HMS
'GetTickCount関数から、起動からの時間が返される
Tickcount = GetTickCount()
MS2HMS result, Tickcount
MsgBox "PC起動から " & Tickcount & " ミリ秒経過しています"
MsgBox "" & result.h & " 時 " & result.m & " 分 " & result.s & " 秒 "
End Sub

No.2
- 回答日時:
GetTickCountじゃなくて、GetLocalTimeだったら一発で取得できて変換の必要はないと思うんですが、駄目なんですかね。
http://wisdom.sakura.ne.jp/system/winapi/win32/w …
http://msdn.microsoft.com/ja-jp/library/cc429760 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Excel(エクセル) Excel-VBAの「しばらくお待ちください」のダイアログが自動的に閉じない 2 2023/05/24 15:31
- Access(アクセス) Vba Userformを前面に出すについて 3 2022/04/15 12:29
- Visual Basic(VBA) VBA 配列を使ったコードに直していただけますか 4 2023/05/06 15:18
- Visual Basic(VBA) VBAでfunctionを利用しようとしたときに「引数は省略できません」というエラーが出ます 1 2022/10/15 16:30
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBSで起動したアプリが前面表示...
-
Process.Startで起動したアプリ...
-
VBAでOutlookを終了させたい Ex...
-
VC++アプリからEXCEL...
-
HTMLタグの中にDLLを埋め込む事...
-
VBAでSeleniumからChromeを起動...
-
VBA 最大化する方法
-
VBで実行中のEXEファイルの情報...
-
URLエンコード 文字数について
-
Vba アプリケーションが立ち上...
-
宛先ナシでメールソフトを起動...
-
VBSから別のVBS起動するとき変...
-
VBSでExcelのUserFormをエクス...
-
VisualStudio2005でのビルドに...
-
キー操作 (WSH:コピー&ペー...
-
VB6で呼び出し元の情報を取得す...
-
QueryPerformanceCounter の使...
-
VBAでIEが起動しているか...
-
Visual Studio 「AnyCpu」について
-
ManagementClassが見つからない。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでOutlookを終了させたい Ex...
-
アウトルックが起動しているか...
-
Process.Startで起動したアプリ...
-
VBで実行中のEXEファイルの情報...
-
Windows上のプログラム。「予め...
-
キー操作 (WSH:コピー&ペー...
-
exeファイルを実行するとすぐに...
-
VBSで起動したアプリが前面表示...
-
EXCEL VBAから他アプリケーショ...
-
VBSから別のVBS起動するとき変...
-
VB6で呼び出し元の情報を取得す...
-
フォームの最前面が効かない
-
gccプログラムで複数の実行ファ...
-
ウィンドウを終了させたい・・・
-
C# 他のアプリケーションを優先...
-
MSDOS(バッチファイル)でプロセ...
-
64bitで作ったEXEを32bitで起動...
-
VBAでSeleniumからChromeを起動...
-
VB6.0からエクセルを起動
-
VBSでExcelのUserFormをエクス...
おすすめ情報