人に聞けない痔の悩み、これでスッキリ >>

VBScriptであるボタンをクリックして表示された、MsgBoxの表示されたYes Noボックスを自動的にクリックしたいと考えています。

下記のように、VBScriptでボタンやコンボボックスを選んだりクリックした後にMsgBoxで”はい”、”いいえ”が表示されて、その表示されたMsgBoxで”はい”をクリックしたいのですが、コマンドが分からず困っています。
IEオブジェクト.Document.フォーム名.コンボボックス名.selectedIndex = 0からの番号

A 回答 (1件)

MsgBoxの場所が分かっているなら、そのステートメントを削除して、


Yesが返されたようにすれば良いのでは?
Res = MsgBox("~", vbYesNo) → Res = vbYes

どうしてもキー入力にしたい場合はWSHのSendKeyメソッドを使います。
http://msdn.microsoft.com/ja-jp/library/cc364423 …

でも、あまり勧められない方法です。キーはその時、フォーカスを
持っているウィンドウに送られますので、確実性に疑問が残ります。
    • good
    • 0
この回答へのお礼

ありがとうございます。
サーバ側は私が管理しているわけではないので、前者の方法は無理なのですがWSHはできそうなのでやってみます。

ご協力感謝します。

お礼日時:2008/11/17 00:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QメッセージボックスのOKボタンをVBAでクリックさせたい

EXCELの1つのブックに2つのマクロを組んでいます。

普段は1つ目のマクロを実行したあと、処理結果を確認してから
2つ目のマクロを動かしています。

※1つ目のマクロ終了時に、完了のメッセージボックスが出ます。



この2つのマクロを、自動で処理するためのマクロを
作ろうとしていて、

1.1つ目のマクロを実行
2.処理完了のメッセージボックスのOKをクリック
3.2つ目のマクロを実行

という流れで処理しようと思っています。


今、メッセージボックスのOKボタンをVBAでクリックする方法がわからなくて
調べているのですが、お分かりになる方いらっしゃいましたら
教えていただけませんでしょうか。



例えば、1つフラグを作って、そのフラグが立っている時は
メッセージボックスを出さないような制御は出来るのですが、
今回は、メッセージボックスをクリックする方法が
知りたいと思っています。


よろしくお願いいたします。

Aベストアンサー

無理です
MsgBox自体がモーダルで表示されるので MsgBoxからExcelへ処理が戻ってこない限りExcelからの制御が不能になります

フラグを作って MsgBoxの表示、非表示を切り替えるほうが現実的です

QvbscriptでIE自動入力(途中で出てくるポップアップをクリックしたい)

IEで自動化入力をvbscriptで作っております。
次々に問題というか知識の無さでつまづいています。お知恵を貸してください。

IE自動入力をしていくと、途中のクリックで次画面に
進むところでポップアップが浮き上がりスクリプトが止まってしまいます。

ポップアップの内容は、
タイトルが「セキュリティの警告」
内容が「このサイトと取り交わす情報は、ほかの人から読み取られたり変更されることは
ありません。しかし、このサイトのセキュリティ証明書には問題があります。、、、」
と出まして、
「はい(Y)」「いいえ(N)」「証明書の表示(V)」と選択肢があります。
手動で「はい」をクリックするか、Yキーを押すとまたスクリプトが進み始めます。

これを自動でクリックするためにはどうしたらいいんでしょうか。
いろいろ調べてこうして見ました。

Set wshshell=wscirpt.createobject("wscript.shell")
wshshell.AppActivate("セキュリティの警告")
wshshell.sendkeys "y"

これでは、全く動きません。おそらくこのウィンドウにコントロールが行ってないと思います。
他の手立てを教えてください。よろしくお願いします。

IEで自動化入力をvbscriptで作っております。
次々に問題というか知識の無さでつまづいています。お知恵を貸してください。

IE自動入力をしていくと、途中のクリックで次画面に
進むところでポップアップが浮き上がりスクリプトが止まってしまいます。

ポップアップの内容は、
タイトルが「セキュリティの警告」
内容が「このサイトと取り交わす情報は、ほかの人から読み取られたり変更されることは
ありません。しかし、このサイトのセキュリティ証明書には問題があります。、、、」
と出まして、
...続きを読む

