VBAでライブドアブログの記事を編集する方法

このQ&Aのポイント
  • VBA(エクセル2002)を使用してセルA1の文章を、ライブドアのブログのHTMLタグ編集ができる箇所に貼り付けたい方法について教えてください。
  • VBAでライブドアブログの記事を編集するためのソースコードの詳細な解説を教えてください。
  • ブラウザはIE8を使用しています。
回答を見る
  • ベストアンサー

VBAでライブドアブログの記事を編集したい

VBA(エクセル2002)を使用して セルA1の文章を、ライブドアのブログの HTMLタグ編集ができる箇所に貼り付けたいのですが やり方が分かりません。 objIE.document.getElementById("???").Value = Range("A1") のように、???の部分をいろいろ変えて試しているのですが、うまくいきませんでした。 ※失敗例:objIE.document.getElementById("editor_1").Value = Range("A1") 以下が関係ありそうなライブドアブログの記事作成ページのソースです。 ■ソース1(初めに『HTMLタグ編集』というリンクをクリックしないといけないと思うのですが、方法が分かりません。) <ul class="editorChange" style=""> <li><a id="edit_type_toggle" href="javascript:void(0)" title="HTMLタグ表示に切り替えます" onclick="javascript:pageTracker._trackPageview('clickreport/blog/edit/edit_type_toggle');">HTMLタグ編集</a></li> </ul> ■ソース2( 『name="body"』がブログの文章を書く部分だと思っています。) <div id="editors" class="editorsBox">  <div id="editor_1_w" class="punymce">   <table id="editor_1_c" class="punymce" cellpadding="0" cellspacing="0">    <tbody><tr class="mceToolbar"><td id="editor_1_t"><ul class="punymce" id="editor_1_tb"></ul></td></tr>         <tr class="mceBody"><td><div id="editor_1_b" class="mceBody"><iframe style="width:768px;height:400px" mce_style="width:768px;height:400px" class="punymce" src='javascript:""' id="editor_1_f" frameborder="0"></iframe></div></td></tr>   </tbody>   </table>  <div id="editor_1_p" class="mcePlaceholder"></div> </div> <textarea style="display: none;" name="body" id="editor_1"></textarea> <textarea name="body_more" id="editor_2"></textarea> <textarea name="body_private" id="editor_3"></textarea> ----------------------------------------- 良い方法があれば、宜しくお願い致します。 ブラウザはIE8を使用しています。

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

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.2

#動かないコードを書いてしまったので投稿しなおしました。 IE9 & Excel2003 でイケました。 サイトのポップアップブロックを解除しておいてください。 A1:タイトル A2:記事本文 B1:ログインID B2:パスワード とします。 Option Explicit Sub Macro1()      Dim myURL As String      Dim objIE As Object      Dim i      myURL = "http://livedoor.blogcms.jp/blog/" & [B1] & "/article/edit"      Set objIE = CreateObject("InternetExplorer.Application")      With objIE          .Visible = True          .navigate myURL          While .Busy Or .ReadyState <> 4: DoEvents: Wend 'ログイン          On Error Resume Next          With .document.all              .livedoor_id.Value = [B1]              .Password.Value = [B2]              .loginForm.submit          End With          While .Busy Or .ReadyState <> 4: DoEvents: Wend          On Error GoTo 0                  With .document.all '「HTMLタグ編集」をクリック              If .edit_type_toggle.className = "" Then _                  .edit_type_toggle.Click 'タイトルと記事入力              .Title.Value = [A1]              .editor_1.Value = [A2]          End With 'プレビュー表示          For Each i In .document.getElementsByTagName("input")              If i.Value = "プレビュー" Then: i.Click: Exit For          Next      End With      Set objIE = Nothing End Sub

mesasa
質問者

お礼

かなり悩んでいたのですが、教えて頂いた方法で一気に解決致しました。 本当にありがとうございました。

