- ベストアンサー
秒以下は取得できないですか?
WindFallerの回答
>Debug.Print Now 必要がなかったので、考えてもみなかったのですが、確かに、 Sub Test1() Dim myDate As Date Dim myTime As Date Dim ret As Double ret = Time MsgBox Format(ret, "hh:nn:ss.000") End Sub これでは、秒以下の数字は取れないようですね。確か、ワークシート側には、秒以下の表示はあったはずです。 以下のような、Win32 APIは、マニアックな世界なので、あまりお勧めしませんが、GetLocalTime を使って、以下のようにしてみたらいかがですか?実際は、秒以下そのものを用いるというよりも、自家製イベントなどに用いたりすることになるのでしょうから、その場合は、劇薬ですから、くれぐれも慎重にお使いください。 '//標準モジュール Private Declare Sub GetLocalTime Lib "kernel32" (lpSystem As SYSTEMTIME) Private Type SYSTEMTIME wYear As Integer wMonth As Integer wDayOfWeek As Integer wDay As Integer wHour As Integer wMinute As Integer wSecond As Integer wMilliseconds As Integer End Type Private sysLocalTime As SYSTEMTIME Sub Test2() GetLocalTime sysLocalTime MsgBox sysLocalTime.wHour & ":" & _ sysLocalTime.wMinute & ":" & _ sysLocalTime.wSecond & ":" & _ sysLocalTime.wMilliseconds End Sub
関連するQ&A
- アプリケーションの横幅の値を取得したい vba
アクセスのアプリケーションの横幅の値をvbaで取得する事は可能でしょうか? Sub サンプル() Debug.Print Application.Width End Sub はエラーになっちゃいました。
- ベストアンサー
- オフィス系ソフト
- VBA 「何時間何分何秒」にするにはどうすればいい
Declare Function GetTickCount Lib "KERNEL32" () As Long Sub Sample() Debug.Print GetTickCount & "ミリ秒" End Sub これで取得される値を 「何時間何分何秒」にするにはどうすればいいでしょうか? Format(GetTickCount, "hh:mm:ss") にするとなぜかオーバーフローしてしまいました。
- ベストアンサー
- オフィス系ソフト
- VBAコードでイミディエイトウィンドウを表示する方
VBAコードでイミディエイトウィンドウを表示する方法はありますか? 例えば、 Sub test() Debug.Print Now End Sub を実行したときに イミディエイトウィンドウが表示されていなければ結果がわかりませんよね。 Ctrl+Gでイミディエイトウィンドウを表示出来る事は知っていますが サブプロシージャーと実行とともに、 イミディエイトウィンドウをVBAで表示する方法を教えてください。 Sub test() Debug.Print Now イミディエイトウィンドウを表示 End Sub のようにしたいです。 ご回答よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- NowとNow()とどちらを使った方が良いですか?
どちらも結果は同じでした。 Sub test1() Debug.Print Now End Sub Sub test2() Debug.Print Now() End Sub TechNet
- ベストアンサー
- オフィス系ソフト
- LocationNameを取得するとアウトルックが
エクセルvba2010です。よろしくお願いします。 Sub Sample() Dim ie As Object For Each ie In CreateObject("Shell.Application").Windows() Debug.Print ie.LocationName Next End Sub このコードで、現在開いているURL名を取得すると、 アウトルックを立ち上げてると outlook:%26%2321463・・・ と言うのが取得されるのですが、これは何のパスでしょうか? メールは立ち上げていません。
- 締切済み
- Visual Basic
- ミリ秒を○時間○分○秒にしたい
http://www.excellenceweb.net/vba/api/what_windows_api.html のページを参考にPC起動時間を取得したいのですが サンプルは単位がミリ秒になっています。 -------------------------------------------------- Declare Function GetTickCount Lib "kernel32.dll" () As Long Sub TEST1() Dim Tickcount As Long 'GetTickCount関数から、起動からの時間が返される Tickcount = GetTickCount() MsgBox "PC起動から " & Tickcount & " ミリ秒経過しています" End Sub -------------------------------------------------- ○時間○分○秒にしたいのですが どうすればいいでしょうか? Formatを使うと思うのですが どういうコードを書けばいいのかわかりません。 ご教授よろしくお願いします。
- ベストアンサー
- Visual Basic
- computerNameを取得したい
UserNameではなく、computerNameを取得したい エクセルで複数人でファイルを開いてる場合、 コンピューター名を取得したいのですが Sub test1() Dim v As Variant v = ActiveWorkbook.UserStatus Debug.Print v(1, 1) End Sub これをやると、UserNameが取得されます。 UserStatusの中には、computerNameは格納されないのでしょうか? Sub test() Debug.Print Environ("computerName") End Sub で、自身のコンピューター名は取得できるのですが 複数ファイルを開いているときのみんなのコンピューター名を取得する方法を教えてください。
- 締切済み
- オフィス系ソフト
- 何が間違ってるのか教えていただけませんか?
VBAエクセルです。 *********************************************** Sub OSのDefaultPrinterを取得() Dim プリンタ As Object Set プリンタ = CreateObject("WScript.Network") Debug.Print プリンタ.SetDefaultPrinter End Sub *********************************************** を実行すると、 (Debug.Print プリンタ.SetDefaultPrinter)の部分で、 引数の数が一致していません。または不正なプロパティを指定しています。(Error 450) となってしまいます。 どう修正すれば、現在のデフォルトのプリンター名を取得できるのでしょうか? ちなみに Sub tset() Debug.Print ActivePrinter End Sub で取得出来る事は知っています。 ご回答よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- AddressとAddressLocal 違い
エクセルvbaなのですが Sub test01() Debug.Print Range("a1").Address Debug.Print Range("a1").AddressLocal End Sub この二つの違いは何ですか? どちらも$A$1が返るのですが。 アドレスを取得したい場合、どちらを使った方がよろしいでしょうか?
- ベストアンサー
- Visual Basic
- ●分●秒 時間 表示形式
時間を取得するコードを使っていますが Declare Function timeGetTime Lib "winmm.dll" () As Long Sub Sample() Dim nStart As Long Dim nEnd As Long nStart = timeGetTime() nEnd = timeGetTime Debug.Print (CDbl(nEnd) - CDbl(nStart)) / 100 & "秒" End Sub これだと結果が、 11607271.9221569秒 秒になってしまいました。 ●分●秒で取得したいのですが、 どのような書式にすればよいですか?
- ベストアンサー
- Visual Basic
お礼
どうもありがとうございました。