はじめに
Tampermonkeyでスクリプトを書いたのに動かないとき、原因としてかなり多いのが @match の設定ミスです。
@match は「どのURLでそのスクリプトを動かすか」を決める重要な指定です。ここが合っていないと、コード自体が正しくてもスクリプトは実行されません。
この記事では、Tampermonkeyの @match の基本から、URLごとの動かし分け、よくあるミス、初心者向けの使い分けまでをまとめます。
- @match の基本
- よく使う書き方のパターン
- 複数URLで動かす例
- 動かないときの確認ポイント
Tampermonkeyの全体像を先に確認したい場合は、Tampermonkeyとは?初心者向け使い方と簡単スクリプト解説から読むと流れをつかみやすいです。
@matchとは
@match は、そのユーザースクリプトをどのURLで動かすかを指定する設定です。
たとえば、次のように書くと example.com 配下のページでだけ実行されます。
// ==UserScript==
// @name Sample Match
// @match https://example.com/*
// @grant none
// ==/UserScript==この指定があることで、「関係ないサイトでは動かさない」「必要なページでだけ動かす」という制御ができます。
@matchの基本ルール
初心者向けに押さえるとよい基本は次の3点です。
- プロトコル
- ドメイン
- パス
たとえば https://example.com/path/* は、以下を意味します。
- https:// で始まる
- example.com というドメイン
- /path/ 以下のページ
基本は「どこで動かしたいか」をURL単位で具体的に考えるのがコツです。
よく使う @match の書き方
ドメイン全体で動かす
// @match https://example.com/*example.com 配下ならどのページでも動きます。
特定ディレクトリだけで動かす
// @match https://example.com/admin/*/admin/ 以下だけで動かしたいときに使います。管理画面専用スクリプトなどで便利です。
特定ページだけで動かす
// @match https://example.com/settings/profile1ページだけで動かしたいなら、このように完全一致に近い形で絞れます。
複数の @matchを並べる
// @match https://example.com/admin/*
// @match https://example.com/dashboard/*1つのスクリプトを複数ページで使いたいときは、@match を複数行書けます。
迷ったときの選び方
@match をどう書くか迷ったら、まずは次の考え方で選ぶと失敗しにくいです。
- 1ページだけで試すなら 完全に近いURL指定
- 管理画面の一部で使うなら ディレクトリ指定
- サイト内の広い範囲で使うなら ドメイン全体指定
- 似たサブドメインが複数あるなら サブドメイン込み指定
最初から広く取りすぎず、必要になってから少しずつ広げるほうが安全です。
よくある間違い
@match では、少しの違いで動かなくなることがあります。
wwwの違い
// @match https://example.com/*これは https://www.example.com/* とは別です。
www ありとなしは別ドメイン扱いになるので、実際に開いているURLをそのまま確認するのが大事です。
httpと httpsの違い
// @match http://example.com/*これでは https://example.com/* では動きません。
迷うときは、実際のページURLをコピーして見比べると確認しやすいです。
パスの違い
// @match https://example.com/admin/*これでは https://example.com/user/* では動きません。
「サイト全体で動かしたいのか」「特定機能だけに限定したいのか」を先に決めると、書き分けやすくなります。
ワイルドカード *の使い方
@match では * を使って、ある程度まとめて指定できます。
サイト全体を広く取る例
// @match *://example.com/*http と https の両方をまとめて取りたいときに使えます。
サブドメインも含めて広く取る例
// @match *://*.example.com/*app.example.com や admin.example.com などをまとめて対象にできます。
ただし、広く取りすぎると関係ないページでも動いてしまうので、初心者のうちは必要な範囲だけに絞るほうが安全です。
コピペしやすい @match例
用途別に、よく使う @match をまとめると次のようになります。
特定の管理画面だけで動かす
// @match https://example.com/admin/*ダッシュボードと設定画面の両方で動かす
// @match https://example.com/dashboard/*
// @match https://example.com/settings/*本番とステージングの両方で動かす
// @match https://app.example.com/*
// @match https://stg.example.com/*サブドメイン全体でまとめて動かす
// @match *://*.example.com/*まずはこのあたりをベースにすると、ゼロから考えるより書きやすくなります。
@matchを安全に使うコツ
初心者のうちは、次の順で考えると失敗しにくいです。
- まずは特定ページだけで動かす
- 問題なければディレクトリ単位に広げる
- 必要なときだけドメイン全体に広げる
いきなり *://*/* のように広く取りすぎると、別サイトでも動いてしまうのでおすすめしません。
特に初心者のうちは、「便利そうだからとりあえず全部」で広く指定するより、「まず1ページで確認する」ほうが結果的に早いです。
動かないときの確認ポイント
@match が原因で動かないときは、次の順で確認すると切り分けしやすいです。
実際のURLを確認する
アドレスバーのURLと @match の内容を1文字ずつ見比べます。
wwwや /の有無を確認する
見落としやすいポイントですが、ここが違うだけで動かないことがあります。
Tampermonkey管理画面で対象URLを確認する
スクリプト詳細を見ると、どのページに紐づいているか確認しやすいです。
まずは狭い範囲でテストする
最初は1ページだけに限定して動作確認し、そのあと必要に応じて範囲を広げるほうが安全です。
実用例
@match の考え方は、Tampermonkeyのいろいろなスクリプトで共通です。
- 自動クリック用スクリプトを管理画面だけで動かす
- フォーム入力スクリプトを問い合わせページだけで動かす
- 画面表示のカスタマイズをダッシュボードだけで有効にする
よくあるのは、「スクリプト本体は正しいのに @match だけがズレていて動かない」パターンです。Tampermonkeyに慣れるほど、@match の精度が作業効率に直結します。
つまり @match を理解すると、既存の子記事で紹介しているスクリプトもかなり扱いやすくなります。
関連記事
- Tampermonkeyとは?初心者向け使い方と簡単スクリプト解説
- Tampermonkeyで自動クリックする方法|初心者向けサンプル付き
- Tampermonkeyでフォーム入力を効率化する方法|初心者向けサンプル付き
- Tampermonkeyで画面表示を見やすくカスタマイズする方法|初心者向けサンプル付き
まとめ
@match は、Tampermonkeyで「どのURLで動かすか」を決める重要な設定です。
- URLが少し違うだけでも動かない
- 最初は狭く指定してから広げるのが安全
- @match を理解すると他のスクリプト記事も扱いやすくなる
Tampermonkeyでスクリプトが動かないときは、まず @match を疑うくらいでちょうどいいです。

コメント