すべてハイパーリンクであるテキストの列があります。テキストと URL を別のフィールドにコピーしたいです。
例えばセル(A1)には「Apple」(ハイパーリンク)があります。http://www.apple.com)
DとEに値を入れたい
D1には「Apple」が含まれる
E1にはURLが含まれるhttp://www.apple.com
Function GetURL(HyperlinkCell As Range)
GetURL = Replace(HyperlinkCell.Hyperlinks(1).Address, "file:", "")
End Function
私はこれをThisWorkbook(VBA)で試してみましたが、次のような結果が得られました。#名前?私のスプレッドシートで
答え1
答え2
コードを通常のモジュールに配置する必要があります。
- VBEでプロジェクトを右クリックします
- 挿入: モジュール
- (オプション)モジュールにもっと分かりやすい名前を付ける
そこにコードをカット/ペーストしてください。これで問題なく動作するはずです。
意図をもう少し明確にするために、関数ヘッダーを明示的に関数として宣言しPublic
(何も変更しないとは言いませんが、暗黙的に であると想定する人もいますPrivate
)、戻り値の型を に設定することで拡張できますString
。
Public Function GetURL(HyperlinkCell As Range) as String
Hyperlink プロパティには文字列のみが含まれるため、UDF で明示的に指定しても問題はありません。