Excel×ラッコキーワードAPIでメディア運営を効率化しよう!【初心者向け】

excel-api-rakko

「キーワードの収集を毎回手作業でやるのが面倒・・」
「調べたキーワードをExcelに貼り直すのが手間・・」

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

連携には、Excelに標準で搭載されているプログラミング機能「VBA(マクロ)」を使用します。
なお、コードはAIに書かせるためプログラミング知識は一切不要です。
この記事の前提条件
  • ラッコキーワードのスタンダードプラン以上を契約していること
  • Windows版のデスクトップExcel(Microsoft 365 / Excel 2019以降など)をお持ちであること

※Web版Excel・Mac版Excelでは、本記事で紹介するコードは動作しません。
 Windows版Excelをお持ちでない場合はGoogleスプレッドシートとラッコキーワードAPIの組み合わせをお試しください。

他のツールとの接続方法はこちら
Claude DesktopClaude(スマホ)Claude CodeChatGPTn8nDifyManusOpenClawGensparkGrokGoogleスプレッドシートExcel

そもそも「API」とは?


API(エーピーアイ)とは「Application Programming Interface」の略で、アプリ同士がデータをやり取りするための窓口のことです。
たとえばラッコキーワードを普段使うときは、Webブラウザで画面を開いて検索ボタンをクリックし、結果を目で見て確認します。
一方でAPIを使うと、「画面操作」を一切行わずに別のアプリ(今回はExcel)から直接ラッコキーワードのデータを取得できます。
ラッコキーワードAPIで取得できる主なデータは以下の通りです。

  • サジェストキーワード
  • 関連キーワード
  • LSI/PAA
  • よくある質問検索
  • 同時ランクインキーワード
  • 一括キーワード調査
  • 獲得キーワード調査
  • 集客コンテンツ検索
  • 見出し抽出
  • 共起語
  • 検索順位チェック

取得できるデータの詳細はAPIドキュメントでご確認いただけます。

ラッコキーワードAPIの利用条件

ラッコキーワードAPIはスタンダードプラン(月額2,475円〜)以上で利用可能です。
※上記以外(フリー(無料)プラン・エントリープラン・ライトプラン・旧プラン)ではご利用いただけません。

Excel×ラッコキーワードAPIでできること

  • 複数のキーワード情報をまとめて取得できる:ラッコキーワードの画面では「1つのキーワード × 1つの機能」ずつしか検索できませんが、API連携なら複数まとめて取得できます
  • シートに直接反映・一括管理できる:CSVをダウンロードして取り込む作業が不要になり、Excel上でそのまま関数やピボットテーブルにつなげられます
  • 取得条件をコードに固定できる:件数・並び順・フィルタを毎回指定し直す必要がなく、いつでも同じ条件で取得できます

「Excel × ラッコキーワードAPI」の具体的な連携イメージは沸きましたか?
次のステップで、実際の連携手順を見ていきましょう。

連携方法

ここからは以下の手順に沿って、Excel × ラッコキーワードAPIを連携していきます。
今回は、ラッコキーワードAPIとVBAを使用して「関連キーワードをExcelに取得する」フローを例にご紹介します。

ステップ1:APIキーを準備する

まず最初に、ラッコキーワードの管理画面からAPIキーを発行します。
APIキーとは、ExcelがラッコキーワードAPIにアクセスする際の「認証用のパスワード」のような役割を持つ文字列です。
【発行手順】
※クリックすると画像を拡大できます

ラッコキーワードの契約管理画面でAPIキーを発行
STEP 1契約管理画面にアクセスし、「APIキーを発行」ボタンを押下します。
発行されたAPIキーをコピー
STEP 2APIキーが発行されたのを確認し、コピーして手元に保管しておきます。

注意:APIキーの取り扱いに注意

APIキーは他人に知られないよう厳重に管理してください。誤って公開リポジトリやSNSに投稿したり、APIキーを書き込んだExcelファイルをそのまま共有したりすると、第三者に不正利用される恐れがあります。

ステップ2:VBAを実行する

APIキーを取得できたら、実際にVBAを実行して「関連キーワード」をExcelに取得してみましょう。
【手順】
※クリックすると画像を拡大できます

