アレルギー対策、自宅でできる効果的な方法とは?

VBSでお願いします><

(VBSを使用せずに)既にひらいているIEがあり、タブで複数表示しています。
その中から指定URLのものをアクティブにし、パスワードを送り込みたいです。

CreateObject("Shell.Application")を利用し、ループを組んでWindows(i).document.URLより
URLを取得するまではできたのですが、アクティブからパスワード送り込みがうまくいきません。
パスワードを送り込めるURLはnameとidを持っています。
皆様のお力をお貸しください。

※単純にSendKeysを使うとアクティブにしていないためか文字入力として受け取られてしまいます

質問者からの補足コメント

  • ※以下で解決しました!
    Dim objIE
    set Shell=Wscript.CreateObject("Shell.Application")
    for each tmp in Shell.Windows
    if TypeName(tmp.document)="HTMLDocument" then
    if tmp.LocationURL="操作したいURL" then
    set objIE=tmp
    end if
    end if
    Next

    if objIE="" then
    WScript.Echo("目的のページが表示されていません")
    WScript.Quit
    end if

    objIE.document.getElementById("ID名").value="パスワード"

      補足日時:2017/06/18 14:26

A 回答 (1件)

idで指定してvalueを書き換えてはいけないのでしょうか?

    • good
    • 0
この回答へのお礼

やり方が悪いのかと思いますが、Shell.Applicationだと.Document.getElementsByIdやNameが使用できずエラーが出ます。

お礼日時:2017/06/18 11:52

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

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

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

Qボタンクリック時の動作について質問があります。 ボタンが押された時にwebブラウザを別で表示する場合

ボタンクリック時の動作について質問があります。



ボタンが押された時にwebブラウザを別で表示する場合のプログラムはどののようになりますか?

Aベストアンサー

どの環境のプログラムの ボタンなのか??

概略は
Object を作成して
Set IE = CreateObject("internetExplorer.application")

url = "http://****"

With IE
' With IE
.navigate url
.Visible = True
な感じ・・・

Q【VBA】IF文 複数(ネスト)の時の処理について

こんにちは。
if文についておしえてください。
以下のようなマクロがあるとします。

変数 tensuuに-1をいれて実行すると①→②のように動作し「入力エラー」と表示されます。
tensuuに120を入れて実行すると①´→②´の順に動作し「入力エラー1」と表示されます。

どして、-1のときは入力エラー1にはいかず入力エラーにいくのでしょうか?
120のときは入力エラーにはいかず入力エラー1にいくのでしょうか?

動きがよくわかりません。
IF文とELSEはどういう紐づけがされているのでしょうか?

よろしくおねがいいたします。
   
Sub t()
tensuu = -1
If tensuu >= 0 Then '①
If tensuu <= 100 Then '①´
If tensuu >= 80 Then
MsgBox "合格"
Else
MsgBox "不合格"
End If
Else
MsgBox "入力エラー1" '②´
End If
Else
MsgBox "入力エラー" '②
End If
End Sub

こんにちは。
if文についておしえてください。
以下のようなマクロがあるとします。

変数 tensuuに-1をいれて実行すると①→②のように動作し「入力エラー」と表示されます。
tensuuに120を入れて実行すると①´→②´の順に動作し「入力エラー1」と表示されます。

どして、-1のときは入力エラー1にはいかず入力エラーにいくのでしょうか?
120のときは入力エラーにはいかず入力エラー1にいくのでしょうか?

動きがよくわかりません。
IF文とELSEはどういう紐づけがされているのでしょうか?

よろし...続きを読む

Aベストアンサー

If 〜 Then 〜 Else 〜 End If
で1セットです。

ネスト(入れ子)になったIF文というのは、 Then 〜 とか Else 〜 の〜の部分にIf文がくるものです。
ですから、外のIfを越えてしまうことはありません。
よって、一番内側から見ていけば、構造がはっきりします。


一番内側から見ます。

If tensuu >= 80 Then
MsgBox "合格"
Else
MsgBox "不合格"
End If

が1セットです。
これを 「文1」とすると元のプログラムは

If tensuu >= 0 Then '①
If tensuu <= 100 Then '①´
「文1」
Else
MsgBox "入力エラー1" '②´
End If
Else
MsgBox "入力エラー" '②
End If

となります。この状態で「一番内側」を見ると

If tensuu <= 100 Then '①´
「文1」
Else
MsgBox "入力エラー1" '②´
End If
です。これを「文2」とすると

If tensuu >= 0 Then '①
「文2」
Else
MsgBox "入力エラー" '②
End If


余談ですが
この例の場合、外側2つは、判定内容と処理とが離れてしまい、見辛いのは確かです。
if 条件 Then A Else B は if not条件 Then B Else A と同じ、ということから、Thenでの処理とElseでの処理を入れかえれば、
条件の直ぐ下の処理が来るので、見易さが格段によくなります。

If tensuu < 0 Then '① ' tensuu<0 は not (tensuu>=0)と同じ
MsgBox "入力エラー" '②
ElseIf tensuu > 100 Then '①´
MsgBox "入力エラー1" '②´
ElseIf tensuu >= 80 Then
MsgBox "合格"
Else
MsgBox "不合格"
End If ' ElseIfで継いでいるので、ネストにはなっていない

If 〜 Then 〜 Else 〜 End If
で1セットです。

ネスト(入れ子)になったIF文というのは、 Then 〜 とか Else 〜 の〜の部分にIf文がくるものです。
ですから、外のIfを越えてしまうことはありません。
よって、一番内側から見ていけば、構造がはっきりします。


一番内側から見ます。

If tensuu >= 80 Then
MsgBox "合格"
Else
MsgBox "不合格"
End If

が1セットです。
これを 「文1」とすると元のプログラムは

If tensuu >= 0 Then '①
If tensuu <= 100 Then '①´
「文1」
Else
MsgBox "入力エラー1" '②´
...続きを読む

Qコピー貼り付け際の最終行取得について

記憶マクロしかできないのでお恥ずかしいのですが
式をコピーして貼り付ける際の最終行の取得の仕方について教えてください。

B2にVLOOKの式を入れて、この表ならB2:K7
に式を貼り付けたいです。

