記事キャッチ画像
 (30) Mac版では、Excelワークシート・ブックの FollowHyperlink イベントは発生せず! 

 1. Mac版の Worksheet ・ Workbook の FollowHyperlink イベントは発生せず。また、「ハイパーリンクのシート移動」は、シート移動のイベントが発生しない。 

 2. Excel 「ハイパーリンク」使用方法の説明 

  「広告」  
 

 (30) Mac版では、Excelワークシート・ブックの FollowHyperlink イベントは発生せず! 


Excel メニューバーの [ヘルプ] - [更新プログラムのチェック] にて、適用されていないアップデートがあれば行ってください。 

Excel 2016 for Mac 環境での説明となりますので、 Mac版 Excel 2011 では( VBA が利用できますが )同じ結果にならない場合があるかもしれません。

現状、 VBE 内で日本語を記述すると(貼り付けのみ可能な場合あり)乱れたり、保存時にクラッシュすることが多いため、 VBAコード は「未変換の英数字のみ」で記述してください。(テキストエディタからの貼り付けは可能)

( ユーザー定義関数 のVBAコードを含んだ)前回使用した XLSM ファイルを、「マクロを有効」にして開きます。

21

結論から先に言うと、Excel ワークシートに設定した「ハイパーリンク」をクリックした際に発生する  FollowHyperlink イベントは、Mac版では発生しない
イベントプロシージャそのものは記述可能で、実行時エラーにもならないが…
ワークシート・ワークブック の2オブジェクトが、FollowHyperlink イベントを持つ。


2つめのExcelシート( 筆者だと、Sheet2 ) 対応モジュールの末尾に、以下のコードを入力するかそのままコピーして貼り付ける。(緑色の部分はコメントのため、省略可)

'----------------------------------------
'    Event: Worksheet_FollowHyperlink()
'----------------------------------------
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    MsgBox "Hyperlink is clicked!" & vbLf & _
        ".Name= " & Target.Name & vbLf & _
        ".Address= " & Target.Address
End Sub


ThisWorkbook モジュールの末尾に、以下のコードを入力するかそのままコピーして貼り付ける。(緑色の部分はコメントのため、省略可)

'----------------------------------------
'    Event: Workbook_SheetFollowHyperlink()
'----------------------------------------
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, _
ByVal Target As Hyperlink)
    MsgBox Sh.Name & " Hyperlink is clicked!" & vbLf & _
        ".Name= " & Target.Name & vbLf & _
        ".Address= " & Target.Address
End Sub

以前に説明した通り、Object 型を用いるのは、Worksheet あるいは Chart オブジェクト 等複数のオブジェクトが対象となるため。
Hyperlink という型の オブジェクト も存在するようだ。


 1. Mac版の Worksheet ・ Workbook の FollowHyperlink イベントは発生せず。また、「ハイパーリンクのシート移動」は、シート移動のイベントが発生しない。 

念のため、2つのイベントプロシージャの Msgbox 行にブレークポイントを設定したが、トラップできず
よって、少なくとも 2015/12/16 現在の Excel 2016 for Mac では FollowHyperlink イベントは発生しない。

特筆すべきは、「ハイパーリンクのシート移動」を利用した場合も、シート(ブック)オブジェクトの Activate および Deactivate イベントが発生しないことだ!
その際に 「指定セルの選択(セル参照)」も指定できるが、セルが移動した場合に SelectionChange イベントはきちんと発生すること を確認できた。


 2. Excel 「ハイパーリンク」使用方法の説明 

名称未設定

せっかくなので、「ハイパーリンク」使用方法を説明致します!

「A13」セルのように「 http:// 」から始まるURLや「 mailto: 」を入力(貼り付け)した場合、自動的にハイパーリンクとみなされ 上図のように 下線付きリンク で表示される。

「 http://」から始まるURLをクリックした場合(デフォルトのブラウザを起動後に)そのページを表示し、「 mailto:(メールアドレス) 」ならデフォルトのメールアプリを起動する。

なお、ハイパーリンクにしたくない場合、直後であれば [command] + [Z] にてハイパーリンク無しの「只の文字列」に戻すことが可能。 
矢印のUndoアイコン」をクリックすれば、複数の操作も「取り消し」できる。


「A14」セルのように、リンク先アドレスではなく「表示するテキスト」の設定も可能。
ハイパーリンクを格納したセルを 右クリック して「ハイパーリンクの編集」を選択すると、以下のダイアログ画面が表示される。
アドレスの設定しだいで、既存のファイルを設定することもできるらしい。
48


「A15」セルのように「このドキュメント」を指定すると、シート(の任意セル)に移動することが可能。
「セル参照」は、選択(移動)したいセル。
この機能を利用して「シート移動」した場合、シート(ブック)オブジェクトの Activate および Deactivate イベントは発生しない!
ただし、ワークシート内で別のセルから(下記画面例だと「A1」)に選択(移動)した場合は SelectionChange イベントはきちんと発生する。 
35


右クリックメニューの「ハイパーリンクの削除」あるいはハイパーリンク設定画面の「リンクの解除」から、ハイパーリンクでない「文字列」に戻すこともできる。
また、「ハイパーリンクを開く」は、リンクをクリックする代替操作だ。


次回も、 Excelブックの まだ説明していないイベント です!


お疲れ様でした!
[command] + [Q] にてExcel を終了時、「作業中のブック」を保存するか確認のダイアログ画面が表示されるため 「保存」しましょう。
現状、 VBE 内で日本語を記述すると(貼り付けのみ可能な場合あり)乱れたり、保存時にクラッシュすることが多いため、 VBAコード は「未変換の英数字のみ」で記述してください。(テキストエディタからの貼り付けは可能)


最後まで読んでいただき、ありがとうございます。
ぜひ、右側の「人気ブログランキング」投票に ご協力ください。
また、お越しくださいませ。
// アタル

  「広告」