Aベストアンサー

ポップアップが表示されるより早く、yが送られてしまってるんでしょう。
ポップアップが表示されるのを待たないとね。

Set wshshell=wscirpt.createobject("wscript.shell")

'セキュリティの警告が表示されるまで待つ
Do Until wshshell.AppActivate("セキュリティの警告")
WScript.Sleep 100
Loop

'セキュリティの警告が消えるまでyを送る
Do While wshshell.AppActivate("セキュリティの警告")
wshshell.sendkeys "y"
WScript.Sleep 100
Loop

永久ループに陥らないように、適度にループ抜けを入れておけばいいでしょう。

QVBSで応答不要のメッセージボックスを表示したい

Kotori_Dと申します。

今回質問したいのは、VBScriptを使い、ある処理を行っている最中にメッセージボックスを表示させ、
操作をしないように呼びかけ、なおかつメッセージ表示中も処理が実行され続けるようにしたいのですが、その方法で困っています。

MsgBox("処理中です。操作しないでください。")
この場合、メッセージが出て、OKを押すまで保存は実行されません。

CreateObject("WScript.Shell").Popup "処理中です。操作しないでください。", 0, " 警告"
こちらでも、OKを押すまで処理は中断されます。
また、表示時間を指定すると、途中で消えてしまうので、役不足です。

私としては、メッセージは出たままで、処理を継続してほしいのですが、
何かよい方法はないでしょうか?

よろしくお願いします。

Aベストアンサー

http://blog.s21g.com/articles/1202

非同期でコマンドを発行すればいいと思います。
コマンド内容は、メッセージを表示するだけの実行ファイルを
用意。

QVBScriptから指定URLを開く方法

 ある特定のWebページをVBScriptから開きたいのですが方法が探せませんでした。VBScriptからWebページを開く方法、もしくはhttp putを行う方法を教えてください。よろしくお願いします。

Aベストアンサー

こんなので、どうでしょうか?

Set objIE = Wscript.CreateObject("InternetExplorer.Application")
objIE.Navigate2 "http://www.goo.ne.jp/"
objIE.Visible = TRUE
Set objIE =Nothing

QEXCEL VBA で現在開いているブックのファイル名を取得する方法

EXCEL2003 VBAで業務を簡素化するために、現在開いているブックのファイル名を取得する方法が分かりません。
作業手順をマクロを使って処理していますが、オリジナルのワークブックをファイル名を変えて保存し、以後、このワークブックを読み込んで使用しています。
このときのVBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり、以後の業務に使用できません。
常にファイル名を取得出来るVBAをどなたか、教えて下さい。

Aベストアンサー

>現在開いているブックのファイル名
 ちょっと曖昧な表現かなぁという気もいたしますが、VBAが書いてあるブックのブック名は
ThisWorkbook.Name
で、現在 "アクティブにして" 操作対象になっているブックの名前は
ActiveWorkbook.Name
ですね。

 しかし、
>VBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり
というような文脈からすると、
ThisWorkbook.Name
の方ですかね。

QVBA(エクセル)で自動的にボタンをクリックさせるには

いつもお世話になっております。
下記のことがしたいのですがどうやって良いのかがわからなくって困っております。

やりたいこと。
AブックとBブックが有るとします。(双方ともエクセルファイル)
エクセルのVBAで、Aブックのシート上のコマンドボタンを押すと
Bブックのシート上のコマンドボタンをクリックするという動きを
VBAでさせたいのですがどうしてもクリックさせることができません。

試したこと。
初めは、AのボタンをクリックするとBのボタンをセレクトして
SendKeysでENTERを送ってみたりしたのですがうまくいきませんでした。

何かやり方が有りましたら、お教えいただけませんでしょう。
宜しくお願いいたします。

Aベストアンサー

Privateスコープを変更しない場合、Application.Runメソッドを使う手もあります。
Application.Run "'C:\Book1.xls'!Sheet1.CommandButton1_Click"
※『Sheet1』の部分はシートモジュールのオブジェクト名になります。

ですが、Bブックのボタン_Clickの中味を標準モジュールに置いて、
AブックのボタンとBブックのボタンと、両方から実行できるようにしておくほうが良いような気もしますね。

