ブログ自動投稿ツールの作り方 (Excel 2013 版 ) さとうちはる さんの無料レポート 超簡単! 誰にでも出来る ブログ記事自動投稿ツールを作成する方法をご紹介 アフィリエイトにはめんどくさい作業や退屈な作業がたくさんあります やりたくない作業はツールを使って自動化しよう 文末にはツールの無料プレゼントあります http://mailzou.com/get.php?r=82982&m=15301 には Excel2013での実際の操作手順が掲載されていませんでした そこで Excel 2013で実践してみました その記録です 活用していただければ嬉しいです 麻生ゆき (Excel 2003だけで解説された部分のみです ) ( 前後の共通部分は 無料レポートをご覧下さい )
最初に VBA が使用できるように マクロ と呼ばれるエクセル上のアプリ ( のようなもの ) を準備します Excel メニューの ファイル オプション を選択 表示される Excel のオプション から リボンのユーザー設定 を選択 メインタブ 内の 開発 にチェックを付けて OK をクリック Excel のメニューに 開発 タブが追加されていれば 完了です 表示される Excel のオプション から リボンのユーザー設定 を選択
メインタブ 内の 開発 に マークを入れる 右下の OK をクリック 通常 エクセルの初期設定では セキュリティ機能によってプログラムは実行できないようになっています マクロが実行できるように設定を変更します
開発 タブの マクロのセキュリティ をクリック マクロのセキュリティ を開く
マクロの設定 をクリック 警告を表示して全ての マクロを無効にする を OK ボタンをクリックする
それでは いよいよエクセル VBA の機能を体験してもらいます 1. Excel のシートを開きます 2. 開発 タブをクリック 3. Visual Basic を開きます
画面が開いたら 挿入 タグから 標準モジュール を選択
ここにプログラムのコードを 貼り付けます 以下のサンプルコードをコピーして 試してみてください
入力したら ツール マクロ を選択 ( サンプルコード1)( コピペできます ) ~~~~~ Sub メッセージボックスを表示する () Msgbox アフィリエイトで稼ぐ End Sub ~~~~~
マクロ名を選び 実行 を選択
アフィリエイトで稼ぐ と 表示されました 今回のプログラムはたった1 行だけなので 単にメッセージボックスが表示されただけでしたが プログラムはいくらでも行数を増やせるので アイデア次第でいろいろなことが出来るようになります
次は もう少し動きのあるプログラムを試していただきます ( サンプルコード 2) 最初に文字を入力して ボタンの選択によって処理が分かれるように作ってあります 少しプログラムコードについて 上から順に説明していきます Sub サブルーチンの略で ある共通の処理を1つにまとめたものを呼びます Sub ~ End Sub までが ひとつのマクロになります Sub ~ End Sub でくくられたそれぞれの指令文には どの作業をどういう手順で行なうかということが記されています
Dim Res As Integer Dim は 言語にもよりますが多くは dimension ( ディメンション ) の略語で 変数の宣言等で使われます integer は整数の意味となります よってこの場合は Dim Res As Integer とは Res を整数として扱う ということになります Res = MsgBox(" お金を稼ぐことは好きですか?", vbyesnocancel) MsgBox は その名の通りメッセージボックスで 入力した値に対して 次の処理の内容を表示して 処理の続行を はい いいえ で促したり 処理の結果を表示したりします よってこの場合は " お金を稼ぐことは好きですか?" というメッセージと文字入力フォーム さらに はい いいえ キャンセル のボタンを表示して 入力された文字をRes の値として扱います 次の If Res <> vbcancel Then から 11 行目までの End If までは まとめて処理されます If~Then~Else~End If は If 文に設定されている条件式を判定して その結果が真 (True) の場合はThen 以降の処理を実行して 偽 (False) の場合はElse 以降の処理を実行するようになっています それぞれの行で処理される内容の説明は 上記のプログラムコード内に追記していますので そちらを参照し
てみてください ~~~~~ ( コピペできます ) Sub メッセージボックスの利用 () Dim Res As Integer Res = MsgBox(" お金を稼ぐことは好きですか?", vbyesnocancel) ' 文字を入力 If Res <> vbcancel Then ' キャンセル がクリックされた時 プログラム終了 If Res = vbyes Then ' はい がクリックされた時 次の行を実行する MsgBox " アフィリエイトなら稼げますよ ", vbyesno Else ' いいえ がクリックされた時 次の行を実行する MsgBox " ツールがあれば作業がラクになりますよ ", vbyesno End If MsgBox " ご回答ありがとうございました " End If End Sub ~~~~~
次のサンプルコード 3 は エクセルのセルに入力された数値を処理するものです エクセルの A1 列に適当に文字や数字を 前もって 10 個ほど入力しておいて ください ( サンプルコード 3) は データの間に一行ずつ空白行を挿入するプログラムの例になります
~~~~~ ( コピペできます ) Sub 一行ずつ空白行を挿入 () Dim i As Long Const mycol = 1 ' 最終行を判断するための列 For i = Cells(Rows.Count, mycol).end(xlup).row To 2 Step -1 Rows(i).Insert Next i End Sub ~~~~~ 以上 サンプルコード (1) から (3) まで 動かすことができたでしょうか 以上のサンプルコードは すべて エクセルのシート上のみでの動作でした が 実は インターネットの画面 ( インタネットエクスプローラー ) を操作することもできるのです では 実際にやってみましょう ( サンプルコード4) は 郵便番号を入力して Google マップを表示させる方法です
( サンプルコード 4) ~~~~~ ( コピペできます ) Sub 郵便番号でGoogleマップを表示 () Dim 郵便番号 As String Dim SPDY_URL As String Dim Res As Integer 郵便番号 = Application.InputBox(" 郵便番号を入力してください ") SPDY_URL = "http://maps.google.co.jp/maps?f=q&hl=ja&q=" _ & 郵便番号 & "&z=" & "16" CreateObject("WScript.Shell").Run SPDY_URL 'Google Map を表示する End Sub ~~~~~
すると 次に下のような画面が出てきましたので Japan と入力してみました すると 簡単なのに なかなか面白いですね このように いろいろなプログラムを試していると その可能性の大きさを感じていただけたのではないかと思います レポートで紹介したようなサンプルコードは ネットで検索していただくと たくさん出ています ぜひ いろいろと試してみてくださいね
VBA について気になることを調べて 知識が徐々に増えてくると 自分が日々やっているアフィリエイトの作業をどうにか自動でできる方法は無いかと考えるようになり 前出のGoogleマップのコードを試した際には ブログの記事を自動で投稿することも 出来るはずだと考えるようになりました 先のサンプルコード4では ボックスに入力した7 桁の数字から グーグルマップのサイトを開くことができたので これを少し応用すれば簡単にできると思いました エクセルで ブログのURL やタイトル等を入力したシートを作成して そのデータを元にVBA でブログサービスのサイトを操作するプログラムを作れば ブログの記事を自動で投稿できるはずだと予想しました VBA は マウスやキーボードで操作することは基本的に何でもできると 最初の頃にどこかのサイトで読んでいたから きっとできるはずだと考え 試行錯誤しながらやっとできたのが次のコードです レポートを作成しようとした際は 出来る限り簡潔にしようと思っていたのですが どうしても書いておきたいことが追加で出てきて 長くなってしまいました やっとのことで ブログ記事を投稿するためのコード紹介のところまでやってきました もう一息です がんばりましょう これまでを同じように 以下のコードをVBAのコード編集画面に貼り付けてください
( サンプルコード 5) ブログ自動投稿ツール ~~~~~ Const FC2ADDRESS = 3 Const FC2MAILADD = 4 Const FC2PASS = 5 Const FC2TITLE = 6 Const FC2CATEGORYCHOICE = 7 Const FC2ARTICLE = 8 Const FC2CATEGORY = 9 Sub ブログ記事投稿 () '[--- メインプログラム---] '[--- プログラムで使用する変数を設定---] Dim IEobj As Object ' オブジェクト変数として定義 Dim row As Integer ' 整数として定義 Dim sitehtml As String ' 文字列として定義 Dim index As Integer ' 整数として定義 '[--- プログラムで使用する変数を設定---] '[--- 前準備 ---] Set IEobj = CreateObject("InternetExplorer.Application") 'IEを操作する準備 row = 6 ' エクセルのセルをD6 の位置にする '[--- 前準備 ---] '[--- 記事投稿メインプログラム (Do~ の間をくり返し )---] Do While Cells(row, FC2MAILADD).Text <> "" URL = "http://id.fc2.com/logout.php" ' まずは一旦ログアウト IEobj.Navigate URL ' 改めてログインする IEobj.Application.Visible = True ' ブログサイトを表示 '[--- サイトの完全表示を待つ---]
Do While IEobj.Busy = True 'IEを表示する Do While IEobj.Document.ReadyState <> "complete" ' 完全に表示されるまで待機 '[--- サイトの完全表示を待つ---] '[--- ブログサイトにログインして投稿処理する---] URL = "http://id.fc2.com/" ' ブログサイトのURL を指定 IEobj.Navigate URL ' 指定したURL のサイトを表示 IEobj.Application.Visible = True ' 確認できるようにIE を表示 '[--- サイトの完全表示を待つ---] Do While IEobj.Busy = True 'IEを表示する Do While IEobj.Document.ReadyState <> "complete" ' 完全に表示されるまで待機 '[--- サイトの完全表示を待つ---] IEobj.Document.all.email.Value = Cells(row, FC2MAILADD).Text ' メールアドレス入力 IEobj.Document.all.pass.Value = Cells(row, FC2PASS).Text ' パスワード入力 IEobj.Document.forms(0).Submit ' ログインボタンをクリック '[--- サイトの完全表示を待つ---] Do While IEobj.Busy = True 'IEを表示する Do While IEobj.Document.ReadyState <> "complete" ' 完全に表示されるまで待機
'[--- サイトの完全表示を待つ---] IEobj.Navigate "http://blog.fc2.com/" ' ブログサービスのトップ画面を表示 '[--- サイトの完全表示を待つ---] Do While IEobj.Busy = True 'IEを表示する Do While IEobj.Document.ReadyState <> "complete" ' 完全に表示されるまで待機 '[--- サイトの完全表示を待つ---] ' ブログの管理画面を表示 IEobj.Navigate "https://secure.id.fc2.com/?done=blog&switch_language=ja" '[--- サイトの完全表示を待つ---] Do While IEobj.Busy = True 'IEを表示する Do While IEobj.Document.ReadyState <> "complete" ' 完全に表示されるまで待機 '[--- サイトの完全表示を待つ---] ' 新しい記事を投稿する画面を表示 IEobj.Navigate "http://admin.blog.fc2.com/control.php?mode=editor&process=new" '[--- サイトの完全表示を待つ---] Do While IEobj.Busy = True 'IEを表示する Do While IEobj.Document.ReadyState <> "complete" ' 完全に表示されるまで待機
'[--- サイトの完全表示を待つ---] '[--- 各フォームにデータを入力する---] ' エクセルシートのタイトル欄と記事欄が空欄になってないか確認 If Cells(row, FC2TITLE).Value <> "" And Cells(row, FC2ARTICLE).Value <> "" Then '[--- 各フォームにエクセルのデータを入力する---] ' 記事タイトルの入力 IEobj.Document.forms.Item(0).elements.Item(0).Value = Cells(row, FC2TITLE).Value ' カテゴリーの入力 IEobj.Document.forms.Item(0).elements.Item(1).Value = Cells(row, FC2CATEGORY).Value ' 記事本文の入力 IEobj.Document.forms.Item(0).elements.Item("entry[body]").Value = Cells(row, FC2ARTICLE).Value '< 記事を保存する > ボタンをクリック IEobj.Document.Script.setTimeout "postentry();return false;", 200 '[--- 各フォームにエクセルのデータを入力する---] '[--- エクセルの入力済みのデータを削除---] Cells(row, FC2TITLE).Value = "" ' エクセルのタイトル欄を空白にする Cells(row, FC2CATEGORYCHOICE).Value = "" ' エクセルのカテゴリー欄を空白にする Cells(row, FC2ARTICLE).Value = "" ' エクセルの記事本文欄を空白にする '[--- エクセルの入力済みのデータを削除---] '[--- IEページ遷移時の警告を回避する---] Application.Wait Now() + TimeValue("00:00:05") ' ここでしばらく待機 ( 警告ウィンドウ対策 ) SendKeys "%{S}", True ' 警告ウィンドウの ページに留まる (S) をクリック '[--- IEページ遷移時の警告を回避する---] '[--- サイトの完全表示を待つ---] Do While IEobj.Busy = True 'IEを表示する Do While IEobj.Document.ReadyState <> "complete" ' 完全に表示されるまで待機
'[--- サイトの完全表示を待つ---] End If '[--- 各フォームにデータを入力する---] '[--- ブログサイトにログインして投稿処理する---] row = row + 1 ' エクセルの次の行に移動する ' 最初の行に戻る ( エクセルの入力されている最後の行までくり返し ) '[--- 記事投稿メインプログラム (Do~ の間をくり返し )---] '[--- 後処理 ( ログアウト )---] URL = "http://id.fc2.com/logout.php" ' ログアウトする IEobj.Navigate URL '[--- サイトの完全表示を待つ---] Do While IEobj.Busy = True 'IEを表示する Do While IEobj.Document.ReadyState <> "complete" ' 完全に表示されるまで待機 '[--- サイトの完全表示を待つ---] Set IEobj = Nothing ' 終了する '[--- 後処理 ( ログアウト )---] '[--- メインプログラム---] End Sub ~~~~~ 上記のコードを貼り付けた後は エクセルのシートを準備します 事前に FC2 ブログ ( ブログ名 サイト URL ログインパスワード メールアドレス ) を開設して 記事が
投稿できるように準備しておいてください ========== ここから先は さとうちはる さんの無料レポート 超簡単! 誰にでも出来る ブログ記事自動投稿ツールを作成する方法をご紹介 アフィリエイトにはめんどくさい作業や退屈な作業がたくさんあります やりたくない作業はツールを使って自動化しよう 文末にはツールの無料プレゼントあります http://mailzou.com/get.php?r=82982&m=15301 の11ページへ戻ってくださいね 11ページの下の方にはエクセルのサンプルファイルを用意してくださっていますから ダウンロードして利用なさると便利でしょう
以上 実際に Excel2013 でも実践してみましたが 自動投稿されていました ぜひ 作業を効率化して アフィリエイトの収入を上げていきましょう 麻生ゆき e-mail: asoh007@yahoo.co.jp