VBAでエクセルからツイッターに投稿

このQ&Aのポイント
  • VBAを使用してエクセルからツイッターに連続投稿する方法はありますか?
  • ツイッターのモバイル版を開き、テキストと画像を投稿するVBAコードの作成を試みましたが、うまくいきませんでした。
  • ツイートを投稿するボタンが押せず、画像の選択もできませんでした。
回答を見る
  • ベストアンサー

VBAでエクセルからツイッターに投稿

VBAでエクセルからツイッターに連続投稿したいのですが難しいでしょうか?? 試しに作ってみたVBAです。 'モバイルなら投稿できるかも・・・? Sub tweet() Dim ie As InternetExplorer Dim txtAreaInput As HTMLTextAreaElement Set ie = CreateObject("internetExplorer.Application") 'IEを開く○ ie.Visible = True ie.Navigate "https://mobile.twitter.com/compose/tweet" 'ツイッターを開く○ Do While ie.Busy Or ie.ReadyState < READYSTATE_COMPLETE 'ページの読み込みを待つ○ DoEvents Loop Range("B2").Select '画像ファイルのセルをコピー○しかし連続となるとやり方わからないです。 Selection.Copy Set txtAreaInput = ie.Document.getElementsByName("textarea")(0) 'セルを選択× txtAreaInput.Value = ActiveSheet.Cells(2, 1).Value ObjIE.Document.all("camera-input").Click '画像パスを開く×そもそもカメラボタンが消えている?? SendKeys "^v{ENTER}" '画像ファイルのパスをペーストしエンター×効かない?? For Each Anchor In ie.Document.getElementsByTagName("A") 'ツイートを投稿×ボタンが押せない If Anchor.innerText = " ツイート " Then Anchor.Click Exit For End If Next End Sub

質問者が選んだベストアンサー

  • ベストアンサー
  • adfadfa
  • ベストアンサー率66% (2/3)
回答No.3

VBA IE操作にcopyは利用しないですね。 あと、クリック処理の後は、IE読込処理入れないとプログラムが次の処理をしてしまい、うまくいきませんよ。 できるかできないかについては、「できる」ですが、ちょっと手間がかかるので、私はギブです(笑) 下記サイトの主にメールしたらどうですか? ツイッター系のVBA操作も書かれているので、もしかしたら協力してくれるかもしれません。 http://www.vba-ie.net/

その他の回答 (2)

回答No.2

画像は画像URLをつぶやいた方が早いかもしれませんね。 昔は、画像ファイルの選択も自動化できましたが、マイクロソフトのセキュリティ対策としてできなくなっています。

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.1

回答ではないですが以下が参考になるのでは。 http://blog.cles.jp/item/4549 http://news.mynavi.jp/articles/2011/11/04/excelvba/