(コマンドボタンが[フォーム]ボタンの事だったら、同じマクロを[マクロの登録]するだけの話?)

Qvbsでからプログラムを、オプションを指定して起動したい。

vbsから、プログラムを実行する歳に、オプションを指定する方法を教えてください。

Firefoxを起動する際に以下のオプションをつけて実行したいのですが
上手くいきません。
(1)-new-tabオプション
(2)URL

===================================

Option Explicit
Dim objWshShell
Set objWshShell = WScript.CreateObject("WScript.Shell")
objWshShell.Run """c:\Program Files\Mozilla Firefox\firefox.exe"""
Set objWshShell = Nothing


Firefoxを起動するだけであれば上の記述でいけますが
(1)と(2)は
objWshShell.Run """c:\Program Files\Mozilla Firefox\firefox.exe"""
の後ろにどのように記述すればいいのでしょうか。

vbsから、プログラムを実行する歳に、オプションを指定する方法を教えてください。

Firefoxを起動する際に以下のオプションをつけて実行したいのですが
上手くいきません。
(1)-new-tabオプション
(2)URL

===================================

Option Explicit
Dim objWshShell
Set objWshShell = WScript.CreateObject("WScript.Shell")
objWshShell.Run """c:\Program Files\Mozilla Firefox\firefox.exe"""
Set objWshShell = Nothing


Firefoxを起動...続きを読む

Aベストアンサー

オプションやURLをすべてRunの第1引数で指定します。

