記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
つい最近「X」に名前が変わったTwitter。
実は当ブログでもTwitterは利用していて、筆者が「情報1」の基本単語を1日につき1つツイートしています。
ただ、それも地味に手間なんですよね。
情報1の語句をツイートするので、その中身は
- 語句
- 語句の解説
の2種です。これらは別途Excelにまとめているのですが、
それをブラウザで立ち上げてコピペするのも実は一手間・・・。
そこでそれを自動化できないかと考えました。しかし自動化の手順を調べると
- TwitterAPI
- Pythonでコードを組み立てる
- SeleniumBasic
などが見つかりましたが…
よくわからん!
そのため、もう少し挙動を絞り、マクロを作ろうと考えました。
その際にまた役立てたのが、いつも通り、「ChatGPT」。
ChatGPTと協力して以下のようなマクロを作りました。
- ボタンを押したら指定回数だけ、Excelに書いたツイート内容をコピーしツイート下書き画面に貼り付ける
挙動はこんな感じです。
動画
この記事では、マクロ作成にあたりChatGPTに投げたプロンプトやVBAのコードを紹介しています。
TwitterAPIやPythonがわからない方でも大丈夫!ぜひ最後まで読んでみてください。
目次
あらためてマクロを製作した経緯は
1日1ツイートする際に、
- 語句・語句の解説をまとめているExcelの内容を
- ブラウザでTwitterを立ち上げる
- ツイート(下書き)画面にコピペする
この流れが実は一手間でこれを解消するためでした・・・。
つまり、作業を実行する際には、
- Excelにツイートしたい内容が記されている(Excelのセルをコピペするため)
- Google ChromeでTwitterに事前にログインしておく
ことになります。
ですから、この2つの状況を前提として、この状況で動くマクロに仕上げてもらう必要があります。
そのためChatGPTに投げかける際には「Excelがあること」「GoogleChrome」を使うことはプロンプトに含めないといけません。
ChatGPTに相談する際には、作業手順を整理して、「その作業を網羅する内容のマクロを作って欲しい」と投稿した方が効果的なのは過去の経験からも明らかです。
▼こちらの記事で紹介しています。
ChatGPT×PowerPointで爆速で画像を作る方法そのため、作業を整理してみました。
- Excelのリストから語句番号を選択肢、その番号の語句と解説を表示させる(VLOOKUP関数を使用)
- 語句と解説をまとめたセルをコピー
- Twitterの下書き画面を表示
- 下書き画面に②でコピーした内容を貼り付け
- ツイート投稿日時を予約→予約投稿設定完了
⑤についてはVBAで実現できるかは分かりませんので①〜④を叶えるためにそのままプロンプトへ
以下の処理の手順を一連の流れとしてVBAでまとめることができますか?
①ExcelのTwitter用シートのC12セルの内容をコピー
②いま起動しているGoogleChromeで「https://twitter.com/compose/tweet」にアクセスする
③表示される下書き部分に①でコピーした内容をペーストする
はい、VBAを使用して以下の手順を一連の流れとしてまとめることができます。
そして出てきたコードがこちら。
Sub TweetWithPython()
Dim tweetText As String
Dim chromePath As String
Dim tweetURL As String
Dim pythonPath As String
Dim scriptPath As String
Dim cmd As String
' Twitter用シートのC12セルの内容を取得
tweetText = Sheets("Twitter用シート").Range("C12").Value
' クリップボードにコピー
AlternativeCopyToClipboard tweetText
' Google Chromeのインストールパスを設定(自分の環境に合わせて変更してください)
chromePath = "C:\Program Files\Google\Chrome\Application\chrome.exe"
' Twitterの投稿画面のURLを指定
tweetURL = "https://twitter.com/compose/tweet"
' Google ChromeでURLを開く
Shell """" & chromePath & """ """ & tweetURL & """", vbNormalFocus
' 2秒待機(Twitterの投稿画面が表示されるまでの待ち時間)
Application.Wait Now + TimeValue("00:00:02")
' ブラウザ上でペーストする(Ctrl+Vを送信)
SendKeys "^{v}"
' Pythonのインストールパスを設定(自分の環境に合わせて変更してください)
pythonPath = "C:\Users\(ユーザー名)\AppData\Local\Programs\Python\Python39\python.exe"
' Pythonスクリプトのファイルパスを設定
scriptPath = "C:\Users\(ユーザー名)\Desktop\pythontest\twitter_post.py"
' コマンドを組み立てる
cmd = """" & pythonPath & """ """ & scriptPath & """ """ & tweetText & """"
' Pythonスクリプトを実行
Call Shell(cmd, vbNormalFocus)
End Sub
Sub AlternativeCopyToClipboard(text As String)
' クリップボードにテキストをコピーする代替方法
Dim dataObj As Object
Set dataObj = CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
dataObj.SetText text
dataObj.PutInClipboard
Set dataObj = Nothing
End Sub
' Google Chromeのインストールパスを設定(自分の環境に合わせて変更してください)
chromePath = "C:\Program Files\Google\Chrome\Application\chrome.exe"
この部分については、実際にエクスプローラーからCドライブを辿っていってもらい、「chrome.exe」ファイルが保存されているフォルダを見つけて、そのパスを入力してください。
これでツイート一回分は実行できました。
あとはこの全体の処理を指定した回数だけ繰り返すように機能追加します。
以下の要件を満たすように追記してください。
【要件】Twitter用シートのD2に指定された回数だけ、マクロ(TweetWithPython())を実行する
了解しました!指定された回数だけTweetWithPython()
マクロを実行するために、For
ループを使用します。以下が更新されたVBAコードです。
Sub TweetMultipleTimes()
Dim tweetText As String
Dim tweetCount As Integer
Dim i As Integer
' Twitter用シートのD2セルの回数を取得
tweetCount = Sheets("Twitter用シート").Range("D2").Value
' ツイート内容を取得
tweetText = Sheets("Twitter用シート").Range("C12").Value
' 指定された回数だけツイートを繰り返す
For i = 1 To tweetCount
TweetWithPython tweetText
' Twitter用シートのD2セルの値を1増やす
Sheets("Twitter用シート").Range("D2").Value = Sheets("Twitter用シート").Range("D2").Value + 1
Application.Wait Now + TimeValue("00:00:02") ' ツイート間の待ち時間(必要に応じて調整してください)
Next i
End Sub
Sub TweetWithPython(tweetText As String)
' 以下は前述のTweetWithPython()マクロのコードをそのまま記載します(省略しています)
End Sub
ChatGPTが提案してくれたコードでは似た箇所があったりと少しリファクタリングできるなと感じたので、
ひとつの関数にまとめました。そうして仕上がったコードがこちら。
これで完成です。
Twitterでプチ自動化するマクロを製作した話を紹介しました。
- ツイート内容を記しているExcelがある
- Google ChromeでTwitterに事前にログインしておく
これらの前提が必要ですが、
TwitterAPIもPythonやSeleniumBasicの知識を使わずに「Twitterプチ自動化」に成功しました!
これで作業効率を圧倒的に短縮することができます。
終わり部分→プロンプトエンジニアリングのくだり
スポンサーリンク