初めは、品番をB2:K7に全て貼り付けて、その上に式を重ねてから
Range(Selection, Selection.End(xlDown)).Select
にしていましたがもし品番が1つしかなかった場合は最終行が取得できずうまく動きませんでした。

 
Range("B2").Select
Selection.Copy
Range("B2:K2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.Copy
Range("B2:K7").Select
ActiveSheet.Paste
Application.CutCopyMode = False


どこかにRowをくっつけたらいいのでしょうか?
使い方もわからないので、どのようにしたらいいか教えて頂けると助かります。

記憶マクロしかできないのでお恥ずかしいのですが
式をコピーして貼り付ける際の最終行の取得の仕方について教えてください。

B2にVLOOKの式を入れて、この表ならB2:K7
に式を貼り付けたいです。

初めは、品番をB2:K7に全て貼り付けて、その上に式を重ねてから
Range(Selection, Selection.End(xlDown)).Select
にしていましたがもし品番が1つしかなかった場合は最終行が取得できずうまく動きませんでした。

 
Range("B2").Select
Selection.Copy
Range("B2:K2").Select
Acti...続きを読む

Aベストアンサー

こんにちは!

B2セルには数式が入っているのですよね?
(絶対参照にされていて、B2セルの数式をフィル&コピーできる状態になっている!)

というコトであれば

Sub Sample1()
Dim lastRow As Long
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
Range(Cells(2, "B"), Cells(lastRow, "K")).Formula = Range("B2").Formula
End Sub

程度で大丈夫だと思います。m(_ _)m

QVBAでIE操作で IEが 固まった時

今まで、何でもなかったのですが、fc2ブログの PRの枠内の内容が変わったせいか、
ページがハングします。
で、
.Busy = True  <> "complete"
この部分で、プログラムが止まります。
時間で このルーチンを逃げたいのですが、一番簡単な方法は無いでしょうか?できれば 2分くらいで・・・・

で、
Do While .Busy = True
DoEvents
For i = 1 To 40
Call Sleep(50)
DoEvents
Debug.Print .Busy
   If i > 40 Then
   Exit Sub
  End If
Next
Loop
これでテストしたんですが
.Busy が False でも DO-LOOP を ぬけてくれないのです。
どこで 間違ったでしょうか

Set netobjIE = CreateObject("internetExplorer.application")
url = "http://admin.blog.fc2.com/control.php?mode=editor&process=new"
With netobjIE
.navigate url
.Visible = True
Do While .Busy = True
DoEvents
Loop

Do While .document.readyState <> "complete"
DoEvents
Loop

Dim in_str As String
Dim doc As HTMLDocument
Set doc = netobjIE.document
Dim sel As IHTMLInputElement
in_str = "ログイン FC2 - 無料ホームページ"
'Debug.Print InStr(IE.document.Title, in_str)
If InStr(netobjIE.document.Title, in_str) > 0 Then 'ログインページなら

今まで、何でもなかったのですが、fc2ブログの PRの枠内の内容が変わったせいか、
ページがハングします。
で、
.Busy = True  <> "complete"
この部分で、プログラムが止まります。
時間で このルーチンを逃げたいのですが、一番簡単な方法は無いでしょうか?できれば 2分くらいで・・・・

で、
Do While .Busy = True
DoEvents
For i = 1 To 40
Call Sleep(50)
DoEvents
Debug.Print .Busy
   If i > 40 Then
  ...続きを読む

Aベストアンサー

#3の回答者です。

>FC2のPRフレームが、特定のスポンサーの時、HPを読み込め無くてハング状態になるようです。

それは気が付かなかったですね。
最近、また、AdBlock Plusを付けるようになったので、まったく気にならないのです。AdBlock自体が問題を発生させるのは知っていますが、やむを得ないのです。解決策とは言えませんが、一つの方法であることは間違いないと思います。

IEのみでも、同じ効力を発生させることができるのですが、一旦、それをすると、戻せないのです。快適とは言っても見れないものもあります。それに懲りて、AdBlock を利用しているのですが、もうちょっと気の利いたのがあればとは思っています。

おっしゃっていた状況は、想像はつくのですが、ExcelのVBAは、そういう点で弱いです。たぶん、JavaScript と Active X コントロールをVBAの稼働している限りは、有効・無効が可能だと思います。

http://www.ken3.org/vba/backno/vba117.html

objIE.Silent = True
このコマンドが利いてくれれば面白いのですが。

三流君の...
》セキュリティの設定でJavaScriptなどをOFFにしてから巡回作業。
》そんな簡単なプロパティが無い。
》※あったら、マズイんだけど。。。

これは、やる気次第ですね。たぶんですが。

-------------------
なお、#3のコードのIEの宣言の
Dim NetObjeIE As Object
  ↓
Dim NetObjIE As Object
の間違いでした。

#3の回答者です。

>FC2のPRフレームが、特定のスポンサーの時、HPを読み込め無くてハング状態になるようです。

それは気が付かなかったですね。
最近、また、AdBlock Plusを付けるようになったので、まったく気にならないのです。AdBlock自体が問題を発生させるのは知っていますが、やむを得ないのです。解決策とは言えませんが、一つの方法であることは間違いないと思います。

IEのみでも、同じ効力を発生させることができるのですが、一旦、それをすると、戻せないのです。快適とは言っても見れないも...続きを読む

Qsleep()関数の質問です・

毎年初心者で、77歳になりました。よろしくお願いします。
visual basic studio express 2013 で勉強しています。

Imports System.Threading.Thread
Public Class Form1

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Sleep(1000)
Application.DoEvents()
TextBox1.Text = "kingdom" & vbCrLf
Sleep(5000)
Application.DoEvents()
TextBox1.Text &= "koseki tosihiro"
End Sub
End Class

このように一つの関数(なんと言えばいいのですか?)
の中に 二つの slleep(1000),sleep(5000) を使う事はできないのですか?かなり時間がたって
表示されます。

毎年初心者で、77歳になりました。よろしくお願いします。
visual basic studio express 2013 で勉強しています。

Imports System.Threading.Thread
Public Class Form1

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Sleep(1000)
Application.DoEvents()
TextBox1.Text = "kingdom" & vbCrLf
Sleep(5000)
Application.DoEvents()
TextBox1.Text &= "koseki tosihiro"
End Sub
End Class

こ...続きを読む

Aベストアンサー

>二つの slleep(1000),sleep(5000) を使う事はできないのですか?
使えます。

Sleep(1000)
TextBox1.Text = "kingdom" & vbCrLf
Application.DoEvents()
Sleep(5000)
TextBox1.Text &= "koseki tosihiro"
Application.DoEvents()

のようにしてください。
テキストボックスに文字をセットした後で、
Application.DoEvents()
を呼び出すと、直ちに表示が可能になります。

Q【VBA】 for next 繰り返し処理の入れ子の処理速度について

こんにちわ
マクロを作成しております。
入れ子した繰り返し処理に躓いております、
もしよろしければ高速化のアドバイスをいただければと思います。


B2から下方向に値をいれております。
C1から横方向に同じ値をいれております。
B1-C1,B1-D1,B1-E1・・・最終まで
、というようにリーグ戦の総当たり結果表のような
結果を出力しようとしています。
値は数値で差分を整数で出すだけで、
重複した結果は不要ですので階段状に出力させています。

B列70行程で処理に40秒程かかってしまう状態です。
何か余計な処理や修正したほうがよさそうな箇所ははありますでしょうか?

excel2013
win8 メモリ4G

_______________
Sub test3()

Dim sh As Worksheet
Dim m As Long, i As Long, j As Long

Application.ScreenUpdating = False '非表示

Set sh = Worksheets("test")

m = sh.Cells(Rows.Count, "B").End(xlUp).Row

For i = 1 To m - 1
For j = i To m - 1

sh.Cells(j + 1, i + 2) = _
Application.WorksheetFunction.RoundDown( _
Abs(sh.Cells(1, 2).Offset(i, 0).Value - sh.Cells(1, 2).Offset(0, j).Value), 0)
      ’小数点切り捨てなど入れてます。
      ’単純にi+jにしても処理時間は変わりませんでした。
Next j
Next i


End Sub
_______________

以上です、よろしくお願いします。

こんにちわ
マクロを作成しております。
入れ子した繰り返し処理に躓いております、
もしよろしければ高速化のアドバイスをいただければと思います。


B2から下方向に値をいれております。
C1から横方向に同じ値をいれております。
B1-C1,B1-D1,B1-E1・・・最終まで
、というようにリーグ戦の総当たり結果表のような
結果を出力しようとしています。
値は数値で差分を整数で出すだけで、
重複した結果は不要ですので階段状に出力させています。

B列70行程で処理に40秒程かかってしまう状態です。
...続きを読む

Aベストアンサー

コードをそのままで、B列200行程度実行しても一瞬で終わります。

コードの問題では無いですね。
PC環境かエクセルの問題だと思います。

そもそも、そのエクセルに直接文字入力した場合、入力の度に待たされる事は有りませんか?

QVBAでIEを動かす場合、下記の①チェックボックスにチェックを入れると②以下が表示される処理はどうす

VBAでIEを動かす場合、下記の①チェックボックスにチェックを入れると②以下が表示される処理はどうすればよいのでしょうか?

<div id="form_area">
<!-- 発注方法の選択 -->
<div class="box1">
<p class="cap3"><span style="color:red;font-weight:normal">※依頼内容をご選択ください。(間取図・ハウジングマップ・デフォルメ地図は同時発注が可能です。)</span></p>
<p class="box2">
<label class="label1"><input name="use_order[floor_plan]" id="chk1" type="checkbox" onclick="op_chk()" />間取図</label> <======①
<label class="label2"><input name="use_order[housing_map]" id="chk2" type="checkbox" onclick="op_chk()" />ハウジングマップ</label>
<label class="label3"><input name="use_order[deformation]" id="chk3" type="checkbox" onclick="op_chk()" />デフォルメ地図</label>
<br style="clear:both" />
<label class="label"><a href="javascript:void(0)" onclick="op_chk2('nigaoe')"><img src="./img/btn_nigaoe.jpg" alt="似顔絵" /></a></label>
<label class="label"><a href="javascript:void(0)" onclick="op_chk2('photo')"><img src="./img/btn_photo.jpg" alt="写真撮影" /></a></label>
<label class="label"><a href="javascript:void(0)" onclick="op_chk2('traffic')"><img src="./img/btn_traffic.jpg" alt="交通案内図" /></a></label>
<br style="clear:both" />
</p>
</div>

<!-- 発送スケジュール -->
<div style="padding:0px;border:none">
<img id="img_schedule_default" src="./img/schedule.jpg" />
<img id="img_schedule_madori" src="./img/madori_schedule.jpg" />
<img id="img_schedule_photo" src="./img/picture_schedule.jpg" />
</div>

<!-- 間取図発注書 -->  <=====②
<div id="floor_plan" class="box1">
<p class="floor_plan_cap">
■ 間取図
</p>
<div class="box2">

<p class="cap2">必須項目</p>

<div class="box2">

<table class="def_tbl">
<tr>
<th>依頼種別</th>
<td>

VBAでIEを動かす場合、下記の①チェックボックスにチェックを入れると②以下が表示される処理はどうすればよいのでしょうか?

<div id="form_area">
<!-- 発注方法の選択 -->
<div class="box1">
<p class="cap3"><span style="color:red;font-weight:normal">※依頼内容をご選択ください。(間取図・ハウジングマップ・デフォルメ地図は同時発注が可能です。)</span></p>
<p class="box2">
...続きを読む

Aベストアンサー

http://vba-code.net/ie/
ボタンを押す
http://vba-code.net/ie/click-a-button/
このところの
For Each objInput In objIE.Document.getElementsByTagName("INPUT")

For Each で回して、一致したら、叩く

getElementsByTagName("INPUT")が
id で とるなら "chk3" になる

こんな感じ

QVBA:ホームページ内のデータテーブルスクロールバーの操作

エクセルVBAによりホームページ内のデータテーブル付属のスクロールバーを上下に動かしたいです。
例として下記ページに示します。
http://javascript123.seesaa.net/article/103060039.html

DevelopmentツールでDOM要素として指定できるか調べましたが、直接その要素を指定することはできず、どこに関連する記述があるのかが分かりませんでした。
まず、このスクロールバーについて記述がどこに対応するのか教えて頂きたいです。
また、VBA操作のヒントを教えて頂けたらと思います。

Aベストアンサー

https://msdn.microsoft.com/en-us/library/aa752329%28v=vs.85%29.aspx
基底クラスの scrollIntoView メソッドぐらいしか無いのでは。

Q下記のようなタグの場合、VBAでボタンをクリックするためにはどのような処理になるのでしょうか? TY

下記のようなタグの場合、VBAでボタンをクリックするためにはどのような処理になるのでしょうか?
TYPE=”button” や TYPE=”submit”の場合は、処理例があるのでわかるのですが・・・
--------------
<div id="btn_login">

<!--
<a href="./login/login_new.htm?height=200&width=370" rel="sexylightbox" ><img src="images/btn_login_off.png" class="iepngfix"></a>
-->

<!--
<a href="./login/login_new.htm?height=200&width=370" rel="sexylightbox" ><img src="images/btn_login_off.png" class="iepngfix" onClick="JavaScript:document.frmDefault.hdnKushituSearchFlg.value=;"></a>
-->

<!--
<a href="./login/login_new.htm?TB_iframe=true&#038;height=190&#038;width=370" class="lightbox" rel="sexylightbox"><img src="images/btn_login_off.png" class="iepngfix" onClick="JavaScript:document.frmDefault.hdnKushituSearchFlg.value=;"></a>
-->
<a href="./login/login_new.htm?height=200&width=370" rel="sexylightbox" ><img src="images/btn_login_off.png" class="iepngfix" onClick="JavaScript:document.frmDefault.hdnKushituSearchFlg.value=0;"></a>

</div><!--btn_login-->

下記のようなタグの場合、VBAでボタンをクリックするためにはどのような処理になるのでしょうか?
TYPE=”button” や TYPE=”submit”の場合は、処理例があるのでわかるのですが・・・
--------------
<div id="btn_login">

<!--
<a href="./login/login_new.htm?height=200&width=370" rel="sexylightbox" ><img src="images/btn_login_off.png" class="iepngfix"></a>
-->

<!--
<a href="./login/login_new.htm?height=200&width=370" rel="sexylightbox" ><img src="images/btn_login_off.png" class="iep...続きを読む

Aベストアンサー

ANo1です。

>getElelentsByTagName("img")
エラーメッセージ通りで、存在しないメソッドだから。

VBAのインデックスの開始がよくわかっておりませんが、もしかすると、インデックスは「1」かもしれませんので、両方テストしてみてください。

QVBA IF文でORを使ったとき後ろの条件が実行されない

下記VBAは特定の行だけ取り出すために組んだマクロの一部ですが、
なぜか.Value Like "W*"の部分が実行されません、
ORの前と後ろを逆にするとやはり前だけしか実行されません。

どこが問題なのでしょうか?
また、"J*"か"W*"以外の行を削除するという文はどう書くのでしょうか?

よろしくお願いします。


For j = Range("A1").End(xlDown).Row To 2 Step -1
With Cells(j, "AB")

If Not .Value Like "J*" Or .Value Like "W*" Then
.EntireRow.Delete
End If

End With

Next j

Aベストアンサー

>If Not .Value Like "J*" Or .Value Like "W*" Then
["J*"か"W*"以外の行を削除する]

これは、排他的論理積の内容ですね。
英米人は、何の問題もなく答えられるけれども、日本人などは、どうしても戸惑ってしまいます。英語には、こういう表現がありますが、日本語には、そういう表現があっても、言葉には正確に表す論理がありません。もし、本格的なプログラミングをおやりになるなら、是非、学ばれたほうがよいです。ベン図を書いて試してみるとよいです。

["J*"*か*"W*"以外の行を削除する]
「か=or(和)」が否定になると「and(積)」に変わると覚えていればよいです。

If Not (UCase(.Value) Like "J*" Or Not UCase(.Value) Like "W*" Then
または
If Not UCase(.Value) Like "J*" And Not UCase(.Value) Like "W*" Then

このように演算子が変わります。


人気Q&Aランキング

おすすめ情報