objWshShell.Run """c:\Program Files\Mozilla Firefox\firefox.exe"" -new-tab http://www.google.co.jp"

QWEBページからのメッセージをVBAで

いつもお世話になっております。
エクセルVBAでIE制御についてです。
環境はWIN7、IE 9or11とエクセル2010です。

あるページのリンクをクリックすると、
WEBからのメッセージというダイアログボックスが出てきて、
続行しますか? はい いいえ を聞かれます。

その「はい」をVBAで押したいのですが、
sendkeysメソッドで押そうとしてもうまくいきません。

以下に記載したサイトのOKボタンを押すと出てくるものです。
http://kamicha1.web.fc2.com/Excel/Test20090726.html


以下が書いたコードです。


Declare Sub Sleep Lib "KERNEL32" (ByVal dwMilliseconds As Long)


Sub test()

Dim ie As Object

Set ie = CreateObject("InternetExplorer.Application")

ie.Visible = True
ie.navigate "http://kamicha1.web.fc2.com/Excel/Test20090726.html"
      
Do While ie.Busy Or ie.readyState < 4
DoEvents
Loop

ie.document.getElementsByClassName("bt2")(0).Click '-ここで止まる

Sleep 2000

SendKeys "{Enter}"

End Sub

ステップ実行していくと、ここで止まると書いた所で、
IE上にダイアログは表示されるのですが、
それ以上ステップ実行ができなくなってしまいます。

ダイアログを自分でOKかキャンセルで消すと続きが動くようになります。
その間はVBEはビジー状態となり操作できません。

そのためそれ以降のsendkeysメソッドに
たどり着けない状況かと思われます。

いろいろ調べたところIE8以降はダイアログボックスは
IEから出ているのではなくOS?から出ているとの事でした。

上記のサイトはHTML本体にjavaスクリプトが記載されており、
それをVBAから操作すればどうにかOKボタンが押せるらしいのですが、
自分が操作したいページにはそれらしき記載がありませんでした。

対象のアンカータグは
<a herl=URL 中略 data-comfirm=続行しますか? >
のような感じで記載がありました。

完全に煮詰まっております。
自動でOKをクリックするかEnterキーでOKを押すでも構いません。
どうかご教授お願いいたします。

いつもお世話になっております。
エクセルVBAでIE制御についてです。
環境はWIN7、IE 9or11とエクセル2010です。

あるページのリンクをクリックすると、
WEBからのメッセージというダイアログボックスが出てきて、
続行しますか? はい いいえ を聞かれます。

その「はい」をVBAで押したいのですが、
sendkeysメソッドで押そうとしてもうまくいきません。

以下に記載したサイトのOKボタンを押すと出てくるものです。
http://kamicha1.web.fc2.com/Excel/Test20090726.html


以下が書いたコードです。


Dec...続きを読む

Aベストアンサー

ご参考
https://gist.github.com/kumatti1/4028479

QvbsからのExcelマクロ呼び出しの際に保存ダイアログが表示されてしまう

vbsからExcelのマクロを呼び出しExcelを閉じる処理を以下のように実施しています。
その際に保存ダイアログが表示されてしまうため非表示としようとコメントアウトされている
ように変更しました。
そしたらダイアログは表示されなくなりましたがstrTextの値が返却されなくなってしまいました。
原因がよくわからないのですがわかりましたらご教授ください。

Set oApp = CreateObject("Excel.Application")
oApp.Workbooks.Open WScript.Arguments(0)

strText = oApp.Run("CheckText")

oApp.DisplayAlerts = False
'oApp.Workbooks.Close saveChanges:=False
oApp.Workbooks.Close

Set oApp = Nothing
WScript.echo(strText)

Aベストアンサー

こんばんは。

単体でファイルを開けたら、単体でファイルを閉じればいいのでは?
その時に、ファイル変更のSaved =False は、初めて通用するはずです。
後は、CheckText の内容ですが、CheckTextの戻り値が、
strText に入っているかの確認はしていません。

できれば、On Error Resume Next を入れておいたほうが無難だと
は思いますが……。

一例:
'-------------------------------------
Set oApp = CreateObject("Excel.Application")
Set xlWb =oApp.Workbooks.Open(WScript.Arguments(0))
strText = oApp.Run("CheckText")
xlWb.Close False
Set oApp = Nothing
WScript.echo(strText)
'-------------------------------------

こんばんは。

単体でファイルを開けたら、単体でファイルを閉じればいいのでは?
その時に、ファイル変更のSaved =False は、初めて通用するはずです。
後は、CheckText の内容ですが、CheckTextの戻り値が、
strText に入っているかの確認はしていません。

できれば、On Error Resume Next を入れておいたほうが無難だと
は思いますが……。

一例:
'-------------------------------------
Set oApp = CreateObject("Excel.Application")
Set xlWb =oApp.Workbooks.Open(WScript.Arguments(0))
s...続きを読む

QExcel VBA 自動的に閉じるMsgBox

連続で、Popupを使う際に、途中で、他の処理を実行すると、Popupが自動で消えなくなってしまいます。
下のサンプルにて、GetOpenFilename をコメントアウトすれば、Popupは、正常に機能(指定時間後に自動で消える)しますが、GetOpenFilename を入れると、メッセージは、自動で消えなくなってしまいます。

Sub mySample()
Dim WSH As Object
Dim FileName As String

Set WSH = CreateObject("WScript.Shell")
WSH.Popup "1秒後、自動的に閉じる", 1, "Title", vbInformation
WSH.Popup "1秒後、自", 1, "Title", vbInformation
FileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls?", , "Title")
WSH.Popup "1秒後、自動", 1, "Title", vbInformation
WSH.Popup "1秒後、自動的", 1, "Title", vbInformation
Set WSH = Nothing
End Sub

途中に処理を入れても、メッセージが自動で消えるようにしたいのです。
サジェスチョンがあれば、よろしくお願いします。

尚、Windows8.1,Excel2010です。

下記を参考にしてはいます。
Office TANAKA(http://officetanaka.net/excel/vba/tips/tips21.htm)

連続で、Popupを使う際に、途中で、他の処理を実行すると、Popupが自動で消えなくなってしまいます。
下のサンプルにて、GetOpenFilename をコメントアウトすれば、Popupは、正常に機能(指定時間後に自動で消える)しますが、GetOpenFilename を入れると、メッセージは、自動で消えなくなってしまいます。

Sub mySample()
Dim WSH As Object
Dim FileName As String

Set WSH = CreateObject("WScript.Shell")
WSH.Popup "1秒後、自動的に閉じる", 1, "Title", vbInformation
...続きを読む

Aベストアンサー

こちらの
https://oshiete.goo.ne.jp/qa/5393997.html
#6さんのMessageBoxTimeoutA を使う方法、
#7さんのUserForm を使う方法がよろしいかと。

MessageBoxTimeoutA の方がお手軽かな。
※ WScriptのpopup はあてになりません。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング