YONのドバトブログ

YONの土鳩ブログ

ゲーム好きの鳩"YON"がツイッターでは言い切れないことについて書き連ねるブログ

はてなブログの下線付き自動キーワードリンクをWordで除去する方法

2022/01/22 追記

新ver公開に伴い公開停止。詳細は以下の記事を参照。

 

 

 

この記事では、Microsoft Wordのマクロ機能を使い、はてなブログの記事文中に下線付きで付加されるはてなキーワードへの自動リンクを、[]記号挿入というリスクの低い方法により高速で確実に除去する方法を解説する。

f:id:YON_4:20161016133249p:plain

この手法のメリットは、

  • 非常に簡単
  • 無料
  • SEO上のリスクが低い
  • 高速で何度でも実行できる
  • 「見たまま」編集に対応

であり、注意事項は

  • Word2010, 2013でしか動作を確認していない
  • 私が使っているHTMLタグにしか対応していない(適宜修正を加えてもらう必要がある)
  • はてな記法やMarkdown記法には多分使えない
  • <pre></pre>タグなどの、記号をそのまま表示するタグの中に太字や下線などの文字装飾がある文章には一気に適用できない
  • プログラムを公開するのもマクロを書くのも初めてなのでその他色々不備があるかもしれない
  • (2016/12/30 追記)2つ連続した空白行が1つの空白行に変わってしまう 

である。納得してくれたら是非使ってもらいたい。

急いでいる人のために、まず最初に方法を解説した後、細かい解説に移る。

 

Step1 マクロ付きWordファイルを入手する

こちらやこちらで配布中(2022/01/22 公開停止)。リンク先のページでWordファイル「はてなブログ自動リンク除去.docm」をダウンロードしよう。

別にヤバい物は入っていないが、何らかの損害が発生したとしても一切責任は負わないので注意してほしい。マクロファイルをダウンロードするのが嫌という人のためにリンク先にマクロの全文を載せたテキストファイルも入れている。

 

Step2 マクロを有効化する

※ここからの操作や画像キャプチャは全てWord2010で行っている。別のバージョンの場合は適宜対応する動作を行ってほしい。

ダウンロードしたWordファイル「はてなブログ自動リンク除去.docm」を開く。以下のような警告が出てきた場合は、それぞれ「編集を有効にする」「コンテンツの有効化」をクリックする。

f:id:YON_4:20161015014500p:plain

f:id:YON_4:20161015014501p:plain

 

Step3 「開発」タブを表示する

ファイル→オプション→リボンのユーザー設定 へ

以下の画像を参考に「開発」タブのチェックを入れて「OK」を押す。

f:id:YON_4:20161015014459p:plain

これで、Wordのタブに「開発」タブが入ったはずだ。

 

Step4 WordファイルにHTML形式のブログ本文をコピペする

キーワードリンクを消したいはてなブログ記事のHTML編集画面を開き、その内容を全てコピーして「はてなブログ自動リンク除去.docm」の本文にプレーンテキストとして貼り付ける。

バックアップとして、ここでコピペしたブログ本文をメモ帳などに保存しておこう。

そして、Step 3で表示した「開発」タブを開く。このような画面になっているはずだ。

f:id:YON_4:20161015022625p:plain

 

Step5 マクロを実行する

「開発」タブ内のメニューの左から2番目にある「マクロ」を選び、「マクロ」ウィンドウを表示させる。

そのウィンドウ内にある「マクロの保存先」のプルダウンメニューから「はてなブログ自動リンク除去.docm (文書)」を選ぶ。

f:id:YON_4:20161015022624p:plain

私が記入した"hatena"で始まる名前のマクロが表示される(画像の名称とは一致しない)はずなので、それを選択して「実行」をクリックする。

 

f:id:YON_4:20161015023008p:plain

本文に所々[]が入ったはずだ。

 

Step6 []付きの文章をブログ記事に貼り付けて上書きする

「はてなブログ自動リンク除去.docm」内にある[]付き文章をコピーして、元のブログのHTML編集画面に全て上書き貼り付けし、保存して終了。

2回目以降はStep4からStep6まで実行すればよい。つまり記事をコピペしてマクロを実行して戻せばOKだ。

途中でおかしくなって元に戻したい場合はバックアップから復元するか、[]をWord上で置換して消去してほしい(検索欄に[]、置換後に何も記入しなければOK)。注意事項にも書いたが、<pre></pre>タグなどの、記号をそのまま表示するタグの中に太字や下線などの文字装飾がある場合は、一旦その部分を除いてマクロを実行してほしい。

また、このマクロは中途半端に[]が入っている文章に対しても正常に動作する。

 

BEFORE

f:id:YON_4:20161015031546p:plain

Microsoft」「はてなブログ」「はてなキーワード」「自動リンク」「SEO」に引かれていた、薄汚く忌々しい、誤クリックを誘発する下線リンクが…

AFTER

f:id:YON_4:20161015031559p:plain

なんということでしょう。光り輝く、美しい無に蘇りました。

 

というわけで、ここからは実行方法以外の説明に移る。

 

はてなブログの下線付きキーワードリンクについて