Excelでファイルタブをクリックする
STEP 1Excelを新規作成し、「ファイル」をクリックします。
※すでにリボンに「開発」タブが表示されている場合は、STEP3へ進んでください。
Excelのオプションのリボンのユーザー設定で開発にチェックを入れる
STEP 2「オプション」>「リボンのユーザー設定」を開き、右側の一覧で「開発」にチェックを入れて「OK」をクリックします。
開発タブからVisual Basicを開く
STEP 3「開発」タブ>「Visual Basic」をクリックします(Alt + F11 でも開けます)。
挿入から標準モジュールを追加する
STEP 4上部メニューの「挿入」>「標準モジュール」をクリックします。

VBA(マクロ)とは?

VBAとは、Excelに標準で搭載されているプログラミング機能のことです。追加のインストールや外部サービスの登録は必要ありません。

STEP4で追加した標準モジュールの白い画面に、以下のVBAコードをすべてコピー&ペーストします。

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に取得できます。
※クリックすると画像を拡大できます

貼り付けたコードのYOUR_API_KEY_HEREを取得したAPIキーに置き換える
STEP 5コードを貼り付けたら、YOUR_API_KEY_HERE の部分をステップ1で取得したラッコキーワードAPIキーに置き換えます。前後のダブルクォーテーション(”)は消さないでください。
Visual Basic Editorのファイルメニューから上書き保存する
STEP 6そのまま「ファイル」>「○○ の上書き保存」をクリックします(Ctrl + S でも保存できます)。
ファイルの種類をExcelマクロ有効ブックにして保存する
STEP 7保存画面が表示されるので、ファイルの種類を「Excel マクロ有効ブック(*.xlsm)」に変更して「保存」をクリックします。
開発タブのマクロからGetRelatedKeywordsを実行する
STEP 8Excelに戻り、「開発」タブ>「マクロ」(Alt + F8)から GetRelatedKeywords を選び、「実行」をクリックします。
キーワード入力ダイアログ
STEP 9入力ダイアログが表示されるので、関連キーワードを取得したいキーワード(例:ラッコ)を入力して「OK」をクリックします。
関連キーワードデータが取得された画面
STEP 10VBAが実行され、関連キーワードデータが取得できます。

「セキュリティの警告」が出た場合(初回のみ)

保存した.xlsmファイルを開き直すと、画面上部に「セキュリティの警告 マクロが無効にされました」と表示されることがあります。ご自身で作成したファイルであることを確認のうえ、「コンテンツの有効化」をクリックしてください。

オリジナルのVBAコードを生成してみよう

VBAコードは、AI(ChatGPT・Geminiなど)に「APIドキュメント(JSON)+以下プロンプト」を渡すだけで簡単に生成できます。
プロンプトの【やりたいこと】をご自身の目的に合わせて書き換えれば、用途に合ったオリジナルのVBAコードを作成することが可能です。

書き換えるのは【やりたいこと】だけでOKです。
どの機能を使うか・どんな項目を出すかは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にまとめたいです。

エラーが出た場合の対処法
VBAコードを実行後エラーが出た場合は、以下の方法を試してみましょう。

  • エラー内容をAIに相談する:表示されたエラーメッセージをそのままコピペするか、エラー画面のスクリーンショットを添付して、生成元のAIに「このエラーを修正してください」と依頼します
  • APIドキュメントを再度添付する:APIエラー(ステータスコード400・403など)が原因と思われる場合は、APIドキュメント(JSON)を再添付し「仕様に沿って修正してください」と依頼するとスムーズです

最初から完璧なプロンプトを作る必要はありません。
まずは取得件数や並び順など、簡単な部分から書き換えて試してみましょう!

生成したコードは、ステップ2と同じ手順(標準モジュールに貼り付け→実行)で動かせます。
あとは自分の作業に合わせて増やしていくだけです!
エラーが出た場合の対処法
VBAコードを実行後エラーが出た場合は、以下の方法を試してみましょう。

  • エラー内容を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に生成させるため、コピー&ペーストだけで簡単に連携できます。
日々の手作業を効率化し、メディア運営の改善に役立てていきましょう!

ラッコキーワードAPIは、スタンダードプラン(月額2,475円〜)から使えます。まずは関連キーワードの取得から試してみませんか?

ラッコキーワードAPIを使ってみる

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