Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

Excelで動的ツールチップを作成する方法|数式とVBAを使ったステップバイステップ解説

Excelで動的ツールチップを作成する方法

Excelでは、セルにマウスを合わせたり選択したりすると情報がポップアップ表示される「ツールチップ」を作成できます。数式とVBAを組み合わせれば、別シートのデータを自動的に参照し、選択したセルに応じて内容が変わる動的なツールチップを実現できます。この記事では、その具体的な手順をステップごとに詳しく解説します。さらに、初心者でも簡単にできる静的ツールチップの作成方法を3つあわせて紹介します。

ステップ1:数式を使って別シートからデータを取得する

  • 新しいワークシートに、「連番」と「名前」の2列からなるデータテーブルを作成します。1列目には1、2、3…といった連番を入力し、2列目にはDatasetシート内の名前をランダムな順序で入力しましょう。
  • D列に「Tooltip」という見出しの列を作成します。次に、セルD5に以下の数式を入力してください。

=IFERROR(VLOOKUP(C5,Dataset!$B$4:$D$10,{2,3},FALSE),"")

VLOOKUP関数は、指定した範囲の最左列の値が検索値(lookup_value)と一致する行を探し、その行の指定した列の値を返す関数です。ここではIFERROR関数で囲むことで、該当データがない場合にエラーではなく空白を表示するようにしています。

  • フィルハンドルを使って、残りのセルにも数式をオートフィルでコピーします。

Excelで動的ツールチップを作成する方法|数式とVBAを使ったステップバイステップ解説

  • D列とE列を選択して右クリックし、コンテキストメニューから非表示を選択して、この2列を隠しておきます。

Excelで動的ツールチップを作成する方法|数式とVBAを使ったステップバイステップ解説

ステップ2:VBAコードを設定する

  • ワークシートのシート名タブを右クリックし、コンテキストメニューからコードの表示(View Code)をクリックします。

Excelで動的ツールチップを作成する方法|数式とVBAを使ったステップバイステップ解説

  • 開いたコードウィンドウに、以下のVBAコードを入力します。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rng As Range
Dim cell As Range
' 既存のコメントを削除
For Each rng In Me.UsedRange
If Not rng.Comment Is Nothing Then
rng.Comment.Delete
End If
Next rng
If Target.Count > 1 Then Exit Sub
If Target.Column <> 3 Then Exit Sub
If Target.Row < 5 Then Exit Sub
Dim tooltipText As String
tooltipText = "Birth Date: " & Target.Offset(0, 1).Value & _
vbCrLf & "Age: " & Target.Offset(0, 2).Value
Target.AddComment tooltipText ' ツールチップ用のコメントを追加
Target.Comment.Shape.TextFrame.AutoSize = True ' コメントサイズを自動調整
End Sub

Excelで動的ツールチップを作成する方法|数式とVBAを使ったステップバイステップ解説

  • ワークシートに戻り、「Name(名前)」列の任意のセルをクリックしてみてください。その人の生年月日(Birth Date)年齢(Age)を表示するツールチップが現れます。選択したセルに応じて表示内容が変わるため、まさに動的なツールチップです。

Excelで動的ツールチップを作成する方法|数式とVBAを使ったステップバイステップ解説

Excelで動的ツールチップを作成する方法|数式とVBAを使ったステップバイステップ解説

Excelで静的ツールチップを作成する3つの方法

方法1:「データの入力規則」機能を使って静的ツールチップを作成する

手順:

  • データタブに移動します。
  • データツールグループにあるデータの入力規則アイコンをクリックします。

Excelで動的ツールチップを作成する方法|数式とVBAを使ったステップバイステップ解説

  • データの入力規則ダイアログボックスが開きます。
  • 入力メッセージタブを選択します。
  • タイトル欄にツールチップのタイトルを入力します。
  • 入力メッセージ欄に表示したいメッセージを入力します。
  • OKをクリックします。

Excelで動的ツールチップを作成する方法|数式とVBAを使ったステップバイステップ解説

  • セルD4を選択すると、設定したツールチップが表示されます。

Excelで動的ツールチップを作成する方法|数式とVBAを使ったステップバイステップ解説

方法2:Excel VBAを使ってツールチップを作成する

手順:

  • 対象となるワークシートをアクティブにします。
  • 開発タブを開きます。
  • コードグループからVisual Basicを選択します。

Excelで動的ツールチップを作成する方法|数式とVBAを使ったステップバイステップ解説

  • メニューの挿入標準モジュールの順にクリックして、モジュールウィンドウを開きます。

Excelで動的ツールチップを作成する方法|数式とVBAを使ったステップバイステップ解説

  • 以下のコードを入力します。