デザインテーマを決め、初めて記事を書き、期待で胸いっぱいのはてなブログビギナーを怒りと絶望の淵に突き落とすのが、下線付きキーワードリンクである。私もその一人だった。

下線が汚い、リンクが邪魔、はてなキーワードが役に立たない、明らかに意図しないフレーズを抜き出す、などなど欠点を挙げればキリがない仕様である。

個人的に一番呆れたのはコレ。

モバイル

ご覧の通り、なんと「モバイル」ではなく「バイ」にリンクが張られている。「モバイル」という単語を見て「バイ」について調べようとする人は、はてなキーワードを見るより先に医者に診てもらうことを優先すべきなのは明らかである。*1

しかも、「バイ」のリンク先を見てほしい。なんと何も書かれていない。本当に何の意味もない、完全に邪魔なだけのリンクなのだ。

他にも「スペシャル」「スプレーガン」「キューバンボム」など邪魔なだけのアホリンクは沢山ある。

また、PC版よりもモバイル版の方が下線が目立ち、誤タップも起こりやすい

 

キーワード自動リンクを消す方法

ではこの邪魔なキーワード自動リンクは、どうすれば消せるのか?方法は以下の3つだ。

  1. 課金してはてなブログProにする
  2. CSSをいじって非表示にする
  3. 自動リンク停止構文[]を使う

まず、課金してはてなブログProにする方法がある。しかし、こんな下線の除去のために月額980円も払うのは悔しいし勿体ない。しかもProになったとしても、投稿済の記事の自動リンクは、記事を再投稿するまで消えない。

次にCSSをいじって非表示にする方法がある。私が最初に試したのがこの方法だ。

これはかなり便利なのだが、本来表示されるはずのリンクを隠しているため、SEO上のリスクがある(ページランクが落ちる恐れがある)。私のようにブログでマイナーな題材も扱う場合は避けたいリスクだ。

よって、最も無難な方法は自動リンク停止構文[]を使うことだ。2つの[]で囲われた部分ではキーワードリンクが張られなくなる。公式の仕様なのでSEO上のリスクも無い。よって、文章全体を自動リンク停止構文で囲ってやれば、無難かつ確実にキーワードリンクを消去できるのだ。

 

自動リンク停止構文[]のデメリット

このように便利な自動リンク停止構文のデメリットは、制約が多く記入が面倒なことだ。制約の内容を以下に示す。

  • 行を跨いで使用することはできない*2
  • 一部のHTMLタグが挟まると無効化される
  • 注釈を挟むと注釈を無効化する

よって、単純に記事の最初と最後につけてもほとんど無意味であり、</strong>, </code>などの自動リンク停止構文を遮るHTMLタグや注釈を避けながら全ての行に記入する必要がある。文章全体を[]で覆い尽くすのは思いの外面倒なのだ。

 

自動リンク停止構文[]を自動で記入する

面倒な作業は自動化してしまえばいい。というわけで、このような試みを行った人もいた。

上記のブログでは、[]で全ての単語を囲うプログラムが公開されている。とても有難い存在だが、残念ながら私には利用できなかった。

まずMarkdown記法限定であり、「見たまま」記法に慣れていた私には合わず、それにRuby言語のコンパイル方法すら忘れている私には、どうやってこれを利用すればいいのかイマイチ分からなかった。

 

Microsoft Wordを利用する

そして私は、記事を書いた後にプレビューをチェックしたり、記事を開いてTabキーを連打してリンク箇所を調べたりして、忌々しい下線が引かれている単語を探して、HTML形式で記事をWord上に全コピペし、「置換」作業によって単語の両端に[]を追加する作業を続けた。

 

記事をチェックして、下線箇所を探して、記事をコピペして、置換して、戻して…。

何度も何度も。

 

全ての単語や文章を自動で[]で囲うことができれば…。

HTMLタグや注釈記号を、[]を付加した状態に置換できれば…。

Wordが一瞬で複数の置換作業をしてくれれば…。

 

Wordの置換作業を自動化すれば良いのではないか?

 

なんてことはない。やることは結局ただの置換作業の連発なのだ。複雑怪奇なプログラムなど必要なはずがない。

そしてExcelと同じく、Wordにもマクロが存在する。単純作業を記録して自動化してくれる機能だ。

これなら、文章全体を[]で囲うこともあまり面倒でないし、プログラミングに馴染みのない人でも使うことができる。

 

こういうわけで、マクロが出来上がった。せっかくブログのために書いたのでブログで公開した。

勿論、このマクロは完全ではない。私が使っているタグや知っているタグにしか対応していないので、それ以外のタグを使う人には各自編集してもらうしかない(ついでにコメント等でバグ報告をしてもらえると大変有難い)。プログラムの内容については以下の記事で述べるので、それを参考にして修正を加えてほしい。

 

*1:ちなみに、mobileの語源はラテン語の「動く」を意味するmovereであり、movereの語源はインド・ヨーロッパ祖語のmeueに由来する。よってbiで切れることはない。・・・このあまりにも無駄な注釈をわざわざ読んだアワレな読者のために、もう一つ無駄な知識を与えよう。群集を意味する「モブ」mobの語源はmobileである。参考リンク

*2:しかし稀に行を跨いでも有効になることがあり、いまいちよく分からない仕様