note VBA 實用功能:RSS新聞整理
keep reading...
最近利用VBA
寫了一個自動蒐集關鍵字新聞的Excel
作用是這樣,假設你今天對"林書豪"很有興趣
就可以透過我的方式 提到林書豪的新聞都蒐集起來
將新聞標題、發布時間及原文連結等資訊儲存在Excel
首先 要在網路上建一個RSS
RSS就是一種訊息來源格式規範 --> 維基百科介紹
整合一般網頁、新聞或網頁部落格的資訊
轉換成一種簡單形式的摘要,方便閱讀者蒐集
利用Google新聞可以建立特定關鍵字的新聞RSS
將此新聞輸入Excel,便能利用Excel儲存新聞資料
我寫了VBA可以幫我完成一些事情
包含:自動更新資料 重新整理格式 縮短網址 Highlight關鍵字
以下程式碼參考,//代表說明
------------------------------------
前置作業,到Google利用自己要的關鍵字搜尋新聞
並且在最下面找到"即時掌握「**」的新聞搜尋結果。"
按下"建立快訊"建立RSS摘要,接著用Excel匯入XML
------------------------------------
Sub 按鈕2_Click()
//按下按鈕2所啟發的巨集
Worksheets("feeds").Activate
ActiveWorkbook.XmlMaps("feed_Map").DataBinding.Refresh
//feed_Map是Excel內建的Xml預設名稱
//Refresh代表作更新的動作
Row = Worksheets("feeds").Range("a1048576").End(xlUp).Row
For first = 3 To Row
Link = Worksheets("feeds").Cells(first, 4).Value
Worksheets("feeds").Hyperlinks.add Worksheets("feeds").Cells(first, 4), Address:=(Link), TextToDisplay:=("連結")
Next
//我的第四行是連結,這個連結很長不好看,所以建立一個名為"連結"的超連結
//首先利用End(xlUP).Row,從最底下網上找,會找到有資料的最後一列
//我的新聞資料是從第三列開始,從第三列到最後一列的第四行都加入超連結
Worksheets("feeds").Range("A:B").Cells.Replace "<b>", ""
Worksheets("feeds").Range("A:B").Cells.Replace "</b>", ""
Worksheets("feeds").Range("A:B").Cells.Replace "'", "'"
//Replace語法是代表取代字元,新聞大多都是從HTML網頁摘取
//所以很有可能出現一些<b> 之類的HTML元素,看起來很亂就用取代把它刪掉
Count = 0
For i = 2 To Worksheets("REF").Range("d1048576").End(xlUp).Row
Name = Worksheets("REF").Cells(i, 4).Value
For n = 1 To 2
For m = 3 To Worksheets("feeds").Range("a3").End(xlDown).Row
If InStr(Worksheets("feeds").Cells(m, n), Name) <> 0 Then
Worksheets("feeds").Cells(m, n).Font.Color = vbRed
Count = Count + 1
End If
Next
Next
Next
//在REF這個頁面中,存了一排"關鍵字",目的是想要快速過濾一些關鍵字新聞
//第一個For用來對"每個關鍵字",都要過濾新聞一次
//第二個For則是因為新聞有標題跟摘要,所以標題跟摘要都要過濾一次
//第三個For則是用來過濾"每一則新聞"
//InStr的用途是找到字串中,特定字元的"開始位置",譬如"oooipkk"中"ip"的位置就是從4開始
//如果InStr不等於0,就代表特定字元存在於該字串,用來判斷是否包含
MsgBox "共有 " & Count & "筆新聞偵測到關鍵字元"
//有包含一次特定字元,Count就會+1,最後用MsgBox跟使用者說有幾筆資料要注意
-----------------------------------
當然,也可以在偵測到字元的時候,立馬儲存新聞到相對應的sheets
但是我當時的想法是在用人眼過濾一次,資訊會比較正確
以上,參考
最近利用VBA
寫了一個自動蒐集關鍵字新聞的Excel
作用是這樣,假設你今天對"林書豪"很有興趣
就可以透過我的方式 提到林書豪的新聞都蒐集起來
將新聞標題、發布時間及原文連結等資訊儲存在Excel
首先 要在網路上建一個RSS
RSS就是一種訊息來源格式規範 --> 維基百科介紹
整合一般網頁、新聞或網頁部落格的資訊
轉換成一種簡單形式的摘要,方便閱讀者蒐集
利用Google新聞可以建立特定關鍵字的新聞RSS
將此新聞輸入Excel,便能利用Excel儲存新聞資料
我寫了VBA可以幫我完成一些事情
包含:自動更新資料 重新整理格式 縮短網址 Highlight關鍵字
以下程式碼參考,//代表說明
------------------------------------
前置作業,到Google利用自己要的關鍵字搜尋新聞
並且在最下面找到"即時掌握「**」的新聞搜尋結果。"
按下"建立快訊"建立RSS摘要,接著用Excel匯入XML
------------------------------------
Sub 按鈕2_Click()
//按下按鈕2所啟發的巨集
Worksheets("feeds").Activate
ActiveWorkbook.XmlMaps("feed_Map").DataBinding.Refresh
//feed_Map是Excel內建的Xml預設名稱
//Refresh代表作更新的動作
Row = Worksheets("feeds").Range("a1048576").End(xlUp).Row
For first = 3 To Row
Link = Worksheets("feeds").Cells(first, 4).Value
Worksheets("feeds").Hyperlinks.add Worksheets("feeds").Cells(first, 4), Address:=(Link), TextToDisplay:=("連結")
Next
//我的第四行是連結,這個連結很長不好看,所以建立一個名為"連結"的超連結
//首先利用End(xlUP).Row,從最底下網上找,會找到有資料的最後一列
//我的新聞資料是從第三列開始,從第三列到最後一列的第四行都加入超連結
Worksheets("feeds").Range("A:B").Cells.Replace "<b>", ""
Worksheets("feeds").Range("A:B").Cells.Replace "</b>", ""
Worksheets("feeds").Range("A:B").Cells.Replace "'", "'"
//Replace語法是代表取代字元,新聞大多都是從HTML網頁摘取
//所以很有可能出現一些<b> 之類的HTML元素,看起來很亂就用取代把它刪掉
Count = 0
For i = 2 To Worksheets("REF").Range("d1048576").End(xlUp).Row
Name = Worksheets("REF").Cells(i, 4).Value
For n = 1 To 2
For m = 3 To Worksheets("feeds").Range("a3").End(xlDown).Row
If InStr(Worksheets("feeds").Cells(m, n), Name) <> 0 Then
Worksheets("feeds").Cells(m, n).Font.Color = vbRed
Count = Count + 1
End If
Next
Next
Next
//在REF這個頁面中,存了一排"關鍵字",目的是想要快速過濾一些關鍵字新聞
//第一個For用來對"每個關鍵字",都要過濾新聞一次
//第二個For則是因為新聞有標題跟摘要,所以標題跟摘要都要過濾一次
//第三個For則是用來過濾"每一則新聞"
//InStr的用途是找到字串中,特定字元的"開始位置",譬如"oooipkk"中"ip"的位置就是從4開始
//如果InStr不等於0,就代表特定字元存在於該字串,用來判斷是否包含
MsgBox "共有 " & Count & "筆新聞偵測到關鍵字元"
//有包含一次特定字元,Count就會+1,最後用MsgBox跟使用者說有幾筆資料要注意
-----------------------------------
當然,也可以在偵測到字元的時候,立馬儲存新聞到相對應的sheets
但是我當時的想法是在用人眼過濾一次,資訊會比較正確
以上,參考