ハイパーリンクの場所とは異なる表示テキストのハイパーリンクを含む多数のセルを含むスプレッドシートがあります。
すなわち:
セルの位置:A1
display text = "サイト情報"
ハイパーリンクの場所= " http://www.mylocation.com "
ハイパーリンクの場所のテキスト文字列にアクセスするためのExcelの数式はありますか。
理想的にはこのようになります。
式(A1)= " http://www.mylocation.com "
あなたはマクロを使うことができます:
このカスタムExcel関数には次の構文を使用します。= GetURL(cell、[default_value])
Function GetURL(cell As range, Optional default_value As Variant)
'Lists the Hyperlink Address for a Given Cell
'If cell does not contain a hyperlink, return default_value
If (cell.range("A1").Hyperlinks.Count <> 1) Then
GetURL = default_value
Else
GetURL = cell.range("A1").Hyperlinks(1).Address
End If
End Function
1つのセルの値からアドレスを抽出するだけなので、この小さな関数は便利です。
"総当たり"マクロの代わりに、それが指し示されているハイパーリンクのURLを抽出して返すユーザー定義関数を作成することもできます。
Function GetURL(rng As Range) As String
On Error Resume Next
GetURL = rng.Hyperlinks(1).Address
End Function
この場合は、好きな場所に配置できます。たとえば、A1のハイパーリンクのURLをセルC25に表示する場合、セルC25に次の数式を入力します。
= GetURL(A1)
http://Excel.tips.net/T003281_Extracting_URLs_from_Hyperlinks.html
function EXTRACT_URL(input) {
var range = SpreadsheetApp.getActiveSheet().getRange(input);
var re = /^.+?\(\"(.+?)\",.+?$/;
if (input.indexOf(':') != -1) {
var formulas = range.getFormulas();
for (var i in formulas) {
for (var j in formulas[i]) {
formulas[i][j] = formulas[i][j].replace(re, "$1");
}
}
return formulas;
} else {
return range.getFormula().replace(re, "$1");
}
}