PCインストラクターの川上です。
昨日、エクセルの表をお見せしたところ、色んなご質問がでました。
その中から、このような↓ご質問をピックアップしてみます。
エクセルで、青文字のハイパーリンクから、URLだけを取り出したいのですが・・・
(そもそもURLって何?という方は、『URLって?』をご覧くださいませ。)
どういうことか、といいますと・・・
「マイページ」の「読者管理」の「読者になったブログ」からエクセルにコピー&ペーストして、ブログタイトルの青文字のハイパーリンクがB列に表示されているとします。
その隣のC列に、B列の青文字のハイパーリンクのURLを表示させる
といったことですね。
手動でURLを取得するには、いったんブログタイトルを「ハイパーリンクの編集」画面の「アドレス」欄から、URLをコピー&ペーストしていけばよいです。
でも、ひとつずつやっていくと、結構手間だったりします。
ですので、こういうのはエクセルの関数で、ちゃちゃっと求めたいものですが・・・
今のところ、エクセルにもともとある関数で、このような関数はありません。
この場合は、
VBAで事前に独自の関数を作っておかなければなりません。
ま、今回はすでに、
GetURL関数
が作られていることとします。
(ええ~、ここがポイントだろ~、という方は、最後の<補足>をご覧くださいませ。)
そして、進みます。
まず、セルC4を選択して、キーボードから「=get」
と入力します。
すると、関数の候補が表示されます。
そこで、「GetURL」をダブルクリックします。
セルB2をクリックします。
(「=GetURL(B4」と表示されます。)
最後に「)」を入力します。
これで、完成ですので、Enterキーを押して確定します。
すると、URLが表示されます。
あとは、下方向へ式をコピーして、
完成です!
このように、エクセルで、青文字のハイパーリンクから、URLだけを取り出すことができます。
<補足>
ただし、事前に「開発」タブ内から、VBE(Visual Basic Editor)を起動して、(Alt + F11でもOKです。)
[挿入]-[標準モジュール]で、次のコードをコピー&ペーストしておく必要があります。
Function GetURL(lnk As Range) As String
Dim Add As String
If lnk.Hyperlinks.Count > 0 Then
With lnk.Hyperlinks(1)
If .Address Like "http*" Then
Add = .Address
End If
End With
End If
If Add <> "" Then
GetURL = Add
Else
GetURL = ""
End If
End Function
(以上のコードは絶対ではありません。あくまでも一例ですので。)
なお、
こういった独自関数などのプログラムがあるエクセルを保存する場合は、「Excelマクロ有効ブック」で保存する必要がありますので、お気を付けくださいませ。
以上になりますが、エクセルのマクロやVBAについてお勉強されていない方は、何がなにやら、チンプンカンプン・・・だと思いますので、勉強されたときに、またこの記事を開いていただければ、有難いです。
アメブロで、このような記事書いたら、きっと「いいね!」は極端に少ないんだろうな~(笑)
以上、パソコンワンポイントレッスンでした。
LIDS札幌・ライフデザインスクール
川上 雄大