- 締切済み
Excel VBA コメントに関して
Excel2003を使用しています。 VBAになるのかは定かではないのですが Excelの機能に「コメント」を付ける機能がありますよね セルに対してカーソルを合わすことで表示される黄色い枠のコメントのことをしるす。 これをオートシェイプやコマンドボタン等のオブジェクトに対してカーソルを合わせることに よってこのコマンドがなんなのかのコメントを付けたい場合Excelでできるのでしょうか? もし、できるとしたならばどのようにしたらいいのでしょうか? VBAを使いできるのか、もっと楽な方法があるのか 教えて頂きたいのです。 ご教授願えないでしょうか、宜しくお願いします(人>д<*ペコ謝) ※補足※ コマンドボタンやオートシェイプでテキストを入れてしまうとボタン自体が入れる文字数によって大きくなってしまうのでできるだけ小さいボタンを作り補足事項やヘルプとして使用したい。 コマンドボタンにはVBAプログラムを組むとして、オートシェイプならば、図形にマクロを登録するとして、カーソルを合わした時のみコメントを表示させたいということです。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- misatoanna
- ベストアンサー率58% (528/896)
#2 misatoannaです。 下図上左段のB2にハイパーリンクを設定するとします。 B2内で右クリックし、ポップアップメニューから[ハイパーリンク]を選択し、表示される[ハイパーリンクの挿入]ダイアログの各項目を次のように編集します。 1.ダイアログ左側の"このドキュメント内"を選択し、[セル参照を入力してください]蘭内に B2 と入力。 2.[表示文字列]欄にセル幅いっぱいに表示される文字列を入力。 3.[ヒント設定]ボタンをクリックして文字入力。これがマウスポイントでポップアップする文字列になります。(2の文字列については後記) 4.編集が済んだら[OK]でダイアログを閉じると、下図上段右のようになります。 5.B2セルを覆うようにフォームのボタンか図形を描きます。(下図中段) で、ボタンの上にマウスカーソルを当てると、下図下段のように文字列がポップアップします。 セルにハイパーリンクを設定しても、文字列上でクリックしないとハイパーリンクは動作しません。 ヒントのポップアップも同様です。 このため、セルのどの部分にポインタを合わせてもヒントがポップアップするように、セル幅全体に何らかの文字列を置いておくのです。文字色を白にしておいてもかまいません。
- real beatin(@realbeatin)
- ベストアンサー率82% (174/211)
こんにちは。お邪魔します。 ToolTipText(ControlTipText )を設定したボタンをシート上に配置したい。 ということなのだと思います。 まず、はっきりした方がいいと思うのですが、 用意された機能としてお望みを叶えるようなボタンやシェイプはありませんので、 それに近いことを実現させる為に工夫をすることになります。 幾つか方法はありますが、それぞれに長所・短所がある ということには変わりません。 また、何れの方法を採ったとしても、事情を知らない人からみれば、 本来の目的とは異なる特殊な使い方をしていることで 困惑させちゃう可能性高いですから、 将来、引き継ぐべき他者や、忘れてしまった頃の自分に向けて、 何故そのように奇異に映るようなことをしているのか、理由とか、 編集を加えたい場合の術(すべ)などを、メモとして残しておいて、 無用な混乱やトラブルを事前に防ぐようにしましょう。 【長所・短所】 ハイパーリンクの場合は、 オートシェイプやフォームコントロールのボタンには有効でも、 ActiveX(ツールバー)コントロールには使えない。 ToolTipText は、 セル範囲を基準にしてマウスポインターが当たったタイミングを契機にするので 実際のシェイプやボタンの位置や大きさとはズレが生じる。 ボタンの場合、マウスポインターの形が変わる。 透過したActiveX(ツールバー)コントロールのラベルの場合は、 ToolTipText の代用(例えばPopUpタイプのCommandBarとか)を表示するので、 表示されるまでの反応が速いのが特長ですが、 マウスポインターが外れたタイミングでToolTipTextを非表示にすることが出来ないので 複数のボタンを並べた時に、ボタンを押す等の操作を一度挟まないと 次のボタンのToolTipTextを表示させることが難しい。 これから私が紹介する(薦める)方法は、本来はボタンでないもの、 元々ToolTipText を備えたActiveX(ツールバー)コントロールTabStrip のタブ部分を ボタン´に見せかけて代用する方法ですが、この場合は、 上に挙げた2例で短所になっていた問題は解消されますが、 ボタン´の背景色を好きな色に変えることが難しい(VBA上級ベテラン級の技術が必要)。 ボタン´の幅に関して2つ(コントロール全体とタブ部分)の幅を設定する必要があるので 導入時に一手間余計に掛かる。 ToolTipTextを設定したTabStripを実際にシート上に配置するサンプルマクロ を紹介します。 まずは、マクロを実行してみて、どんなものなのかを確認してみて下さい。 ' ' /// ' ' TabStrip コントロールのタブをボタンに見せかけてTipTextを表示可能にする ' ' ★以下、編集可能なパラメータ★ ' ' ★位置:アクティブシートのセルF10の左上(.Left,.Top)に合わせて配置。 ' ' ★幅(TabStrip コントロールの幅):72 (下記Tabの幅の数値に依存。3 加えた数値) ' ' ★幅(TabStrip コントロールのTabの幅):69 ' ' ★高さ(TabStrip コントロールの高さ):15 ' ' ★高さ(TabStrip コントロールのTabの高さ):11(デフォルトのフォントサイズ 11 に合わせたもの) ' ' ★ボタン´(TabStrip コントロールのTab)に表示する文字列:"処理●●●" ' ' ★ボタン´にマウスポインターを当てた時に表示する文字列:"このボタンを押すと●●● ..." Sub Sample() Dim r As Range Set r = ActiveSheet.Range("F10") ' ' TabStrip コントロールを挿入(位置、幅、高さを指定) With ActiveSheet.OLEObjects.Add( _ ClassType:="Forms.TabStrip.1", _ Link:=False, DisplayAsIcon:=False, _ Left:=r.Left, Top:=r.Top, Width:=72, Height:=15) With .Object ' ' ボタン´に見せかけ為にタブを下方に配置して陰影を表示させる .TabOrientation = 1 ' fmTabOrientationBottom ' ' ボタン´のタブの数(デフォルトで2なので)を減らして、1つだけにする .Tabs.Remove 1 ' ' ボタン´のタブの固定幅・固定高さを指定する .TabFixedWidth = 69 .TabFixedHeight = 11 ' ' ボタン´に表示する文字列 .Tabs(0).Caption = "処理●●●" ' ' ボタン´にマウスポインターを当てた時に表示する文字列 .Tabs(0).ControlTipText = "このボタンを押すと●●●●●●●●●●●●を実行します。" End With ' ' TabStrip のオブジェクト名前をイミディエイトウィンドウ(VBE画面 Ctrl+G で表示されるウィンドウ)に出力 Debug.Print .Name End With End Sub ' ' /// ボタン´を押した時に実行するマクロの例として、(シートモジュール) ' ' /// Private Sub TabStrip1_Click(ByVal Index As Long) MsgBox "TabStrip" End Sub ' ' /// Sub Sampleを初めて実行した時は、挿入されるTabStripのオブジェクト名が TabStrip1 になりますが、 Private Sub TabStrip2_Click(ByVal Index As Long) 等の様にオブジェクト名は正しく書き換える必要があります。 その為に、Sub Sampleでは、 オブジェクト名前をイミディエイトウィンドウで確認できるようにしてあります。 例えば仮に、従来のマクロが Private Sub CommandButton1_Click() の一行で始まるプロシージャに書いてあった場合は、 この一行を Private Sub TabStrip1_Click(ByVal Index As Long) に書き換えるような要領でも適用可能です。 言ってみれば、CommandButtonを用いる場合とのちがいは、 イベントプロシージャの一行めだけ、です。 手作業でのTabStripの扱いについて。 挿入の仕方: [ツールバー] > [その他のコントロール] > [Microsoft Forms 2.0 TabStrip]を選択してセル上に挿入 デザイン: まずはデザインモードに切り替え。 TabStrip コントロールを選択 > 右クリック > [プロパティ] ★★プロパティページで設定する可能なもの。 ★位置:[Left] [Top] ★幅(TabStrip コントロールの幅):[Width] ★幅(TabStrip コントロールのTabの幅):[TabFixedWidth] ★高さ(TabStrip コントロールの高さ):[Height] ★高さ(TabStrip コントロールのTabの高さ):[TabFixedHeight] フォント(フォント名、スタイル、サイズ等):[Font] ボタン´に表示する文字の色:ForeColor タブの表示位置:TabOrientation TabStrip コントロールを選択 > 右クリック > [タブ ストリップ オブジェクト] > [編集] >> 右クリック > [名前の変更...] ' ' ★ボタン´(TabStrip コントロールのTab)に表示する文字列:[キャプション] ' ' ★ボタン´にマウスポインターを当てた時に表示する文字列:[コントロール ヒント文字列] 削除したいタブを選択してから>> 右クリック > [削除] 概要として以上です。 因みに趣旨に沿った内容のWebページ等はこちらでは見つけられていません。 他の方の回答への補足は私からは遠慮します。 拙い説明ではありますが、不足・不明などあれば、補足欄にでも書いてみて下さい。
- misatoanna
- ベストアンサー率58% (528/896)
フォームのボタンまたは図形にマクロを登録する場合でしたら、その背面に置くセルに次のようにハーパーリンクを設定します。 a)リンク先:セル参照として、そのセル自身のアドレスを指定。 b)表示文字列:セル幅いっぱいの任意の文字列 c)ヒント設定:ポップアップしたい文字列を入力。 ボタンまたは図形をマウスポイントすると、若干タイムラグがありますが、c)で指定した文字列が表示されます。
- ushi2015
- ベストアンサー率51% (241/468)
こんにちは ActiveXのラベルをオートシェイプやコマンドボタン等のオブジェクトの上に 配置して、BackStyleプロパティで透明にして、MouseMoveイベントで メッセージボックス等でコメントを表示してはどうですか?
補足
返信が遅くなりまして申し訳ございませんでした 上記内容読ませていただきましたが どう使えばいいのか良く分からないです。 何か参考になりそうなサイトか手順方法を載せて頂くと大変ありがたいです。
補足
返信が遅くなりまして申し訳ございませんでした 上記内容読ませていただきましたが どう使えばいいのか良く分からないです。 何か参考になりそうなサイトか手順方法を載せて頂くと大変ありがたいです。 上記 の「背面に置くセルに次のようにハーパーリンクを設定」 背面とはどうゆうことでしょうか? 「a)リンク先:セル参照として、そのセル自身のアドレスを指定。 b)表示文字列:セル幅いっぱいの任意の文字列 c)ヒント設定:ポップアップしたい文字列を入力。」 aに対して、セル参照とはそのボタンがどのセルにあるのか?の参照セルをさすものなのでしょうか?? bに対して、表示文字列とはハイパーリンクに表示される文字列のことをさすのでしょうか? cに対して、ヒント設定とはどこに何を入力または参照させればいいのでしょうか? なにかしら分かりやすい画像や動画などのURLがあると大変恐縮ではありますがありがたいです。 何から何までお手数をおかけしてゴメンナサイ 無知で更なる愚かな私で申し訳ございませんが宜しくお願い致します (:>_<:)ペコッ