スクリプトガイド > データテーブル > データテーブルの高度なスクリプト > テキストの列にハイパーリンクを追加する
公開日: 04/01/2021

テキストの列にハイパーリンクを追加する

イベントハンドラーという列プロパティを使用して、テキストの列にハイパーリンクを定義することができます。たとえば、地理データの列からGoogleマップへのハイパーリンクを作成したり、ウィキペディアのウェブページへのリンクを含めたりできます。

注: 「イベントハンドラー」列プロパティの詳細を参照するには、ハイパーリンクを含む列に「イベントハンドラー」列プロパティを追加します。すると、この列プロパティに関するヒントが表示されます。この列プロパティを作成するスクリプトを参照するには、データテーブルの赤い三角ボタンをクリックし、[テーブルスクリプトをコピー(データなし)]を選択します。コピーしたスクリプトを空のスクリプトに貼り付けます。

データテーブルの列にハイパーリンクを定義するには、イベントハンドラーという列プロパティを使用します。この例では、「SAS Offices.jmp」サンプルデータにあるハイパーリンクがどのように作られたかを示します。

1. [ヘルプ]>[サンプルデータライブラリ]を選択し、「SAS Offices.jmp」を開きます。

2. 「都市」列を右クリックして、[列情報]を選択します。

イベントハンドラーの列プロパティが設定されています。

3. 「クリック」タブにあるスクリプトがURLのコードを挿入しています。

Function( {thisTable, thisColumn, iRow},
Web( "https://www.google.com/maps/@"||Char(thisTable:latitude[irow])||","||Char(thisTable:longitude[irow])||",12z" ) );

thisTableはデータテーブルのオブジェクトです。

thisColumnは列オブジェクトです。

iRowthisColumnにある行のインデックスです。

WebはデフォルトのブラウザでURLを開きます。

"https://www.google.com/maps/@"の中の@は地図用のGoogle APIに固有のものです。Googleでは、この後に座標が続くことになっています。

||Char(thisTable:latitude[irow])は「緯度」列で定義される緯度を連結しています。

||","||Char(thisTable:longitude[irow])||「経度」列で定義される経度を連結しています。

Google APIでは",12z"によって倍率を指定しています。

「ヒント」タブのスクリプトはカーソルをハイパーリンクの上に置いたとき現れるツールヒントを定義します。ヒントは、リンクがクリックされた後何が起こるかを正確に記述しています。この関数を利用して、「クリック」スクリプトが用いるURLやプラットフォームの説明にツールヒントを設定してください。

Function( {thisTable, thisColumn, iRow},

"Open " || "https://www.google.com/maps/@"||char(thisTable:latitude[irow])||",
"||char(thisTable:longitude[irow])||",12z" || " in your browser.";);

ツールヒントの文字列を戻します。

「色」タブのスクリプトはハイパーリンクの色を定義します(この例では、青)。

Function( {thisTable, thisColumn, iRow},

5;);

JMPカラーにJMPカラーの図が掲載されています。

他のファイルへのリンクをデータテーブル列に埋め込むこともできます。次の例では、コンピューター上の音声やビデオにリンクするための、「イベントハンドラー」スクリプトと値の設定方法を示しています。

New Table( " Wildlife ",
	New Column( " 列1", Character, "Nominal",
		Set Property( " Event Handler ",
			Event Handler(
				Click( JSL Quote(Function( {thisTable, thisColumn, iRow}, Open( Char(
thisTable:thisColumn[ iRow ] ) ); );) ),
				Tip( JSL Quote(Function( {thisTable, thisColumn, iRow}, Char(
thisTable:thisColumn[ iRow ] ) || "をメディアプレイヤーで開く"; );) ),
				Color( JSL Quote(Function( {thisTable, thisColumn, iRow}, 5; );) )
			)
		),
		Set Selected,
		Set Values( {
"C:\Users\Public\Videos\Sample Videos\Wildlife.wmv",
"C:\Users\Public\Music\Sample Music\Kalimba.mp3"
		} )
	)
)

「SAS Offices.jmp」にある各国のSASオフィス写真の列もイベントハンドラースクリプトの例を含んでいます。

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).