twitterをExcelでマーケティングする方法

これはまさにマーケティング
これならばれない!Excel VBAでTwitter·Twittexceler MOONGIFT

Excel 2002 SP3でも動作しました。以下、自分ところの環境に合わせていじったメモです。

  • http://coderepos.org/share/wiki/Twittexcelerからhttp://svn.coderepos.org/share/platform/excel/Twittexceler/Twittexceler.xlsmをダウンロード。
  • ダブルクリックで開くと、「ファイル互換性がないからこのままじゃ動かないよ。互換ツールを入れてね」っていうMicrosoftからのメッセージがくるので、指示に従いファイル変換する何かをインストール。
  • もう一度Twitterexceler.xlsmを開くと、ユーザ設定してくれと言われるが、とりあえず無視。
  • ツール > マクロ > Visual Basic Editerを開く。
  • VBAProject(Twittexceler.xlsm) > クラス モジュール > TwitterClientを開いて、httpをhttpsに変更と、タイムライン取得をGETに変更。
Public Function UpdateStatus(ByVal statusText As String) As Status
...
    Call xhr.Open("POST", "http://twitter.com/statuses/update.xml?source=Twittexceler&status=" & UrlEncodeUtf8(statusText), False, mUserName, mPassword)
...
End Function

Public Function GetTimeline() As Collection
...
    Call xhr.Open("POST", "http://twitter.com/statuses/friends_timeline.xml?__dummy=" & CStr(Now), False, mUserName, mPassword)
...
End Function
Public Function UpdateStatus(ByVal statusText As String) As Status
...
    Call xhr.Open("POST", "https://twitter.com/statuses/update.xml?source=Twittexceler&status=" & UrlEncodeUtf8(statusText), False, mUserName, mPassword)
...
End Function

Public Function GetTimeline() As Collection
...
    Call xhr.Open("GET", "https://twitter.com/statuses/friends_timeline.xml?__dummy=" & CStr(Now), False, mUserName, mPassword)
...
End Function
  • VBAProject(Twittexceler.xlsm) > 標準モジュール > MainModuleを開いて、httpをhttpsに変更。
            Call timelineSheet.Hyperlinks.Add(newRowRange.Cells(, timelineSheet.Range("CreatedAt").Column), TextToDisplay:=CStr(ConvertRailsTimeFormatToDate(Status.Created_At)), Address:="http://twitter.com/" & Status.User.Screen_Name & "/status/" & Status.Id)
            Call timelineSheet.Hyperlinks.Add(newRowRange.Cells(, timelineSheet.Range("ScreenName").Column), TextToDisplay:=Status.User.Screen_Name, Address:="http://twitter.com/" & Status.User.Screen_Name)
            Call timelineSheet.Hyperlinks.Add(newRowRange.Cells(, timelineSheet.Range("CreatedAt").Column), TextToDisplay:=CStr(ConvertRailsTimeFormatToDate(Status.Created_At)), Address:="https://twitter.com/" & Status.User.Screen_Name & "/status/" & Status.Id)
            Call timelineSheet.Hyperlinks.Add(newRowRange.Cells(, timelineSheet.Range("ScreenName").Column), TextToDisplay:=Status.User.Screen_Name, Address:="https://twitter.com/" & Status.User.Screen_Name)
  • ユーザ設定ののち、「最新の状態に更新」でタイムラインを取得する。

はい出来た。

httpsで、こそこそマーケティングしましょう。

「WEBのアクセスフィルタでtwitter.comが閉じられてる」とか「新たなアプリケーションのインストールには許可が必要」な環境はよくあると思いますが、冗談じゃなく普通に使えそうです。id:mayukiに感謝。