
このようなコードを使いたいのですが・・・
Set objShell = CreateObject("Shell.Application")
For Each objWindow In objShell.Windows
If TypeName(objWindow.Document) <> "HTMLDocument" Then
Continue
End If
これに対応したやり方というのを下記サイトで見つけました。
http://mga.cocolog-nifty.com/pc_info/2006/11/vbs …
clip
ただどういうう風に書き直したらいいか分からなく困っています。
どなたか解説いただけないでしょうか?
No.2ベストアンサー
- 回答日時:
わざわざ、VBにはないContinueを疑似再現してコードを読みにくくしなくても、下のように書いたら良いと思うんですが。
Set objShell = CreateObject("Shell.Application")
For Each objWindow In objShell.Windows
If TypeName(objWindow.Document) = "HTMLDocument" Then
やりたい処理
End If
Next
もしくは
For Each objWindow In objShell.Windows
Select Case TypeName(objWindow.Document)
Case "HTMLDocument"
やりたい処理その1
Case "HogeHoge"
やりたい処理その2
Case "FugaFuga"
やりたい処理その3
End Select
Next
個人的には、C言語などでもContinueは使わない派なので(Breakは多用します)。
行が長く、あるいはネストが深くなるのがイヤなら、サブルーチンとして外出しして、Exit Subですかね。
リンク先のコードは、頭の体操としては面白いし、よく考えられている。
実際に使用するなら、Goto [ラベル]を使った上で目立つように『Continueの代わり』とコメントを書いておく方が、まだ読みやすい。
No.1
- 回答日時:
実行確認していないので間違ってたらすみません。
Set objShell = CreateObject("Shell.Application")
For Each objWindow In objShell.Windows
Do
If TypeName(objWindow.Document) <> "HTMLDocument" Then
Exit Do 'Continue
End If
~~何かの処理~~
Loop Until True
Next
たぶんこうゆうことじゃないかと。
Exit Do(もしくは For)をContinueの代わりにしたいけど、
Exit Do(もしくは For)に対応するDo Loop(For文)が何回も繰り返される必要はないので、
1回実行するだけにしているのがミソですね。
紹介サイト先では、「Until 1」になっているのですが、
VBScriptでは1 = Trueですが、VB.Netでは-1 = Trueだったりするので、
Trueと書いといた方がいいかもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
セックスレスの既婚女性は自慰...
-
メルカリのメルカードで買い物...
-
VBAでループ内で使う変数名を可...
-
銀行の窓口処理の件で知ってる...
-
findは動くがfindnextがマクロ...
-
RPGプログラムの*HIVALについて
-
リストビューで最下行から最上...
-
エクセル95のマクロで自動的に...
-
C#です。リストボックスの項目...
-
再帰処理を途中で抜けるには
-
尻毛って処理する?。
-
FortranのGO TO文について。
-
月度は何て読みますか?
-
CStringの中から数字だけの場合...
-
Access チェックボックスでチェ...
-
お家デートをしててハグを長い...
-
タッチパッドはチャタリングは...
-
VBAでCOPYを繰り返すと、処理が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
銀行の窓口処理の件で知ってる...
-
VBAでCOPYを繰り返すと、処理が...
-
VBAでループ内で使う変数名を可...
-
【Excel】特定の文字を含むセル...
-
VBの質問#if 0 then ってどう...
-
月度は何て読みますか?
-
EXCEL VBA マクロ 実行する度に...
-
UMLでの例外処理
-
switch の範囲指定
-
メルカリのメルカードで買い物...
-
DoEventsがやはり分からない
-
お家デートをしててハグを長い...
-
セックスレスの既婚女性は自慰...
-
リョウ・・・量?料?
-
findは動くがfindnextがマクロ...
-
取り消し線が入った文字を削除...
-
生活保護受給者は性欲をどんな...
-
Loadイベント中にほかのイベン...
おすすめ情報