関連するQ&A

  • インラインフレームについて教えてください。

    すいません、このHTMLのどこに、タグを加えると、背景色を変えることが出来るのでしょうか?(教えてください。) </HEAD> <BODY background="a012bcg.gif"> <DIV style="width : 385px;height : 106px;top : 14px;left : 8px; position : absolute; z-index : 1; " id="Layer2"><TEXTAREA rows="6" cols="45" name="what's new">インライン</TEXTAREA></DIV> </BODY> </HTML>

  • 初心者です。floatでレイアウトしてるのですが、縦線とテーブルの間を広げる方法がわかりません

    floatでレイアウトしてるのですが、縦線とテーブルの間を広げる方法がわかりません メニューとコンテンツが縦線で区切られてるのですが右側のテーブルと縦線が合体してしまいます。 縦線とテーブルの間に少し隙間を作りたいのですが、どうすればいいでしょうか? HTMLとCSSを書いておきます。よろしくお願いします。 ・HTML <div id="contents"> <table> <tr> <td>×</td><td><p>あああ</p> </tr> <tr> <td>○</td><td><p>いいい</p> </tr> <tr> <td>■</td><td><p>ううう</p> </tr> </table> <br><br> a </div> <div id="left-menu"> <ul> <li><a href="index.html" class="a8">メニュー</a></li> <li><a href="league.html" class="a8">メニュー</a></li> </ul> </div> <div id="footer"> ああああああ </div> ・CSS body { width: 900px; } #contents { float: right; width: 740px; border-left: 1px solid #999;} #left-menu { float: left; width: 150px;} #footer { clear: both; }

  • tableがbodyにはみ出る。。

    文章での質問で恐縮ですが、 html例に記載のような形で、レイアウトを作っています。 ヘッダーとフッター、左右のBOXとベタな構成かと思ってますが、 右ボックス(div right-box)内のテーブルの行が増えた際(運用上、可変で増えます)に、 tableがdiv構成(wrap-1,wrap-2,right-box,footer)からはみ出して、bodyの領域に出てしまいます。 スタイルシートでは左右のボックスをfloat left、float rightしていて、 テーブルの行が可変なので、left-box以外にはheightは指定していないです。 ※left-boxのheight指定は100% heightを指定しなければ、基本的に行追加に合わせて、可変で動くような気がしているのですが、 どうもうまくいかないです。 left-boxにheightを指定しているのは、left-box内に定義している要素があり、 heightの指定がない場合に、その要素の高さになってしまうので、 right-boxと同じ高さになるように、100%を指定しています。 分かりにくい質問で申し訳ないですが、 right-boxのheightをtableの行追加に合わせて可変にする方法はないでしょうか? 本来、heightなしで可変になるのであれば、 可変にならない原因の推測をお願いします。 ---ここからhtml例--- <html> <head> </head> <body> <div id="wrap-1"> <div id="header">; </div> <div class="wrap-2"> <div id="left-box"> </div> <div id="right-box"> <table id="table"> <tr> <td><textarea></textarea></td> </tr> <tr> <td><textarea></textarea></td> </tr> <tr> <td><textarea></textarea></td> </tr> <tr> <td><textarea></textarea></td> </tr> <tr> <td><textarea></textarea></td> </tr> <tr> <td><textarea></textarea></td> </tr> </table> </div> </div> <div class="footer clear"> </body> </div> </div> </body> </html>

    • ベストアンサー
    • HTML
  • ie8とCSSとマウスオーバーで何故か表示が消える・・

    テーブルで作った「サイト内リンクのメニュー」を触ると、画面が消えることに気づきました。 ie8では消えますが、Firefoxでは消えません。 私の環境が何かおかしいのかも知れないけど、PCを再起動してみても変わらず。 また、サイト内の他のページも同じメニューをコピペして使っているはずなんですが、そこでは消えません。 それでこの現象に影響ないタグを削除して削除して残ったのが以下。原因は何なんでしょう・・。 アップローダに上げたサンプル http://kissho.xii.jp/1/src/1jyou95949.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML lang="ja-JP"> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Style-Type" content="text/css"> <title>ie8とCSSとonmouseoverで表示が消えるサンプル</title> <!--* (1) CSSを無くすか *--> <style type="text/css"><!-- body { text-align:center; } #outline { width:900px; } .center-left { float:left; width:600px; } .right { float:right; width:100px; } --></style> </head> <body> <div id="outline"><!--* CSSレイアウト開始タグ *--> <div class="header" align="center"><!--* header開始タグ *--> <table><tr><td> <div style="background:#fff;padding:2px;font-size:20pt" onmouseover="this.style.backgroundColor='#ced8ff'" onmouseout="this.style.backgroundColor='#fff'">触ると消える場所</div><!--* (2) onmouseoverを無くすか *--> </td></tr></table> 表示テスト。<!--* (3) ←ここに何も書かなければ、消えない *--> </div><!--* header 終了 *--> <div class="center-left"><!--* CSS本文開始タグ *--> <textarea name="R_text" cols="30" rows="20" style="font-size:30pt">消えるんです ああ、</textarea> </div><!-- end center-left --><!--* CSS本文終了 *--> <div class="right"><!--* CSS右開始タグ *--> <textarea name="R_text" cols="20" rows="10" style="font-size:10pt"> ↓この下の線に沿って消えるんです</textarea> </div><!--* CSS右終了タグ *--> </div><!-- end outline --><!--* CSSレイアウト終了タグ *--> </body> </html>

    • ベストアンサー
    • HTML
  • 外部CSSを使ったテーブルが作りたいのですが・・・。

    以前こちらで質問させて頂いて、「スタイル作りはCSSで」、と教えて頂き、CSSの勉強を始めました。 早速壁に当たっていまして、お知恵を拝借したいです。 外部CSSファイルに、ul.gaibu{color:ff0000}と記すと、 HTMLファイルに<ul class="gaibu">ここは赤で表示</ul> となる事は出来たのですが、 テーブルの場合、 外部CSSファイルにdiv#table{設定値}を記し、 HTMLに<div id=table>とすると、外部CSSの設定値が反映されましたが、 <tr>や<td>の内容をどう設定して、HTMLにどう記載すれば反映するかが分かりません。 因みに外部CSSに tr.table1 {border:1px #333333 solid; line-height:25px; padding-left:10px; paddting-right:10px; text-align:left; vertical-align:middle} と記載し、HTMLの方に <tr><td class="table1">表1</td><tr>としましたが、 CSSの内容は反映されていません。 宜しくお願い致します。

  • <BODY>~</BODY> の中に <STYLE type="text/css">~<STYLE>

    スタイルシートのことで質問があるのですが、 wikiに似たものでxoopsと言うものがあります。 現在このxoopsでサイトを構築しているのですが、サイトの見栄えを決定する「テーマ」と言うものがあります。 この「テーマ」はhtmlとcssで出来ています。 コンテンツの編集にはxoopsにインストールしたエディタ(fckeditor)を使っているのですが(つまりweb上でエディットしています)、その中でスタイルを使う必要が出てきました。 具体的には、1ページの中に表をいくつか入れたいのですが、1つ目は表の幅を画面の100%に、2つ目は画面の50%にしたいのですが、2つ目の表も幅が100%になってしまいました。 原因は「テーマ」に使われているcssに   table {width:100%; ~~ と記述されていることでした。 本来ならば、 <TABLE style="width:50%;">  <TBODY>   <TR>    <TD style="border: 1px #0000ff dotted;">カラム1</TD>    <TD style="border: 1px #0000ff dotted;">カラム2</TD>   </TR>   <TR>    <TD style="border: 1px #0000ff dotted;">カラム3</TD>    <TD style="border: 1px #0000ff dotted;">カラム4</TD>   </TR>  </TBODY> </TABLE> のように書くべき何でしょうが、以下のように書いてもうまく表示されました。 (IE8、GoogleChrome、Firefoxで確認) <STYLE type="text/css"> #sample1 {width:50%; } #sample2 {border: 1px #0000ff dotted; } </STYLE> <TABLE id="sample1">  <TBODY>   <TR>    <TD id="sample2">カラム1</td>    <TD id="sample2">カラム2</td>   </TR>   <TR>    <TD id="sample2">カラム3</td>    <TD id="sample2">カラム4</td>   </TR>  </TBODY> </TABLE> つまり<BODY>~</BODY>のなかにスタイルを記述したのですが、本来はダメですよね? 何か、正当ないい方法はありませんでしょうか? ちなみに、テスト表示したxoopsのサイトをブラウザの「ソースを表示」で見てみると、上記の前後に <!-- content (body) --> <a name="top_of_pico_body" id="top_of_pico_body"></a> <div class="pico_body" id="pico_body">   (省略) </div> が付いていました。

    • ベストアンサー
    • HTML
  • tableタグについて

    tableタグの挙動について教えてください。 下記のタグで、tableの幅は240pxにしたいのですが、 ブラウザ表示(Chrome)では230pxとなりました。 この10pxの隙間はどこで発生しているのでしょうか? どうぞよろしくお願いします。 ーーーーHTMLーーーーー <body style="width:240px;margin:0 auto;"> <div class="list-box"> <table width="240" border="0" cellspacing="0" cellpadding="0"> <tbody><tr> <td>テキスト/td> <td>テキスト/td> </tr> </tbody></table> </div> </body> ーーーーCSSーーーーー .list-box{margin:0 auto;} .list-box table{ width:100%;} .list-box table td:first-child{ background:#900;} .list-box table td:last-child{ background:#069;}

    • ベストアンサー
    • CSS
  • jQueryのhideのやり方について教えてください。

    jQueryのhideのやり方について教えてください。 下記のようなtr要素に触れたときにp要素を表示するといったものです。 ページを読み込んだときは非表示にしておいて触れると表示するようにしたいのですが・・・読み込んだときに非表示にするにはどのようにしたらいいでしょうか? また、p要素に触れると当然ですがp要素が消えてしまいます。 どのように対策したらいいでしょうか? <table class="style1"> <tr id = "tr1"> <td class="style3"></td> <td class="style4"> <img alt="" src="login-blue.gif" style="width: 89px; height: 26px" /></td> <td class="style5"> <img alt="" src="b_count1.gif" style="width: 24px; height: 27px" /></td> <td class="style6"></td> <td><div id = "load1"></div></td> </tr> <tr> <td class="style2" colspan="5"> <p id = "dtl">熱いジュースふりぼる <br /><a href=gazo.htm>すごいジュース捻りだす</a></p> </td> </tr> </table> $("#tr1").hover( function() { $("#dtl").show(); }, function() { $("#dtl").hide(); } );

  • getElementByIdではまってます・・・

    以下のソースを書いて、Firefoxで実行すると 検索ボタンをクリックするとテーブルが表示されるのですが すぐにもとに戻ってしまいます。 すいません。初心者です。 どなたかご教授ください。 言っている意味が分からなかったらすいません。 補足します。 HTMLです。 <td style="width:60px;" align="center"><input style="width:60px" type="submit" id="id" name="id" onclick="effectDetailWindow('detailWindow');" value="検索"></td> <div id="detailWindow" style="display:none;"> <table border="1" cellpadding="3" cellspacing="1" bordercolor="#000000" style="width:460px;"> <tr> <td style="width:80px;" class="table_head"> TEST1 </td> <td style="width:150px;"> <input type="text" size="25" maxlength="50" name="searchtest1" value="{$form.searchtest1}"> </td> <td style="width:80px;" class="table_head"> TEST2 </td> <td style="width:150px;"> <input type="text" size="25" maxlength="50" name="searchtest2" value="{$form.searchtest2}"> </td> </tr> </table> </div> JavaScriptです。 function effectDetailWindow(id) { var obj = document.getElementById(id); if( obj.style.display == "none" ) { obj.style.display = "block"; } else { obj.style.display = "none"; } }

  • ソースの簡略化、、、

    「行追加をクリック」すると、テキスト入力覧が表示されるという仕組みのプログラムです。 詳細: htmlファイルに line_1から~line_20までタグをいっぱい書き、 最初はjavascriptを利用して「XXXX.style.display = 'none';」すべて見せない状態にしまし その状態で、「行追加をクリック」をクリックするとjavascript処理で1つずつ表示されるようにしました。 ここで質問ですが、 20個の同じコードを繰り返しいっぱい書く代わりにこれらをまとめて簡単にすることはできないでしょうか? 例え、40個の表示が必要となれば同じコードを40回も書かなきゃいけないので、、大変です。 <div id="line_1" class="mytext"> <tr> <td width=50> <input type="text" name="Line1"> </td> </tr> </div> <div id="line_2" class="mytext"> <tr> <td width=50> <input type="text" name="Line2"> </td> </tr> </div> <div id="line_3" class="mytext"> <tr> <td width=50> <input type="text" name="Line3"> </td> </tr> </div> <div id="line_4" class="mytext"> <tr> <td width=50> <input type="text" name="Line4"> </td> </tr> </div> ・ ・ ・ ・ <div id="line_20" class="mytext"> > <tr> <td width=50> <input type="text" name="Line20"> </td> </tr> </div> <p class="UP"><a href="#" id="upLine">行追加</a></p> ご教授よろしくお願いします。