
VB2008でWIN32APIのGetSystemTimeを使用するコードを記述しましたが
SYSTEMTIME構造体に正しい値がセットされません。
ExcelのVBAにて同様のコードを記述し実行したところこちらは問題が
ないようです。
コードの記述に誤りがあるのか、それとも設定なのかいろいろ調べて
みましたが解決しませんでした。
どうか皆様のお力添えをお願いいたします。
■環境
Windows xp HOME SP3
VisualBasic Express Edition SP1
■VB 2008 コード
---------------------------------------------------
Public Structure SYSTEMTIME
Public wYear As Integer
Public wMonth As Integer
Public wDayOfWeek As Integer
Public wDay As Integer
Public wHour As Integer
Public wMinute As Integer
Public wSecond As Integer
Public wMilliseconds As Integer
End Structure
Public Declare Sub GetSystemTime Lib "kernel32" Alias "GetSystemTime" ( _
ByRef lpSystemTime As SYSTEMTIME)
Public Sub Wait()
Dim st As SYSTEMTIME
Call GetSystemTime(st)
Debug.Print (st.wYear & "/" & st.wMonth & "/" & st.wDay & " " & st.wHour & ":" & st.wMinute & ":" & st.wSecond & ":" & st.wMilliseconds)
End Sub
---------------------------------------------------
VB 2008 実行結果
657369/393218/35782700 0:0:0:0
■Excel2003 VBA コード
---------------------------------------------------
Public Declare Sub GetSystemTime Lib "kernel32" ( _
ByRef lpSystemTimeLib As SYSTEMTIME)
Public 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 Sub TES()
Dim st As SYSTEMTIME
Call GetSystemTime(st)
Debug.Print (st.wYear & "/" & st.wMonth & "/" & st.wDay & " " & st.wHour & ":" & st.wMinute & ":" & st.wSecond & ":" & st.wMilliseconds)
End Sub
---------------------------------------------------
Excel 2003 SP3 実行結果
2009/10/6 6:19:37:453
No.1ベストアンサー
- 回答日時:
下記でそれぞれのIntegerのサイズを確認してください。
その上で、適正な型で宣言しなおしてください。
VBA、VB6のデータ型のサイズ
http://www.geocities.jp/cbc_vbnet/kisuhen/hensuu …
.NETのデータ型のサイズ
http://homepage1.nifty.com/rucio/main/kiso/DataT …
cistronezk様
有り難うございます!解決いたしました。
検索で参考にしていた幾つかのサイトでもご指摘のように
Short型で宣言されていました…
SYSTEMTIMEはAPIビュワーを使用して貼り付けしていましたので、
盲目的に信用してしまっていました。これでは「いろいろ調べた」
等と言っている自分が情けないかぎりです。
もう一度、基礎からやり直す事にいたします。
この度は本当に有り難うございました!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
隣の枝がはみ出してきたら切ってもいい?最もやってはいけないことは?
「隣の木が越境してきて困るが、勝手に切ってはいけないと聞くし…」そう思っている方も多いだろう。実は、2023年4月1日に民法が改正され、この「越境枝」のルールが大きく変わった。 教えて!gooでも「境界から出て...
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JANコードとPOSコードは同じ?
-
MessageBoxで表示される文字列...
-
フィルターかけた後、重複を除...
-
JIPS-Eコードのコード表について
-
エクセルに見えない文字(JISX0...
-
VBA 別ブックから該当データを...
-
【VB6】実行ファイルとした後、...
-
Excel VBAでOpenTextのFieldInf...
-
アルファベットに付いて質問し...
-
特定行の背景色を変えたいのですが
-
access2003 クエリSQL文に...
-
外部参照してるキーを主キーに...
-
特定の文字列で列を区切るには?
-
差し込み後、元データを変更し...
-
knowledge on, about, of
-
WordpressのContact form 7でzi...
-
ある条件の最大値+1を初番する...
-
時給毎の勤務時間を求めるSQL
-
エクセルの関数について教えて...
-
カーソルを使って、最終行レコ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
1、Rstudioで回帰直線を求める...
-
access2021 VBA メソッドまたは...
-
1日に1人がこなせるプログラム...
-
JANコードとPOSコードは同じ?
-
エクセルに見えない文字(JISX0...
-
変数名「cur」について
-
access2003 クエリSQL文に...
-
Excelシート上で右クリックがで...
-
【VB6】実行ファイルとした後、...
-
COBOLの文法
-
Exel VBA 別ブックから該当デ...
-
JavaScriptの定数名が取り消し...
-
C# コードビハインドについて
-
JIPS-Eコードのコード表について
-
Nullの使い方が不正です。
-
PreviewKeyDownイベントが2回...
-
VBAでファイルオープン後にコー...
-
ユーザーフォームに2つのコン...
-
ACCESSユニオンクエリでORDER B...
おすすめ情報