Sub AddToolTip()
Dim target As Range
Set target = Range("D4")
With target.Validation
      .Delete
      .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, _
          Operator:=xlBetween
      .IgnoreBlank = True
      .InCellDropdown = True
      .InputTitle = "Formula Column"
      .InputMessage = "Please, do not modify the Age column. All of the following cells in this field contain a formula."
      .ShowError = True
  End With
End Sub
  • F5キーを押すか、実行ボタンをクリックしてマクロを実行します。

Excelで動的ツールチップを作成する方法|数式とVBAを使ったステップバイステップ解説

  • セルD4を選択すると、下図のようなツールチップが表示されます。

Excelで動的ツールチップを作成する方法|数式とVBAを使ったステップバイステップ解説

関連記事:Excel VBAでマウスオーバー時にツールチップを表示する方法

方法3:リンク(ハイパーリンク)機能を使って静的ツールチップを作成する

手順:

  • セルD4を選択し、右クリックします。
  • コンテキストメニューが表示されるので、リンクを選択します。

Excelで動的ツールチップを作成する方法|数式とVBAを使ったステップバイステップ解説

  • ハイパーリンクの挿入ダイアログボックスが開きます。
  • リンク先セクションから「このドキュメント内」をクリックします。
  • セル参照ボックスにD4と入力します。
  • スクリーンチップボタンをクリックします。

Excelで動的ツールチップを作成する方法|数式とVBAを使ったステップバイステップ解説

  • ハイパーリンクのスクリーンチップの設定画面が開きます。
  • スクリーンチップテキストボックスに表示したいメッセージを入力します。
  • OKをクリックします。

Excelで動的ツールチップを作成する方法|数式とVBAを使ったステップバイステップ解説

  • ハイパーリンクの挿入ダイアログに戻り、OKをクリックします。

Excelで動的ツールチップを作成する方法|数式とVBAを使ったステップバイステップ解説

  • マウスカーソルをセルD4に合わせると、設定したツールチップが表示されます。

Excelで動的ツールチップを作成する方法|数式とVBAを使ったステップバイステップ解説

練習用ワークブックのダウンロード

関連記事

  • Excelでツールチップを編集する方法
  • Excelグラフでツールチップを作成する方法
  • Excelでツールチップを削除する方法
  • Excelでセルにマウスを合わせたときに全内容を表示する方法
  • Excelでホバー時にツールチップを挿入する方法
  • Excelボタンにツールチップを設定する方法

« Excelツールチップに戻る | Excelをもっと学ぶ

解答付きの実践的なExcel演習問題を無料で入手しよう!

Excelで動的ツールチップを作成する方法|数式とVBAを使ったステップバイステップ解説

執筆者:Lutfor Rahman Shimanto

Lutfor Rahman Shimanto氏は、バングラデシュのジャハンギルナガル大学で情報技術学(BSc)を専攻し、ExcelDemyプロジェクトに1年以上にわたって携わっています。これまでに50本以上の記事を執筆し、100件以上の読者からの質問に対して解決策を提供してきました。現在はExcel・VBA開発者として、ExcelDemyフォーラムでのサポートやトラブルシューティング(解決実績100件以上)に従事しています。専門分野はExcel、VBAおよび各種デスクトップアプリケーションの開発です。業務以外ではチェスを楽しんでいます。

  1. Outlookで「クラスが登録されていません」エラーが出たときの対処法

    Outlook Todayは、OfficeのコンポーネントであるOutlookが提供する便利な機能のひとつです。この機能を使えば、スマートフォンで予定を管理するように、Outlook上でもイベントやスケジュールを簡単に登録できます。さらに、よく使うメールフォルダやメールアカウントを追加しておくことで、日々の業務を効率よく進められます。ビジネスパーソンにとって、この機能は非常に重要なものと言えるでしょう。 しかし、この機能を使用している際に、以下のようなエラーが表示されることがあります。 Line: 298 Char: 1 Error: クラスが登録されていません(Class not regi

  2. 【保存版】Power QueryでExcelの列を分割する5つの簡単な方法

    Excelで氏名や住所など、1つのセルに複数の情報がまとめられたデータを扱うとき、後からの集計や並べ替えをスムーズに行うには、列を適切に分割することが重要です。Power Query を使えば、複雑な数式を組み立てなくても直感的な操作だけで列を分割でき、さらに元データを壊さずに処理できるのが大きな魅力です。本記事では、Power Query を使用して Excel の列を分割する実証済みの5つの方法を、具体的な操作手順とあわせてわかりやすく解説します。方法1:区切り記号コマンドで列を分割するステップ1:データをテーブル化してPower Queryエディターを開くまず、データセット全体の範囲を選