dポイントプレゼントキャンペーン実施中!

IEでクリックしてアドレスにジャンプする文字は、
一般的に、未読は青、既読は紫となっていますが、
プログラム(VBA)でその色を知りたいのです。

ウェブブラウザコンポーネント(WebBrowser)を使い
VBAで以下のコーディングをすれば、
ホームページの文字を取得することができます。

知りたいのは文字でなく文字の色なのです。
また、スタイルと言うプロパティで色の設定はできますが、
取得ができません。

特に色でなくても既読か、未読かが分かればかまいません。
アンカーエレメントに ForeColor みたいなプロパティは
ないのでしょうか?  以上、よろしくお願いします。

For iix = 0 To pDisp.Document.All.length - 1
Debug.Print pDisp.Document.All.Item(iix).innerText
Next

A 回答 (3件)

#1,#2だ。


すんなりいく方法があるかどうかわからんけれども。
訪問済みってURLで判断しているよね、多分。

ってことで
FindFirstUrlCacheEntry API
FindNextUrlCacheEntry API
FindCloseUrlCache APIを使った
ここのGetCacheURLList関数をパクる
(このコードではFormモジュールでList1.Addしているが,Publicにして標準モジュール持ってって適当に改造。)
http://vbnet.mvps.org/index.html?code/internet/f …

#ただ、手元でVBAで実験してみたら,ItemDataとかがないとか言われてエラーが出た。

Formの方では

Dim hoge As Object
Dim MyURL As String
Dim i As Integer
Dim j As Integer

GetCacheURLList (&H200000)
WebBrowser1.Navigate "http://www.yahoo.co.jp"

Do While Not (WebBrowser1.ReadyState = READYSTATE_COMPLETE)
DoEvents
Loop

hoge = WebBrowser1.Document.getElementsByTagName("a")

For i = 0 To hoge.Length - 1
MyURL = hoge.Item(i).getAttribute("href", 2)

For j = 0 To List1.ListCount - 1

If "Visited: Administrator@" & MyURL = List1.List(j) Then
MsgBox ("発見" & vbCrLf & _
"Visited: Administrator@" & MyURL & vbCrLf & _
List1.List(j)) '実際にはAdministratorじゃなくてユーザー名が入る。別途調べて欲しい。

End If

Next j
Next i

・・・・ってな感じで地道にループ回して調べるとか(笑)
    • good
    • 0
この回答へのお礼

DOM と言うキーワードと, queryURL 等で検索し、
JavaScript を用いると出来るそうなので、
アプローチを変えてみます。
いろいろありがとうございました。

お礼日時:2007/07/04 22:07

すまん、質問の意図を勘違いしていた。


撤回する
    • good
    • 0

簡易な方法があるのかどうかは知らない


いっそのことレジストリから値を取ってっちゃうのは?

http://msdn2.microsoft.com/en-us/library/aa74131 …

この回答への補足

英文の資料を読んでみましたが、
ハイパーリンクのデフォルトカラーが取得できるようです。
レジストリでは設定がわかるだけで、
現在のリンクが、青になっているか、紫になってるかは、
識別できないようです。

デフォルトカラーなら pDisp.Document.All.Item(iix) の
上のレベル pDisp.Document あたりでわかるのですが、
既読か未読かの色設定がわかるのであって、
現在のリンクが、既読か未読かどちらの状態にあるかは、
わからないのです。

補足日時:2007/07/01 23:32
    • good
    • 0

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