関連するQ&A

  • Aa

    Microsoft Internet Controlsの参照設定 Option Explicit Sub テキストボックス操作() Dim ie As InternetExplorer Dim txtInput As HTMLInputElement Dim txtOutput As HTMLInputElement Set ie = CreateObject("InternetExplorer.Application") ie.Visible = True ie.navigate "http://book.impress.co.jp/appended/3384/4-2.html" Do While ie.Busy Or ie.readyState < READYSTATE_COMPLETE DoEvents Loop Set txtInput = ie.document.getElementById("Text1") MsgBox txtInput.Value Set txtOutput = ie.document.getElementById("Text2") txtOutput.Value = "VBA からの書き込み" End Sub Sub ラジオボタンの操作() Dim ie As InternetExplorer Dim radio1 As HTMLInputElement Dim radio2 As HTMLInputElement Set ie = CreateObject("InternetExplorer.Application") ie.Visible = True ie.navigate "http://book.impress.co.jp/appended/3384/4-6.html" Do While ie.Busy Or ie.readyState < READYSTATE_COMPLETE DoEvents Loop For Each radio1 In ie.document.getElementsByName("Radio1") If radio1.Checked = True Then MsgBox radio1.Value Exit For End If Next For Each radio2 In ie.document.getElementsByName("Radio2") If radio2.Value = "女" Then radio2.Checked = True Exit For End If Next End Sub Sub ハイパーリンクをクリック() Dim ie As InternetExplorer Dim anchor As HTMLAnchorElement Set ie = CreateObject("InternetExplorer.Application") ie.Visible = True ie.navigate "http://book.impress.co.jp/appended/3384/4-7.html" Do While ie.Busy Or ie.readyState < READYSTATE_COMPLETE DoEvents Loop For Each anchor In ie.document.getElementsByTagName("A") If anchor.innerText = "やきそばパン vs 揚げパン" Then anchor.Click Exit For End If Next End Sub Sub ボタンをクリックボタン2() Dim ie As InternetExplorer Dim button As HTMLInputElement Set ie = CreateObject("InternetExplorer.Application") ie.Visible = True ie.navigate "http://book.impress.co.jp/appended/3384/4-8.html" Do While ie.Busy Or ie.readyState < READYSTATE_COMPLETE DoEvents Loop For Each button In ie.document.getElementsByTagName("INPUT") If button.Type = "button" And button.Value = "ボタン2" Then button.Click Exit For End If Next End Sub

  • VBAでのIE操作で、ENTERキーが押せません

    VBAでIEの操作を勉強中です。 HTMLを整形するホームページ(https://lab.syncer.jp/Tool/HTML-PrettyPrint/)です。 左側のエリアにHTMLを入力すると右側に整形されたHTMLが表示されるものです。 手動ではなんら問題ありません。 作成したVBAから操作すると、左側のエリアにHTMLは入力されますが、右側に表示されません。 入力後にENTERキーが押されれば表示されるというところまでは解っています。 解っているんですが、VBAから押せません。 どなたかご教示願います。 以下作成したVBAです。 ----------------------------------------------------------------------- Sub testIE() Dim IE As Object Dim target As String Dim wText As String target = "https://lab.syncer.jp/Tool/HTML-PrettyPrint/" wText = "<html><head><title>test</title></head><body><h1>test</h1></body></html>" Set IE = CreateObject("InternetExplorer.Application") With IE .Visible = True .Navigate target Do While .Busy = True Or .ReadyState <> 4 DoEvents Loop Do While .Document.ReadyState <> "complete" DoEvents Loop .Document.getElementsByTagName("textarea")(0).Value = wText SendKeys "{ENTER}" MsgBox .Document.getElementsByTagName("textarea")(1).Value End With End Sub

  • Twitterのキャンペーンボタン(?)の投稿方法

    Twitterの企業公式アカウントなどが添付画像の形式のツイート(キャンペーンボタン(?) …名称が分かりません)を投稿しています。 「Tweet #あいうえお」のようなのボタンを押すと同一のツイートが投稿入力画面に表示されます。 企業公式アカウント以外の個人アカウントが任意のテキストと画像を入れてこの形式のツイートを作ることはできますか? 特定の有名企業の不祥事を名指しで皮肉る内容で、個人が作ったとしか思えないものが個人アカウントで投稿されているのを見かけたので、疑問に思いました。

  • エクセルのVBAを使用してのサイト更新に関しての質問です。

    エクセルのVBAを使用してのサイト更新に関しての質問です。 現在、VBAを利用して各サイトの記事更新の一括処理を行っておりますが 画像の貼り付け時に不具合が起こりその解消方法に困っております まず、以下のような方法でサイトにアクセスを行っています。 ----------------------------------------------------------------------- Dim objIE As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Navigate "http://xxxxxxxxxxxxxx.com/" ----------------------------------------------------------------------- そして、ログイン後に以下のような方法でタイトル及び記事の入力を行っています。 ----------------------------------------------------------------------- objIE.document.forms(0).コントロールの名前.Value = タイトルテキスト objIE.document.forms(0).コントロールの名前.Value = 本文テキスト ----------------------------------------------------------------------- その後に画像のフルパスを入力させたいのですが上記方法ではうまくはまらないので 以下の方法で画像のフルパスを貼り付けています。 ----------------------------------------------------------------------- objIE.document.forms(0).Item("コントロールの名前").Select Application.SendKeys 画像のフルパス, True ----------------------------------------------------------------------- 動作環境は WINDOWS XP IE 7 です。 しかし、上記の方法で貼り付けを行った場合、IEがアクティブな状態でない場合に その時アクティブになっているアプリケーションに画像のフルパスが貼り付けられ る状態になっております。 この状態ですと、IEを起動しているPCで他の作業が行えないので今後IEがアクティ ブでない状態でも画像のパスが正常に埋め込まれるようにプログラムを変更したい と考えておりますが、現段階の知識では良い方法がわかりません 抜本的な変更も踏まえてこの問題解消に当たりたいと思っております 良い方法をご存知な方がおられましたら、ご教授いただけないでしょうか 何卒よろしくお願い致します。

  • エクセルのVBAで最終行までループする方法

    エクセルのVBAで最終行までループする方法を教えてください。 下記がコードになります。 Dim objIE As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate Range("A1").Value While objIE.ReadyState <> 4 Or objIE.Busy = True DoEvents Wend Range("B1").value = objIE.Document.all("zoom1").href

  • あるHPにエクセルのVBAから入力したいのですが

    はじめまして。VBAの初心者です。 現在、エクセルVBAを用いてIEにログインするコードを作っています。 で、他のページはうまくいったのですが、 https://www.wnp.waseda.jp/portal/portal.php このホームページだけは他のページと同じやり方でやっても、フォームに文字を入力することができません。 ちなみに以下のコードを記述しましたがうまくいきませんでした。 'IEの起動 Dim objIE As Object '変数を定義します。 Set objIE = CreateObject("InternetExplorer.Application") 'オブジェクトを作成します。 objIE.Visible = True '可視、Trueで見えるようにします。 '処理したいページを表示します。 objIE.Navigate "https://www.wnp.waseda.jp/portal/portal.php" 'ページの表示完了を待ちます。 While objIE.ReadyState <> 4 Or objIE.Busy = True '.ReadyState <> 4の間まわる。 DoEvents Wend objIE.Document.Form1("loginid").Value ="私のID" '←ここでエラーがでます。 (1)なぜ他のHPと同じようにはいかないかという点と、できれば、(2)うまくいくコード、を教えていただければ嬉しいです。 よろしくお願いします。

  • 特定のVBAコードの学習

    こちらのサイトに掲載されているVBAがとても便利だったので、これをとりかかりにExcel VBAの学習をしたいと思っています。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1230707792 行ごとに何を意味するものが書かれているのか、調べながら学習したいのですが、適当なサイトや書籍がありましたら教えてください。 コードも下記に記します。 Sub sample() Const READYSTATE_COMPLETE = 4 Dim ie As Object Dim r As Long Set ie = CreateObject("InternetExplorer.Application") 'ie 'ie.Visible = True 'ieを表示する場合 r = 1 '注目行の初期値 Do While Range("A" & r) <> "" 'A列が空白でない間 ie.navigate Range("A" & r).Value '注目行のA列のURlにアクセス Do While ie.busy Or (ie.readystate <> READYSTATE_COMPLETE): DoEvents: Loop '表示完了待ち Range("B" & r).Value = ie.document.Title '注目行のB列にurlのタイトル書き込み r = r + 1 '注目行+1 Loop ie.Quit 'ieを閉じる Set ie = Nothing End Sub

  • エクセル excelVBA で 自動ログイン

    エクセルvba を使ったシステムトレードをしようと思い 初心者ながらVBAをいじっています. まずはじめにsbi証券に自動ログインをしようとする vbaを作ろうとおもい,インターネットを駆使して コードを書いてみましたが documentメソッドは失敗しましたというエラーがでてしまいます. 自分なりに色々と見返したりしたのですが どこが悪いのかいまいちわかりません. もしよろしければどこが悪いのか指摘していただけないでしょうか? よろしくお願いします. 以下ソース ******************************** Option Explicit Sub test() Dim ie As Object Dim strUserName, strPassword As String strUserName = Range("C5").Value strPassword = Range("C7").Value Set ie = CreateObject("InternetExplorer.Application") ie.Visible = True ie.Navigate "https://k.sbisec.co.jp/bsite/visitor/top.do" IE_Complete ie ' Do While ie.Busy = True '何もしないループ(笑) ' DoEvents ' Loop ie.Document.All.UserName.Value = strUserName 'ユーザー名 ie.Document.All.Password.Value = strPassword 'パスワード ie.Document.All.login.Click 'クリック End Sub Public Sub IE_Complete(ByVal ie As Object) 'IE読み込みが完了するまで待つ Do While ie.Busy = True DoEvents Loop Do While ie.Document.ReadyState <> "complete" DoEvents Loop End Sub

  • ExcelのVBAでHTML内の特定のタグの出現回数を調べたい

    たとえばYahoo!JapanのサイトのHTMLのTDタグの出現回数を調べる場合 下記のVBAに何を付け加えればよいのでしょうか? Sub tagCount() Dim cnt As Integer Dim IE As Object Dim HTML As String Set IE = CreateObject("InternetExplorer.Application") IE.Navigate ("http://www.yahoo.co.jp/") While IE.busy: Wend While IE.Document.readyState <> "complete": Wend HTML = IE.Document.body.innerHTML IE.Quit 'td_count = ここの部分がわかりません。 '文字列の出現回数をカウントする関数はないのでしょうか? MsgBox td_count End Sub ご存知の方がおられましたらご回答をよろしくお願いします。 使用OS:Windows XP 使用ソフト:Microsoft Excel 2003

  • VBAで教えてgooに自動ログインしたい

    Sub 教えてgoo() Dim objIE As Object Const READYSTATE_COMPLETE As Long = 4 Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "https://login.mail.goo.ne.jp/id/authn/LoginStart?Site=oshiete.goo.ne.jp&Success=http%3A%2F%2Foshiete.goo.ne.jp%2F" Do While objIE.Busy = True DoEvents Loop Do Until objIE.ReadyState = READYSTATE_COMPLETE Loop objIE.document.all.all("uname").Value = "gooID" objIE.document.all.all("pass").Value = "gooPW" Do While objIE.Busy = True DoEvents Loop Do Until objIE.ReadyState = READYSTATE_COMPLETE Loop objIE.document.all("ログイン").Click End Sub --------------------------------------------------------- を実行してみても、 objIE.document.all.all("uname").Value = "gooID" objIE.document.all.all("pass").Value = "gooPW" objIE.document.all("ログイン").Click の部分がエラーになってしまいます。 教えてgooは、VBAでログインできないように規制されてるのでしょうか?

専門家に質問してみよう