🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

Q&A

解決済

2回答

2687閲覧

VBSでアクティブウィンドウに日付を入力したい

kaz_s13

総合スコア6

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

0グッド

0クリップ

投稿2019/10/07 10:08

前提・実現したいこと

現在アクティブになってるウィンドウに現在の日付を入力したいです。
形式としては今日が10/7なら「K1007」という形式です。

発生している問題・エラーメッセージ

クリップボードに日付を格納する所まではいけたのですが、アクティブウィンドウにペーストするというのが上手くいきません。
下記のコードだと恐らくVBSウィンドウがアクティブになっている間にCtrl+Vが送られるので、貼り付けが出来ません。
しかしEnterは動作しています。

該当のソースコード

Dim strFormattedDate
Dim WshShell

Set WshShell = WScript.CreateObject("WScript.Shell")

strFormattedDate = Now()
strFormattedDate = Left(strFormattedDate, 10)
strFormattedDate = Right(strFormattedDate, 5)
strFormattedDate = Replace(strFormattedDate, "/", "")
With CreateObject("Wscript.Shell").Exec("clip")
.StdIn.Write "K" & strFormattedDate
End With

WshShell.SendKeys("^V")
WshShell.SendKeys("{ENTER}")
Set WshShell = Nothing

試したこと

変数にアクティブウィンドウを保持できないか試しましたが上手くいきません。

補足情報(FW/ツールのバージョンなど)

Win10です

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

試してみました。
ペーストする直前にSleepを入れて、その間にメモ帳をアクティブに。
そしたら問題なくペーストできました。
Enterは反応しているということなので、そのウィンドウがCtrl+Vを受け付けていないだけのような気がします。
1文字ずつSendKeysしたらどうでしょうか?

VBS

1Dim strFormattedDate 2Dim WshShell 3 4Set WshShell = WScript.CreateObject("WScript.Shell") 5 6strFormattedDate = Now() 7strFormattedDate = Left(strFormattedDate, 10) 8strFormattedDate = Right(strFormattedDate, 5) 9strFormattedDate = Replace(strFormattedDate, "/", "") 10strFormattedDate = "K" & strFormattedDate 11 12For i = 1 To Len(strFormattedDate) 13 WshShell.SendKeys(Mid(strFormattedDate, i, 1)) 14Next 15WshShell.SendKeys("{ENTER}") 16 17Set WshShell = Nothing 18

投稿2019/10/08 00:59

ttyp03

総合スコア17000

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kaz_s13

2019/10/08 07:35

1文字ずつSendkeysする事で、望んでいた動作をするようになりました。 ありがとうございました。
guest

0

AppActivateすればいいと思います。

投稿2019/10/07 12:56

otn

総合スコア85886

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問