「調べたキーワードをExcelに貼り直すのが手間・・」

普段からExcelでキーワード管理をしていると、このような悩みを感じることはありませんか?
実はこれらの悩みは、普段お使いの「Excel」と「ラッコキーワードAPI」を連携させることで解決できます。
この2つを連携させれば、ラッコキーワードの画面操作を一切行わずに、Excelのシートへ直接キーワードを取得することが可能です。
本記事では「Excel × ラッコキーワードAPI」の連携方法を、初心者向けに解説します。

なお、コードはAIに書かせるためプログラミング知識は一切不要です。
- ラッコキーワードのスタンダードプラン以上を契約していること
- Windows版のデスクトップExcel(Microsoft 365 / Excel 2019以降など)をお持ちであること
※Web版Excel・Mac版Excelでは、本記事で紹介するコードは動作しません。
Windows版Excelをお持ちでない場合はGoogleスプレッドシートとラッコキーワードAPIの組み合わせをお試しください。
そもそも「API」とは?

API(エーピーアイ)とは「Application Programming Interface」の略で、アプリ同士がデータをやり取りするための窓口のことです。
たとえばラッコキーワードを普段使うときは、Webブラウザで画面を開いて検索ボタンをクリックし、結果を目で見て確認します。
一方でAPIを使うと、「画面操作」を一切行わずに別のアプリ(今回はExcel)から直接ラッコキーワードのデータを取得できます。
ラッコキーワードAPIで取得できる主なデータは以下の通りです。
- サジェストキーワード
- 関連キーワード
- LSI/PAA
- よくある質問検索
- 同時ランクインキーワード
- 一括キーワード調査
- 獲得キーワード調査
- 集客コンテンツ検索
- 見出し抽出
- 共起語
- 検索順位チェック
取得できるデータの詳細はAPIドキュメントでご確認いただけます。
ラッコキーワードAPIはスタンダードプラン(月額2,475円〜)以上で利用可能です。
※上記以外(フリー(無料)プラン・エントリープラン・ライトプラン・旧プラン)ではご利用いただけません。
Excel×ラッコキーワードAPIでできること
- 複数のキーワード情報をまとめて取得できる:ラッコキーワードの画面では「1つのキーワード × 1つの機能」ずつしか検索できませんが、API連携なら複数まとめて取得できます
- シートに直接反映・一括管理できる:CSVをダウンロードして取り込む作業が不要になり、Excel上でそのまま関数やピボットテーブルにつなげられます
- 取得条件をコードに固定できる:件数・並び順・フィルタを毎回指定し直す必要がなく、いつでも同じ条件で取得できます

