EXCEL の URLリストから、ホスト名を抜きだす。

Yossy
2025-09-29
2025-09-29



「EXCEL の URLリストから、ホスト名を抜き出したい」というニーズがあり、それに応えたいと思います。最初は、関数でやろうと思ったんですが、EXCEL で、Python 使えた気がしたので、試してました。

EXCEL(MS365ライセンス版) に Python を書く場合 =py() 関数を利用します。

まず、セルに、=py( と入力した時点で、セルの見え方が変わって、Python が入力できるようになりました。


0010-2

A2 セルに入力された文字列(URL)から、ホスト名を抜き出す Python コードを B2 セルに書いてみます。

★EXCEL に記述する、Python コード

from urllib.parse import urlparse

def extract_hostname(url):
    try:
        parsed_url = urlparse(url)
        return parsed_url.hostname
    except Exception as e:
        return None
        
extract_hostname(xl("A2"))

※python コードの説明は省略しますが、関数定義して、呼び出した結果がセルに反映するようです。
※Python コード内からセルを参照するには、xl("A2") と書くと参照できました。

EXCEL には、以下のように入力します。

0020-2

ちなみに、B2 セル選択して、下方向にドラッグしてコピーすると、Python コード内に記述した、 xl("A2") が、xl("A3") というように参照が自動更新されたので、1個、Pythonコードを書いたら、あとは、ドラッグしてコピーすればよいようです。

とりあえず、上記の対応で、今回の目的は達成できました。

【参考】Excel の PY関数に書いた Python コードはサーバー上で実行される

試しにネットワークから切断したら、Python コードは動きませんでした。

【 参考】インポートできるライブラリ

今回は、urllib を import しましたが、他にも使えるライブラリはいくつか用意されているようです。
(外部サイト) オープンソース ライブラリと Python in Excel

【参考】 VBA と考え方が違うことを、最初勘違いした

「VBA のように、Python の関数をどこかに書いて、それをセルから呼び出すのかな?」と勘違い。そうではなく、「セルごとに Python コードを書く」ということでした。最初、混乱してしまいした。