「EXCEL の URLリストから、ホスト名を抜き出したい」というニーズがあり、それに応えたいと思います。最初は、関数でやろうと思ったんですが、EXCEL で、Python 使えた気がしたので、試してました。
EXCEL(MS365ライセンス版) に Python を書く場合 =py() 関数を利用します。
まず、セルに、=py( と入力した時点で、セルの見え方が変わって、Python が入力できるようになりました。
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 には、以下のように入力します。
ちなみに、B2 セル選択して、下方向にドラッグしてコピーすると、Python コード内に記述した、 xl("A2") が、xl("A3") というように参照が自動更新されたので、1個、Pythonコードを書いたら、あとは、ドラッグしてコピーすればよいようです。
とりあえず、上記の対応で、今回の目的は達成できました。
【参考】Excel の PY関数に書いた Python コードはサーバー上で実行される
試しにネットワークから切断したら、Python コードは動きませんでした。
【 参考】インポートできるライブラリ
今回は、urllib を import しましたが、他にも使えるライブラリはいくつか用意されているようです。
(外部サイト) オープンソース ライブラリと Python in Excel
【参考】 VBA と考え方が違うことを、最初勘違いした