社名一覧にハイパーリンクを設定
マクロ講座52回
Excel 2013 マクロ講座 52回
複数セルにハイパーリンクを設定
実務では、会社名一覧の列があり、その隣の列には会社のアドレスを記載するなどということがあるかと思います。
今回は、選択した複数セル、つまりセル範囲に、その隣の列に入力されたアドレスで、ハイパーリンクを設定します。
(サンプルファイルは、こちらから 3行マクロ52回サンプルデータ)
選択した複数セルにハイパーリンク
サンプルの表は、A列にタイトル、B列にURLを入力してあります。
A列のタイトルに対して、B列のURLをハイパーリンクとして設定しましょう。
ハイパーリンクの場合、対象セルやアドレスがそれぞれ違うので、一つ一つのセルに対して動作を行うことになり、それを選択範囲のセルに繰り返すことになります。
A列のタイトルに対して、B列のURLをハイパーリンクとして設定しましょう。
ハイパーリンクの場合、対象セルやアドレスがそれぞれ違うので、一つ一つのセルに対して動作を行うことになり、それを選択範囲のセルに繰り返すことになります。
For Each 構文でハイパーリンクを繰り返す
繰り返しの処理には、For Each 構文を使います。
For Each 構文の使い方です。
For Each 構文の使い方です。
変数は、選択範囲のセルなので、ここでは選択セルとしましょう。
これだけで、ほぼコードができたようなものです。
これだけで、ほぼコードができたようなものです。
Sub 選択範囲にハイパーリンク() Dim 選択セル As Range For Each 選択セル In Selection 実行したい処理 Next 選択セル End Sub
Hyperlinks.Addメソッドの構文は、以下なので、これを実行したい処理の部分に当てはめてみます。
Addressは、選択セルの隣の列のValueということで
選択セル.Offset(0, 1).Value
これで1列左の列に移動します。
オブジェクト.Hyperlinks.Add(Anchor, Address, SubAddress, ScreenTip, TextToDisplay)今回は、 Anchorと Addressだけ設定します。
Addressは、選択セルの隣の列のValueということで
選択セル.Offset(0, 1).Value
これで1列左の列に移動します。
選択セル.Hyperlinks.Add 選択セル, 選択セル.Offset(0, 1).Value
選択した複数セルにハイパーリンクを設定するコードは、このようになります。
マクロが実行され、ハイパーリンクが複数セルに設定されましたね。
Sub 選択範囲にハイパーリンク() Dim 選択セル As Range For Each 選択セル In Selection 選択セル.Hyperlinks.Add 選択セル, 選択セル.Offset(0, 1).Value Next 選択セル End Subハイパーリンクを設定したいセル範囲を選択してマクロを実行します。
マクロが実行され、ハイパーリンクが複数セルに設定されましたね。
ハイパーリンクを設定した後は、アドレスのURLは不要という場合もあるかもしれません。
そのような場合のコードは、選択セルの隣、選択セル.Offset(0, 1)の 中身をクリアするというコードを加えます。
そのような場合のコードは、選択セルの隣、選択セル.Offset(0, 1)の 中身をクリアするというコードを加えます。
Sub 選択範囲にハイパーリンクしてアドレスは削除() Dim 選択セル As Range For Each 選択セル In Selection 選択セル.Hyperlinks.Add 選択セル, 選択セル.Offset(0, 1).Value 選択セル.Offset(0, 1).ClearContents Next 選択セル End Subこのコードを実行すると、ハイパーリンクが設定された後、アドレスのURLは削除されます。
いかかでしたか?マクロでハイパーリンクを設定するのは、コードも難しくありませんでしたし、活用範囲も広いと思います。
今日の講義は以上です。お疲れ様でした。
今日の講義は以上です。お疲れ様でした。