投稿、いいね!、コメントを送るVBAを記述する

投稿を送るVBAは、cbPost(ウォールへ投稿する)ボタンをクリックした際の処理として記述します。

[リスト3]投稿を送るVBA

Private Sub cbPost_Click()

    If txPost.TextLength = 0 Then
        MsgBox ("未入力です")
        Exit Sub
   End If
   Dim json As String, status As String
    status = SendHttp("POST", baseUrl & userID & "/feed?access_token=" & actoken, txPost.Text)
   If status <> "OK" Then
        MsgBox ("リクエストが失敗しました。" & status)
        Exit Sub
    End If
    txPost.Text = ""
    cbHome_Click

End Sub

投稿用テキストボックスが空でなければ、第3仮引数に設定してSendHttpを呼び出します。結果がOKなら、テキストボックスを初期化して、投稿後のニュースフィード画面を表示させます。

いいね!、コメントを送るVBAは、ダブルクリックのイベントが発生した際の処理(第15回のGoogleマップを参照)として記述します。

[リスト4]いいね!、コメントを送るVBA

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    Cancel = True
    If Target.Text <> "【投稿】" Then Exit Sub
    Dim strName As String, strId As String, strMsg As String
    Dim status As String
    strName = Cells(Target.row, Range("ttlName").Column)
    strMsg = Cells(Target.row, Range("ttlBody").Column)
   strId = Cells(Target.row, Range("ttlId").Column)
    If txPost.TextLength = 0 Then
        If MsgBox("以下の投稿に「いいね!」しますか?" & vbCrLf _
            & strName & vbCrLf & strMsg, vbOKCancel) = vbCancel Then Exit Sub
        status = SendHttp("POST", baseUrl & strId & "/likes?access_token=" & actoken, txPost.Text)
    Else
        If MsgBox("以下の投稿に「コメント」しますか?" & vbCrLf _
            & strName & vbCrLf & strMsg, vbOKCancel) = vbCancel Then Exit Sub
        status = SendHttp("POST", baseUrl & strId & "/comments?access_token=" & actoken, txPost.Text)
   End If
   (略)
    txPost.Text = ""
    cbHome_Click

End Sub

ダブルクリックしたセルの値が【投稿】でなければ、処理を中断します。
ダブルクリックした投稿の投稿者名、投稿内容、IDを取得します。
テキストボックスが空であれば「いいね!」と判断、空でなければコメントと判断し、確認メッセージ表示後、リクエストを送信します。
リクエストが成功したら、テキストボックスを初期化し、投稿後のニュースフィード画面を表示させます。

これにて完成です。各種の操作ができることを確認してください。

なお、以下のようなエラーになる場合は、アクセストークンの文字列が誤っているか、有効期限が切れている可能性があります。その場合、先述の手順に従って、アクセストークンを取り直し、actoken定数に再設定してください。

図13.リクエストが失敗した場合

以下説明するリストはsample.lzhの中に収録しています。サンプルとしてご活用ください。

まとめ

Facebookの利用はいかがでしたか? カスタマイズしてみたい方は、英語になりますが、以下のURLを参考にしてみてください。

https://developers.facebook.com/docs/reference/api/

本連載は今回をもって終了となりますが、ExcelからWebサービスを利用する道具立ては、ほぼ整ったものと考えております。今後も新しいWebサービスが次々と登場することでしょう。仕事や趣味のために、皆さま独自のVBAを組まれる際の一助となれば、著者としてこれ以上の喜びはありません。今までご愛読いただき、誠にありがとうございました。

WINGSプロジェクト 遠藤 存著/山田祥寛監修
WINGS プロジェクトについて
テクニカル執筆プロジェクト(代表山田祥寛)。海外記事の翻訳から、主にWeb開発分野の書籍・雑誌/Web記事の執筆、講演等を幅広く手がける。2011年5月時点での登録メンバは35名で、現在も一緒に執筆をできる有志を募集中。