公開VBA/マクロ便利Tips:Excelのセルにハイパーリンクを設定し、一括削除する業務効率化に役立つVBA/マクロのさまざまなTipsをコード例を交えて紹介していきます。今回は、HyperlinksオブジェクトのAddメソッドでセル内の文字列にWebサイトのURLを設定し、Deleteメソッドでリンクを一括削除する方法を解説します。2013今回は「ハイパーリンク」に関するTipsを紹介しよう。「ハイパーリンクの挿入」から解説していくが、「ハイパーリンクの挿入」は一体どんな場面で利用できるだろうか。お得意先がWebサイトを立ち上げたときに、管理するお得意先名のデータが何百件あるとしても、Excelで各社のWebサイト名を管理できるのではないだろうか。Excelで「サイト名」「URL」を入力するセルを作り、データを入力して「OK」ボタンをクリックすると、順次、お客さまのURLがデータとして登録されていくようにすればいいのではないだろうか。次に、「ハイパーリンクの削除」について解説しよう。お得意先名と、そのWebサイト名、URLを関連付けて表示させていても、「お得意先名の一覧」だけを印刷したい場合などが当てはまるのではないだろうか。した際に、ボタン1つクリックするだけで、ハイパーリンクが削除できれば便利になるはずだ。今回作成するサンプルでは、Sheet1の次にSheet2を追加し、このSheet2を「サイト登録」という名前に変更しておく。Sheetを追加するには、以下の図1に示した赤丸で囲んだアイコンをクリックするだけだ。「Sheet1」には、図1のような「サイト名」と「URL」を入力するセルと、「OK」ボタンがある。「サイト登録」シートには「サイト名」のデータを表示させるセルを用意しておく。「サイト名」「URL」「OK」ボタンの表示されたシート(Sheet1)と「サイト名」と表示された「サイト登録」シートが用意されているハイパーリンクを設定するには、下記のようなHyperlinksオブジェクトのAddメソッドを使う。Anchor:={Anchor},Address:={Address},TextToDisplay:={TextToDisplay}{Anchor}にはハイパーリンクのアンカーを指定する。セル(Rangeオブジェクト)やShapeオブジェクトを指定する。{Address}にはハイパーリンクのアドレスを指定する。{TextToDisplay}には、ハイパーリンクで表示されるテキストを指定する。Editor)に入力する。コードは以下のリスト1だ。これで、図1のような、各「サイト名」「URL」を入力して、「OK」ボタンをクリックし、「サイト登録」シートにデータが順次登録されていく仕組みが完成する。"「サイト名」と「URL]を入力してください。入力したハイパーリンクのデータを順次登録していくコード「Sheet1」の「サイト名」または「URL」にデータが入力されていない場合は、警告メッセージを表示して処理を抜ける。データが入力されている場合は、まず、Long型の変数lastRowを宣言しておく。解説した、終端セルを参照するEndプロパティを使用して、「サイト登録」シートの「A列」の最終行から上方向の終端セルを選択し、すなわち「A列」の最終行を取得してデータが入っていると、次の行にデータが追加されるようにする。このためには、まず「A列」のセルに順次データが追加されるように、Hyperlinks.Addメソッドを使って、{Anchor}に「.Cells(lastRow,1)」と指定する。これで変数lastRow行の1列目のセル(A列)から順次データが追加されていくことになる。{Address}には「H3」セルに入力された値を指定、{TextToDisplay}には「H2」セルに入力された値を指定している。VBAでは引数を改行して表す際に「_」で連結するので、覚えておくといいだろう。これで、「サイト名」「URL」を入力して「OK」ボタンをクリックすると、「サイト登録」シートにハイパーリンクが順次登録されていく。このマクロを「OK」ボタンに関連付けて実行すると、図2のように表示される。「サイト名」と「URL」を入力して「OK」ボタンをクリックし、「サイト登録」シートにハイパーリンクが順次登録されていったHyperlinksオブジェクトのDeleteメソッドでハイパーリンクを一括削除ハイパーリンクはお得意先のWebサイトを管理するのには大変便利だが、お得意先名だけを印刷したい場合など、ハイパーリンクが邪魔になることがある。そこで、「リンクの削除」という角丸四角形のボタンを配置して、このボタンをクリックすることで、ハイパーリングを一括削除できるマクロを紹介しよう。図3のように「顧客サイト」としてハイパーリンクの設定された得意先名があったとしよう。「顧客サイト」にお得意先名が表示されハイパーリンクでWebサイトのURLがリンク付けされている「リンクの削除」ボタンをクリックしてハイパーリンクを削除するには下記の書式を使用する。HyperlinksオブジェクトのDeleteメソッドの書式Hyperlinks.DeleteVBEを起動してModule1内にリスト2のコードを記述する。ハイパーリンクを削除するコードお得意先名の入力されている「B3」から「B6」のセルに対して、Hyperlinks.Deleteメソッドでハイパーリンクを削除する。お得意先名のハイパーリンクが削除された次回もハイパーリンクに関するTips今回はハイパーリンクの設定と削除のTipsを紹介したが、いかがだっただろうか。サイズ」を設定し直している。けい線も削除されるが、けい線の再設定は行っていない。けい線など表示形式/書式設定の使い方」の「セルのけい線の設定」などを参照して、各自でけい線の設定を試してほしい。次回は、引き続きハイパーリンクに関するTipsを紹介する。メールアドレスや別シートの任意のセルにリンクするTipsなので、お楽しみに。Basicプログラミングと、マイクロソフト系の技術をテーマとした、書籍や記事の執筆を行う。事務系のサラリーマンだった40歳から趣味でプログラミングを始め、1996年より独学でActiveXに取り組む。KySSの活動に本格的に参加。.NETやRIAに関する書籍や記事を多数執筆する傍ら、受託案件のプログラミングも手掛ける。Phoneアプリ開発を経て、現在はWindowsストアアプリを多数公開中。