次のステップで、実際の連携手順を見ていきましょう。
連携方法
ここからは以下の手順に沿って、Excel × ラッコキーワードAPIを連携していきます。
今回は、ラッコキーワードAPIとVBAを使用して「関連キーワードをExcelに取得する」フローを例にご紹介します。
ステップ1:APIキーを準備する
まず最初に、ラッコキーワードの管理画面からAPIキーを発行します。
APIキーとは、ExcelがラッコキーワードAPIにアクセスする際の「認証用のパスワード」のような役割を持つ文字列です。
【発行手順】
※クリックすると画像を拡大できます
APIキーは他人に知られないよう厳重に管理してください。誤って公開リポジトリやSNSに投稿したり、APIキーを書き込んだExcelファイルをそのまま共有したりすると、第三者に不正利用される恐れがあります。
ステップ2:VBAを実行する
APIキーを取得できたら、実際にVBAを実行して「関連キーワード」をExcelに取得してみましょう。
【手順】
※クリックすると画像を拡大できます
VBAとは、Excelに標準で搭載されているプログラミング機能のことです。追加のインストールや外部サービスの登録は必要ありません。
STEP4で追加した標準モジュールの白い画面に、以下のVBAコードをすべてコピー&ペーストします。
Option Explicit
'==========================================
' ラッコキーワードAPI 設定
'==========================================
' 発行したAPIキーを、以下の「YOUR_API_KEY_HERE」に置き換えてください。
Private Const API_KEY As String = "YOUR_API_KEY_HERE"
' エンドポイント:関連キーワード取得
Private Const API_URL As String = "https://api.rakkokeyword.com/v1/related-keywords"
'------------------------------------------
' メイン処理(このマクロを実行します)
'------------------------------------------
Public Sub GetRelatedKeywords()
Dim keyword As String
keyword = Trim$(InputBox("取得したい関連キーワードを入力してください:", "ラッコキーワードAPI"))
If keyword = "" Then Exit Sub
If API_KEY = "YOUR_API_KEY_HERE" Then
MsgBox "コード先頭の API_KEY を、発行したAPIキーに置き換えてください。", vbExclamation
Exit Sub
End If
' 検索条件の指定(並び順:月間検索数の多い順/取得件数:100件)
Dim payload As String
payload = "{""keyword"":""" & JsonEscape(keyword) & """," & _
"""sortBy"":""searchVolume""," & _
"""orderBy"":""desc""," & _
"""limit"":100}"
On Error GoTo ErrHandler
' API通信の実行
Dim http As Object
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "POST", API_URL, False
http.setRequestHeader "Content-Type", "application/json;charset=UTF-8"
http.setRequestHeader "Accept", "application/json"
http.setRequestHeader "X-API-Key", API_KEY
http.send payload
Dim body As String
body = Utf8Text(http.responseBody)
' エラーハンドリング
If http.Status <> 200 Then
MsgBox "通信に失敗しました。" & vbCrLf & _
"ステータスコード: " & http.Status & vbCrLf & _
"エラー詳細: " & Left$(body, 500), vbExclamation, "APIエラー"
Exit Sub
End If
' JSONを「キーワード+月間検索数」の行データに変換
Dim tsv As String
tsv = ItemsToTsv(body)
If Len(tsv) = 0 Then
MsgBox "関連キーワードが見つかりませんでした。", vbInformation
Exit Sub
End If
' シートへの書き込み準備(1行目はヘッダー)
Dim lines() As String, cols() As String, i As Long
lines = Split(tsv, vbLf)
Dim out() As Variant
ReDim out(1 To UBound(lines) + 2, 1 To 2)
out(1, 1) = "キーワード"
out(1, 2) = "月間検索数"
For i = 0 To UBound(lines)
cols = Split(lines(i), vbTab)
out(i + 2, 1) = cols(0)
If cols(1) = "" Then
out(i + 2, 2) = "データなし"
Else
out(i + 2, 2) = CDbl(cols(1))
End If
Next i
' シートへの書き込み実行(現在のシートを上書き)
With ActiveSheet
.Cells.ClearContents
.Range("A1").Resize(UBound(out, 1), 2).Value = out
.Rows(1).Font.Bold = True
.Columns("A:B").AutoFit
End With
MsgBox "データの取得と書き込みが完了しました!(" & (UBound(lines) + 1) & "件)", vbInformation
Exit Sub
ErrHandler:
MsgBox "処理中にエラーが発生しました:" & vbCrLf & Err.Description, vbCritical
End Sub
'------------------------------------------
' 補助関数
'------------------------------------------
' 入力文字列をJSONの値として安全な形に変換する
Private Function JsonEscape(ByVal s As String) As String
s = Replace(s, "\", "\\")
s = Replace(s, """", "\""")
JsonEscape = s
End Function
' レスポンス(バイト列)をUTF-8の文字列に変換する(日本語の文字化け対策)
Private Function Utf8Text(ByVal bin As Variant) As String
Dim st As Object
Set st = CreateObject("ADODB.Stream")
st.Type = 1
st.Open
st.Write bin
st.Position = 0
st.Type = 2
st.Charset = "utf-8"
Utf8Text = st.ReadText
st.Close
End Function
' JSONを解析し「キーワード[TAB]月間検索数」を1行ずつ並べた文字列を返す
Private Function ItemsToTsv(ByVal jsonText As String) As String
Dim ht As Object, js As String
Set ht = CreateObject("htmlfile")
ht.Write "<meta http-equiv=""x-ua-compatible"" content=""IE=9"">"
js = "function toTsv(s){" & _
"var o = JSON.parse(s);" & _
"var a = (o.data && o.data.items) ? o.data.items : [];" & _
"var r = [];" & _
"for (var i = 0; i < a.length; i++) {" & _
"var m = a[i].metrics || {};" & _
"var v = (m.searchVolume === null || m.searchVolume === undefined) ? '' : m.searchVolume;" & _
"r.push(a[i].keyword + '\t' + v); }" & _
"return r.join('\n'); }"
ht.parentWindow.execScript js, "JScript"
ItemsToTsv = ht.parentWindow.toTsv(jsonText)
End Function
貼り付けたら、以下の手順に沿って保存・実行すると、関連キーワードをExcelに取得できます。
※クリックすると画像を拡大できます
保存した.xlsmファイルを開き直すと、画面上部に「セキュリティの警告 マクロが無効にされました」と表示されることがあります。ご自身で作成したファイルであることを確認のうえ、「コンテンツの有効化」をクリックしてください。
オリジナルのVBAコードを生成してみよう
VBAコードは、AI(ChatGPT・Geminiなど)に「APIドキュメント(JSON)+以下プロンプト」を渡すだけで簡単に生成できます。
プロンプトの【やりたいこと】をご自身の目的に合わせて書き換えれば、用途に合ったオリジナルのVBAコードを作成することが可能です。

どの機能を使うか・どんな項目を出すかはAIが判断し、情報が足りなければAIのほうから質問してくれるので、機能名を知らなくても大丈夫です。
ラッコキーワードAPIの仕様に基づき、Excel VBAのコードを作成してください。
【やりたいこと】
※この欄だけを、自分が実現したいことに書き換えてください。
AI向け:空欄の場合、読者に何がやりたいのかをヒアリングしてください。
【あなたに判断してほしいこと】
・添付したAPIドキュメントの中から、【やりたいこと】を実現するのに最も適した機能を選んでください
・取得条件(取得件数・並び順・絞り込みなど)と、シートに出力する項目も、【やりたいこと】に合うものを提案してください
・1つの機能では足りない場合は、複数の機能を組み合わせた構成を提案してください
・どの機能をなぜ選んだのか、取得したデータをどう見ればよいのかを、コードの前に簡潔に説明してください
【判断に迷う場合】
・【やりたいこと】だけでは決められない点(調べたいキーワード、取得件数、出力したい項目、対象の検索エンジンなど)があれば、コードを書く前にまとめて質問してください
・こちらはプログラミングの知識がないため、専門用語を使わずに質問してください
【動作環境】
・Windows版のデスクトップExcel
・参照設定(外部ライブラリの追加)は使わず、CreateObjectだけで動くコードにしてください
【期待する動作】
・マクロを実行すると、必要な入力(キーワードなど)を求めるダイアログが表示される
・入力するとデータを取得し、結果をシートに書き出す
・1行目の見出し(ヘッダー)はコードで自動的に作ってほしい
【その他のお願い】
・APIキーを入れる場所は、コードの一番上に「YOUR_API_KEY_HERE」のように分かりやすく定義し、後ほど手動で書き換えやすいようにすること
・日本語が文字化けしないよう、レスポンスはUTF-8として読み取ること
・VBAには標準のJSON解析機能がないため、JSONを解析する処理もコード内に含めること
・エラーが起きたときは、原因が分かるメッセージを表示すること
・関数名や変数名などは、AI側で分かりやすいものにしてください
「やりたいこと」の書き換え例
【やりたいこと】には、今困っていることと、それをどう判断したいのかを普段の言葉で書けば大丈夫です。
「どの機能でどのデータを取るか」まで書く必要はありません。近いものを1つ選んで、以下の文章をそのまま【やりたいこと】欄に貼り付けてみてください。
①何を書けば読まれるのか分からない
「〇〇」というテーマでブログを運営しています。
次にどんな記事を書けば読んでもらえるのかが分からず、毎回ネタ出しに時間がかかっています。
記事のテーマ候補をExcelに一覧で出して、その中から次に書くものを選べるようにしたいです。
②YouTubeで伸びる動画の企画を考えたい
「〇〇」というジャンルでYouTubeに動画を投稿しています。
視聴者に見てもらえそうな企画を知りたいので、次に撮る動画のテーマ候補をExcelに一覧で出したいです。
③記事を書く順番を決められない
書きたい記事のキーワード候補がたくさんあり、どれから手をつけるべきか決められません。
キーワードはExcelのA列に書き出してあります。
それぞれ「どれくらい人を集められそうか」「競合が強くて埋もれてしまわないか」を見比べられる形にして、着手する順番を決めたいです。
④サイトのアクセスが伸び悩んでいる
自分でサイトを運営していますが、アクセスが思うように伸びません。
すでにある記事のうち、どれに手を入れれば効果が出そうかを判断したいので、今のサイトの状況が分かる情報をExcelにまとめたいです。
⑤新しい商品・サービスの企画を考えたい
「〇〇」という分野で、新しい商品やサービスを企画しようとしています。
買う人が何に困っていて、何を気にしているのかを知りたいので、企画や販売ページを考える材料になる情報をExcelにまとめたいです。
- エラー内容をAIに相談する:表示されたエラーメッセージをそのままコピペするか、エラー画面のスクリーンショットを添付して、生成元のAIに「このエラーを修正してください」と依頼します
- APIドキュメントを再度添付する:APIエラー(ステータスコード400・403など)が原因と思われる場合は、APIドキュメント(JSON)を再添付し「仕様に沿って修正してください」と依頼するとスムーズです

まずは取得件数や並び順など、簡単な部分から書き換えて試してみましょう!

あとは自分の作業に合わせて増やしていくだけです!
- エラー内容をAIに相談する:表示されたエラーメッセージをそのままコピペするか、エラー画面のスクリーンショットを添付して、生成元のAIに「このエラーを修正してください」と依頼します
- APIドキュメントを再度添付する:APIエラー(ステータスコード400・403など)が原因と思われる場合は、APIドキュメント(JSON)を再添付し「仕様に沿って修正してください」と依頼するとスムーズです
よくある質問
APIキーを入力したのにエラーが出ます
APIキーの前後に余分な空白が入っていたり、ダブルクォーテーション(”)を含めてコピーしている可能性があります。
コードの「YOUR_API_KEY_HERE」の部分のみを置き換え、APIキー文字列だけが残るようにしてください。
それでも解決しない場合は、ラッコキーワードの契約管理画面でAPIキーが有効になっているかご確認ください。
マクロが実行できません
以下の3点をご確認ください。
- ファイルが「Excel マクロ有効ブック(*.xlsm)」で保存されているか(通常の.xlsxではマクロが保存されません)
- ファイルを開いた際の「セキュリティの警告」で「コンテンツの有効化」をクリックしたか
- インターネットからダウンロードしたファイルの場合、ファイルを右クリック>「プロパティ」>下部の「許可する」にチェックを入れたか
Mac版・Web版のExcelでも使えますか?
いいえ、本記事で紹介しているコードはWindows版のデスクトップExcel専用です。
Mac版Excelでは通信処理(MSXML2.XMLHTTP)が使えず、Web版ExcelにはVBA自体が搭載されていません。
決まった時間に自動実行できますか?
Excel単体では、Googleスプレッドシートのトリガー機能にあたる仕組みがありません。
定期実行したい場合は、Windowsの「タスクスケジューラ」からブックを開く設定を組み合わせる方法があります。
自動実行の設定を有効なままにしておくと、意図せずクレジットを大量消費してしまう恐れがあります。使用しない設定は必ず削除するようにしましょう。
無料プランでもこの方法は使えますか?
いいえ、ラッコキーワードAPIはスタンダードプラン(月額2,475円〜)以上で利用可能です。
フリープラン・エントリープラン・ライトプラン・旧プランではご利用いただけません。
まとめ
本記事では、ExcelとラッコキーワードAPIを連携させて、キーワード収集を効率化する方法を紹介しました。
「API連携」は一見難しそうに感じるかもしれませんが、裏側の仕組み(VBAのコード)はAIに生成させるため、コピー&ペーストだけで簡単に連携できます。
日々の手作業を効率化し、メディア運営の改善に役立てていきましょう!


この記事で解決しなかったときは、右下の【ヘルプ】ボタンからAIにお気軽にお尋ねください。











