ブラッシュアップ

最近の書き込み件数: 今日 0件、昨日 0件
未読分:5件

最新20件 最新50件 最新100件 最新200件 200件以前
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)


Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応

近田 伸矢, 植木 悠二, 上田 寛

IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。

Message#5 2016年3月8日(火)12時37分
From: vba初心者
返事 削除 変更
ありがとうございます。

引用してきたものをそのままだったので…
作り直してみたいと思います。

> しいていえば、この程度の処理ならサブルーチンは使用しない。
> サブルーチンを使用しようすると条件分岐が多いからその分処理が若干遅くなる。
> innertext、outerhtmlとかも決まっているなら条件分岐させる必要もない。
>
> > ありがとうございます。
> > 他にもありましたらどんどんお願い致します。
> >
> > ジャッカルのメッセージ(#2)への返事
> >
> > > 型宣言でLongを使っているけどそんなにでかい数字ある?
> > > 金額とかIntegerで十分だと思うが。
> > >
> > > > 下記について直した方が早くなるなどありましたらお知恵をお貸しいただけると助かります。
> > > >
> > > > 宜しくお願い致します。
> > > >
> > > > Sub sample()
> > > >
> > > > Dim rc As Integer
> > > >
> > > > rc = MsgBox("処理を行いますか?", vbYesNo + vbQuestion, "確認")
> > > > If rc = vbYes Then
> > > >
> > > > Application.ScreenUpdating = False
> > > > Application.Calculation = xlCalculationManual
> > > >
> > > > Dim objIE As InternetExplorer
> > > > Dim i As Integer
> > > > Dim ii As Integer
> > > > Dim objLink As Object
> > > > Dim h As Long
> > > > Dim hh As String
> > > > Dim hhh As Long
> > > > Dim atag As String
> > > > Dim big As String
> > > > Dim cate As String
> > > >
> > > > Set ws1 = Workbooks("kakakucom(ranking)").Worksheets("search")
> > > >
> > > > 'ストップウォッチ
> > > > t = Timer
> > > >
> > > > cate = Cells(1, 6)
> > > >
> > > > For ii = 0 To 3
> > > >
> > > > 'データ抽出用ページをIE(InternetExplorer)で起動
> > > > Call ieView(objIE, "http://kakaku.com/ranking/kaden/")
> > > >
> > > >
> > > > 'リンクをクリックして同じウィンドウで表示する
> > > > Call linkClick(objIE, cate)
> > > >
> > > >
> > > > '("rkgBoxName")(i)のaタグを取得し【atag】に収納
> > > > atag = objIE.Document.getElementsByClassName("rkgBoxName")(ii).innerHTML
> > > >
> > > > 'リンクをクリックして同じウィンドウで表示する
> > > > Call linkClick(objIE, atag)
> > > >
> > > > '指定したclass属性の文書ドキュメント【型番】を抽出する
> > > > hh = objIE.Document.getElementsByTagName("h2")(0).innerHTML
> > > > ws1.Cells(ii + 1, 1) = hh
> > > >
> > > >
> > > > '指定したclass属性の文書ドキュメント【金額】を抽出する
> > > > h = classValue(objIE, "fontPrice wordwrapPrice", "p", "innerText")
> > > > ws1.Cells(ii + 1, 2) = h
> > > >
> > > >
> > > >
> > > >
> > > > 'HTMLタグがaタグ要素を全て抽出する
> > > > For i = 0 To objIE.Document.getElementsByClassName("wordwrapShop").Length - 1
> > > >
> > > > If objIE.Document.getElementsByClassName("wordwrapShop")(i).innertext = "onHOMEオンホーム" Then
> > > >
> > > > 'リンクをクリックして同じウィンドウで表示する
> > > > Call linkClick(objIE, "onHOMEオンホーム")
> > > >
> > > > '指定したclass属性の文書ドキュメント【金額】を抽出する
> > > > hhh = objIE.Document.getElementsByClassName("impact02")(0).innertext
> > > > ws1.Cells(ii + 1, 3) = hhh
> > > > '閉じてお掃除
> > > >
> > > >
> > > > Exit For
> > > > Else
> > > >
> > > >
> > > > End If
> > > >
> > > > Next i
> > > > objIE.Quit
> > > > Set objIE = Nothing
> > > >
> > > > Next ii
> > > >
> > > >
> > > > 'Exit For
> > > > MsgBox Timer - t
> > > > Application.Calculation = xlCalculationAutomatic
> > > > Application.ScreenUpdating = True
> > > >
> > > > Else
> > > > MsgBox "処理を中断します"
> > > >
> > > > End If '確認の終わり
> > > > End Sub

Message#4 2016年3月3日(木)22時16分
From: ジャッカル
返事 削除 変更
しいていえば、この程度の処理ならサブルーチンは使用しない。
サブルーチンを使用しようすると条件分岐が多いからその分処理が若干遅くなる。
innertext、outerhtmlとかも決まっているなら条件分岐させる必要もない。

> ありがとうございます。
> 他にもありましたらどんどんお願い致します。
>
> ジャッカルのメッセージ(#2)への返事
>
> > 型宣言でLongを使っているけどそんなにでかい数字ある?
> > 金額とかIntegerで十分だと思うが。
> >
> > > 下記について直した方が早くなるなどありましたらお知恵をお貸しいただけると助かります。
> > >
> > > 宜しくお願い致します。
> > >
> > > Sub sample()
> > >
> > > Dim rc As Integer
> > >
> > > rc = MsgBox("処理を行いますか?", vbYesNo + vbQuestion, "確認")
> > > If rc = vbYes Then
> > >
> > > Application.ScreenUpdating = False
> > > Application.Calculation = xlCalculationManual
> > >
> > > Dim objIE As InternetExplorer
> > > Dim i As Integer
> > > Dim ii As Integer
> > > Dim objLink As Object
> > > Dim h As Long
> > > Dim hh As String
> > > Dim hhh As Long
> > > Dim atag As String
> > > Dim big As String
> > > Dim cate As String
> > >
> > > Set ws1 = Workbooks("kakakucom(ranking)").Worksheets("search")
> > >
> > > 'ストップウォッチ
> > > t = Timer
> > >
> > > cate = Cells(1, 6)
> > >
> > > For ii = 0 To 3
> > >
> > > 'データ抽出用ページをIE(InternetExplorer)で起動
> > > Call ieView(objIE, "http://kakaku.com/ranking/kaden/")
> > >
> > >
> > > 'リンクをクリックして同じウィンドウで表示する
> > > Call linkClick(objIE, cate)
> > >
> > >
> > > '("rkgBoxName")(i)のaタグを取得し【atag】に収納
> > > atag = objIE.Document.getElementsByClassName("rkgBoxName")(ii).innerHTML
> > >
> > > 'リンクをクリックして同じウィンドウで表示する
> > > Call linkClick(objIE, atag)
> > >
> > > '指定したclass属性の文書ドキュメント【型番】を抽出する
> > > hh = objIE.Document.getElementsByTagName("h2")(0).innerHTML
> > > ws1.Cells(ii + 1, 1) = hh
> > >
> > >
> > > '指定したclass属性の文書ドキュメント【金額】を抽出する
> > > h = classValue(objIE, "fontPrice wordwrapPrice", "p", "innerText")
> > > ws1.Cells(ii + 1, 2) = h
> > >
> > >
> > >
> > >
> > > 'HTMLタグがaタグ要素を全て抽出する
> > > For i = 0 To objIE.Document.getElementsByClassName("wordwrapShop").Length - 1
> > >
> > > If objIE.Document.getElementsByClassName("wordwrapShop")(i).innertext = "onHOMEオンホーム" Then
> > >
> > > 'リンクをクリックして同じウィンドウで表示する
> > > Call linkClick(objIE, "onHOMEオンホーム")
> > >
> > > '指定したclass属性の文書ドキュメント【金額】を抽出する
> > > hhh = objIE.Document.getElementsByClassName("impact02")(0).innertext
> > > ws1.Cells(ii + 1, 3) = hhh
> > > '閉じてお掃除
> > >
> > >
> > > Exit For
> > > Else
> > >
> > >
> > > End If
> > >
> > > Next i
> > > objIE.Quit
> > > Set objIE = Nothing
> > >
> > > Next ii
> > >
> > >
> > > 'Exit For
> > > MsgBox Timer - t
> > > Application.Calculation = xlCalculationAutomatic
> > > Application.ScreenUpdating = True
> > >
> > > Else
> > > MsgBox "処理を中断します"
> > >
> > > End If '確認の終わり
> > > End Sub

Message#3 2016年3月3日(木)11時20分
From: VBA悩み
返事 削除 変更
ありがとうございます。
他にもありましたらどんどんお願い致します。

ジャッカルのメッセージ(#2)への返事

> 型宣言でLongを使っているけどそんなにでかい数字ある?
> 金額とかIntegerで十分だと思うが。
>
> > 下記について直した方が早くなるなどありましたらお知恵をお貸しいただけると助かります。
> >
> > 宜しくお願い致します。
> >
> > Sub sample()
> >
> > Dim rc As Integer
> >
> > rc = MsgBox("処理を行いますか?", vbYesNo + vbQuestion, "確認")
> > If rc = vbYes Then
> >
> > Application.ScreenUpdating = False
> > Application.Calculation = xlCalculationManual
> >
> > Dim objIE As InternetExplorer
> > Dim i As Integer
> > Dim ii As Integer
> > Dim objLink As Object
> > Dim h As Long
> > Dim hh As String
> > Dim hhh As Long
> > Dim atag As String
> > Dim big As String
> > Dim cate As String
> >
> > Set ws1 = Workbooks("kakakucom(ranking)").Worksheets("search")
> >
> > 'ストップウォッチ
> > t = Timer
> >
> > cate = Cells(1, 6)
> >
> > For ii = 0 To 3
> >
> > 'データ抽出用ページをIE(InternetExplorer)で起動
> > Call ieView(objIE, "http://kakaku.com/ranking/kaden/")
> >
> >
> > 'リンクをクリックして同じウィンドウで表示する
> > Call linkClick(objIE, cate)
> >
> >
> > '("rkgBoxName")(i)のaタグを取得し【atag】に収納
> > atag = objIE.Document.getElementsByClassName("rkgBoxName")(ii).innerHTML
> >
> > 'リンクをクリックして同じウィンドウで表示する
> > Call linkClick(objIE, atag)
> >
> > '指定したclass属性の文書ドキュメント【型番】を抽出する
> > hh = objIE.Document.getElementsByTagName("h2")(0).innerHTML
> > ws1.Cells(ii + 1, 1) = hh
> >
> >
> > '指定したclass属性の文書ドキュメント【金額】を抽出する
> > h = classValue(objIE, "fontPrice wordwrapPrice", "p", "innerText")
> > ws1.Cells(ii + 1, 2) = h
> >
> >
> >
> >
> > 'HTMLタグがaタグ要素を全て抽出する
> > For i = 0 To objIE.Document.getElementsByClassName("wordwrapShop").Length - 1
> >
> > If objIE.Document.getElementsByClassName("wordwrapShop")(i).innertext = "onHOMEオンホーム" Then
> >
> > 'リンクをクリックして同じウィンドウで表示する
> > Call linkClick(objIE, "onHOMEオンホーム")
> >
> > '指定したclass属性の文書ドキュメント【金額】を抽出する
> > hhh = objIE.Document.getElementsByClassName("impact02")(0).innertext
> > ws1.Cells(ii + 1, 3) = hhh
> > '閉じてお掃除
> >
> >
> > Exit For
> > Else
> >
> >
> > End If
> >
> > Next i
> > objIE.Quit
> > Set objIE = Nothing
> >
> > Next ii
> >
> >
> > 'Exit For
> > MsgBox Timer - t
> > Application.Calculation = xlCalculationAutomatic
> > Application.ScreenUpdating = True
> >
> > Else
> > MsgBox "処理を中断します"
> >
> > End If '確認の終わり
> > End Sub

Message#2 2016年3月2日(水)21時52分
From: ジャッカル
返事 削除 変更
型宣言でLongを使っているけどそんなにでかい数字ある?
金額とかIntegerで十分だと思うが。

> 下記について直した方が早くなるなどありましたらお知恵をお貸しいただけると助かります。
>
> 宜しくお願い致します。
>
> Sub sample()
>
> Dim rc As Integer
>
> rc = MsgBox("処理を行いますか?", vbYesNo + vbQuestion, "確認")
> If rc = vbYes Then
>
> Application.ScreenUpdating = False
> Application.Calculation = xlCalculationManual
>
> Dim objIE As InternetExplorer
> Dim i As Integer
> Dim ii As Integer
> Dim objLink As Object
> Dim h As Long
> Dim hh As String
> Dim hhh As Long
> Dim atag As String
> Dim big As String
> Dim cate As String
>
> Set ws1 = Workbooks("kakakucom(ranking)").Worksheets("search")
>
> 'ストップウォッチ
> t = Timer
>
> cate = Cells(1, 6)
>
> For ii = 0 To 3
>
> 'データ抽出用ページをIE(InternetExplorer)で起動
> Call ieView(objIE, "http://kakaku.com/ranking/kaden/")
>
>
> 'リンクをクリックして同じウィンドウで表示する
> Call linkClick(objIE, cate)
>
>
> '("rkgBoxName")(i)のaタグを取得し【atag】に収納
> atag = objIE.Document.getElementsByClassName("rkgBoxName")(ii).innerHTML
>
> 'リンクをクリックして同じウィンドウで表示する
> Call linkClick(objIE, atag)
>
> '指定したclass属性の文書ドキュメント【型番】を抽出する
> hh = objIE.Document.getElementsByTagName("h2")(0).innerHTML
> ws1.Cells(ii + 1, 1) = hh
>
>
> '指定したclass属性の文書ドキュメント【金額】を抽出する
> h = classValue(objIE, "fontPrice wordwrapPrice", "p", "innerText")
> ws1.Cells(ii + 1, 2) = h
>
>
>
>
> 'HTMLタグがaタグ要素を全て抽出する
> For i = 0 To objIE.Document.getElementsByClassName("wordwrapShop").Length - 1
>
> If objIE.Document.getElementsByClassName("wordwrapShop")(i).innertext = "onHOMEオンホーム" Then
>
> 'リンクをクリックして同じウィンドウで表示する
> Call linkClick(objIE, "onHOMEオンホーム")
>
> '指定したclass属性の文書ドキュメント【金額】を抽出する
> hhh = objIE.Document.getElementsByClassName("impact02")(0).innertext
> ws1.Cells(ii + 1, 3) = hhh
> '閉じてお掃除
>
>
> Exit For
> Else
>
>
> End If
>
> Next i
> objIE.Quit
> Set objIE = Nothing
>
> Next ii
>
>
> 'Exit For
> MsgBox Timer - t
> Application.Calculation = xlCalculationAutomatic
> Application.ScreenUpdating = True
>
> Else
> MsgBox "処理を中断します"
>
> End If '確認の終わり
> End Sub

Message#1 2016年3月2日(水)17時40分
From: vba初心者
返事 削除 変更
下記について直した方が早くなるなどありましたらお知恵をお貸しいただけると助かります。

宜しくお願い致します。

Sub sample()

Dim rc As Integer

rc = MsgBox("処理を行いますか?", vbYesNo + vbQuestion, "確認")
If rc = vbYes Then

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

Dim objIE As InternetExplorer
Dim i As Integer
Dim ii As Integer
Dim objLink As Object
Dim h As Long
Dim hh As String
Dim hhh As Long
Dim atag As String
Dim big As String
Dim cate As String

Set ws1 = Workbooks("kakakucom(ranking)").Worksheets("search")

'ストップウォッチ
t = Timer

cate = Cells(1, 6)

For ii = 0 To 3

'データ抽出用ページをIE(InternetExplorer)で起動
Call ieView(objIE, "http://kakaku.com/ranking/kaden/")


'リンクをクリックして同じウィンドウで表示する
Call linkClick(objIE, cate)


'("rkgBoxName")(i)のaタグを取得し【atag】に収納
atag = objIE.Document.getElementsByClassName("rkgBoxName")(ii).innerHTML

'リンクをクリックして同じウィンドウで表示する
Call linkClick(objIE, atag)

'指定したclass属性の文書ドキュメント【型番】を抽出する
hh = objIE.Document.getElementsByTagName("h2")(0).innerHTML
ws1.Cells(ii + 1, 1) = hh


'指定したclass属性の文書ドキュメント【金額】を抽出する
h = classValue(objIE, "fontPrice wordwrapPrice", "p", "innerText")
ws1.Cells(ii + 1, 2) = h




'HTMLタグがaタグ要素を全て抽出する
For i = 0 To objIE.Document.getElementsByClassName("wordwrapShop").Length - 1

If objIE.Document.getElementsByClassName("wordwrapShop")(i).innertext = "onHOMEオンホーム" Then

'リンクをクリックして同じウィンドウで表示する
Call linkClick(objIE, "onHOMEオンホーム")

'指定したclass属性の文書ドキュメント【金額】を抽出する
hhh = objIE.Document.getElementsByClassName("impact02")(0).innertext
ws1.Cells(ii + 1, 3) = hhh
'閉じてお掃除


Exit For
Else


End If

Next i
objIE.Quit
Set objIE = Nothing

Next ii


'Exit For
MsgBox Timer - t
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True

Else
MsgBox "処理を中断します"

End If '確認の終わり
End Sub

最新20件 最新50件 最新100件 最新200件 200件以前
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降

VBAのIE制御についてのQ&A掲示板

↑エクセルVBAのIE(InternetExplorer)操作で分からない事があればこちらの掲示板よりご質問ください^^

ExcelのVBA初心者入門

↑こちらはExcelのVBAをマスターできるよう初心者向けのエクセルVBA入門コンテンツになります^^

VBAのIE制御入門RSS

RSSフィードを登録すると最新記事を受け取ることができます。

VBAIE操作のスカイプレッスン

VBAでIE(InternetExplorer)制御の準備

エクセルVBAでIE制御の応用編

こちらでは、エクセルVBAで実際に作成したIE(InternetExplorer)制御ツールをまとめています。自動ログインや情報収集など具体的に解説しています。IE(InternetExplorer)制御をされる方は参考にしてください。

【ダウンロード】IE操作に便利なツール

こちらでは、これまでに紹介したIE(InternetExplorer)操作で便利な機能をツール化しています。無償でダウンロードできますので、目的に合わせたご利用ください。

IEオブジェクトのメソッド・プロパティ

こちらでは、IE(InternetExplorer)オブジェクトのメソッド・プロパティをまとめています。

IE操作に利用されているVBA関数

こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたVBA関数をまとめています。

IE操作に利用されているステートメント

こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたステートメントをまとめています。ExcelのVBAで基本的な部分になりますので、しっかり理解しましょう。

IE(InternetExplorer)制御のVBAコード

こちらでは、これまでに作成したIE(InternetExplorer)操作で役立つサブルーチンをまとめています。
全てをコピーする必要はありませんが、目的に合わせたサブルーチンをご利用ください。

ExcelのVBAで作成した役立つVBAコード

こちらでは、IE(InternetExplorer)制御の利用だけでなく、Excel全般で利用できるVBAコードです。エクセルVBAで役に立つものばかりですので、ご利用ください。

dmb.cgi Ver. 1.068
Copyright(C) 1997-2014, hidekik.com