同じセルに 2 つのハイパーリンクを設定することはできません。
Google スプレッドシートにスクリプトを書き込むことは可能ですが、それがあなたのユース ケースにうまく適合するかどうかはわかりません。私が見る解決策は次のようになります。
- ユーザーは目的のセルをクリックして選択します。
- 次に、カスタム メニューをクリックし、そこでエントリを選択します。たとえば、リンクを表示します。
- リンクを含むポップアップが (セルの横ではなく、画面の中央に) 表示されます。
これでいいと思いますか?コードは次のようになります (メニュー [ツール] > [スクリプト エディター] を開きます)。
function onOpen() {
SpreadsheetApp.getActive().
addMenu("Test", [{name: 'Show Links', functionName:'showLinks'}]);
}
function showLinks() {
var values = SpreadsheetApp.getActiveRange().getValue().split(';');
var app = UiApp.createApplication().setTitle('Links');
var grid = app.createGrid(values.length, 2);
for( var i = 0; i < values.length; ++i ) {
var url = findLink(values[i]);
grid.setWidget(
i, 0, app.createLabel(values[i])).setWidget(
i, 1, url ? app.createAnchor(url, url) : app.createLabel('Not Found'));
}
app.add(grid);
SpreadsheetApp.getActive().show(app);
}
var mapName2Url = null;
function findLink(name) {
if( mapName2Url == null ) { //lazy load
mapName2Url = {};
var data = SpreadsheetApp.getActive().getSheetByName('People').getDataRange().getValues();
for( var i = 1; i < data.length; ++i ) //skipping the header
mapName2Url[data[i][0]] = data[i][1];
}
return mapName2Url[name];
}
スクリプト エディターに貼り付けた後、onOpen 関数を 2 回実行して認証し、メニューを作成します。次にスプレッドシートを開くと、メニューが自動的に作成されます。
ちなみに、私はこのコードをテストしていないので、ばかげた間違いが含まれている可能性があります。