• 締切済み

Excel VBA コメントに関して

Excel2003を使用しています。 VBAになるのかは定かではないのですが Excelの機能に「コメント」を付ける機能がありますよね セルに対してカーソルを合わすことで表示される黄色い枠のコメントのことをしるす。 これをオートシェイプやコマンドボタン等のオブジェクトに対してカーソルを合わせることに よってこのコマンドがなんなのかのコメントを付けたい場合Excelでできるのでしょうか? もし、できるとしたならばどのようにしたらいいのでしょうか? VBAを使いできるのか、もっと楽な方法があるのか 教えて頂きたいのです。 ご教授願えないでしょうか、宜しくお願いします(人>д<*ペコ謝) ※補足※ コマンドボタンやオートシェイプでテキストを入れてしまうとボタン自体が入れる文字数によって大きくなってしまうのでできるだけ小さいボタンを作り補足事項やヘルプとして使用したい。 コマンドボタンにはVBAプログラムを組むとして、オートシェイプならば、図形にマクロを登録するとして、カーソルを合わした時のみコメントを表示させたいということです。

みんなの回答

回答No.4

#2 misatoannaです。 下図上左段のB2にハイパーリンクを設定するとします。 B2内で右クリックし、ポップアップメニューから[ハイパーリンク]を選択し、表示される[ハイパーリンクの挿入]ダイアログの各項目を次のように編集します。 1.ダイアログ左側の"このドキュメント内"を選択し、[セル参照を入力してください]蘭内に B2 と入力。 2.[表示文字列]欄にセル幅いっぱいに表示される文字列を入力。 3.[ヒント設定]ボタンをクリックして文字入力。これがマウスポイントでポップアップする文字列になります。(2の文字列については後記) 4.編集が済んだら[OK]でダイアログを閉じると、下図上段右のようになります。 5.B2セルを覆うようにフォームのボタンか図形を描きます。(下図中段) で、ボタンの上にマウスカーソルを当てると、下図下段のように文字列がポップアップします。 セルにハイパーリンクを設定しても、文字列上でクリックしないとハイパーリンクは動作しません。 ヒントのポップアップも同様です。 このため、セルのどの部分にポインタを合わせてもヒントがポップアップするように、セル幅全体に何らかの文字列を置いておくのです。文字色を白にしておいてもかまいません。

回答No.3

こんにちは。お邪魔します。 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ページ等はこちらでは見つけられていません。 他の方の回答への補足は私からは遠慮します。 拙い説明ではありますが、不足・不明などあれば、補足欄にでも書いてみて下さい。

回答No.2

フォームのボタンまたは図形にマクロを登録する場合でしたら、その背面に置くセルに次のようにハーパーリンクを設定します。 a)リンク先:セル参照として、そのセル自身のアドレスを指定。 b)表示文字列:セル幅いっぱいの任意の文字列 c)ヒント設定:ポップアップしたい文字列を入力。 ボタンまたは図形をマウスポイントすると、若干タイムラグがありますが、c)で指定した文字列が表示されます。

ayabie3579jp
質問者

補足

返信が遅くなりまして申し訳ございませんでした 上記内容読ませていただきましたが どう使えばいいのか良く分からないです。 何か参考になりそうなサイトか手順方法を載せて頂くと大変ありがたいです。 上記 の「背面に置くセルに次のようにハーパーリンクを設定」 背面とはどうゆうことでしょうか? 「a)リンク先:セル参照として、そのセル自身のアドレスを指定。 b)表示文字列:セル幅いっぱいの任意の文字列 c)ヒント設定:ポップアップしたい文字列を入力。」 aに対して、セル参照とはそのボタンがどのセルにあるのか?の参照セルをさすものなのでしょうか?? bに対して、表示文字列とはハイパーリンクに表示される文字列のことをさすのでしょうか? cに対して、ヒント設定とはどこに何を入力または参照させればいいのでしょうか? なにかしら分かりやすい画像や動画などのURLがあると大変恐縮ではありますがありがたいです。 何から何までお手数をおかけしてゴメンナサイ 無知で更なる愚かな私で申し訳ございませんが宜しくお願い致します (:>_<:)ペコッ

  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.1

こんにちは ActiveXのラベルをオートシェイプやコマンドボタン等のオブジェクトの上に 配置して、BackStyleプロパティで透明にして、MouseMoveイベントで メッセージボックス等でコメントを表示してはどうですか?

ayabie3579jp
質問者

補足

返信が遅くなりまして申し訳ございませんでした 上記内容読ませていただきましたが どう使えばいいのか良く分からないです。 何か参考になりそうなサイトか手順方法を載せて頂くと大変ありがたいです。

関連するQ&A

  • 【VBA】 VBAを使ってExcelにSendMessageしてメニューを実行したい

    エクセルにおいて、VBAを使ってExcelに対してSendMessageをおこないメニューを実行したいのですが、メニューのSendMessageの引数WPARAMとLPARAMに 何を渡せば良いのでしょうか?SPY++を使ってメニューを実行したときにExcelに送られるWM_COMMANDを監視していましたがWM_COMMANDが見つかりませんでした。 ご存知の方、ご教授お願いします。 ちなみに、オートシェイプ選択時に「書式」-「オートシェイプ」メニューを実行し、書式設定ダイアログが表示され、オートシェイプの書式設定を変更するのが目的です。(VBAを使って書式設定のダイアログを表示する必要あり) SendKeysステートメントを使ってやってみましたがダメでした。この場合、モードレスダイアログに書式設定するコマンドボタンを配置し、そのボタンをクリックしたときにSendKeysを実行するもので、モードレスダイアログを表示している間はキーがモードレスダイアログに送られると判断してSendKeysの使用はやめました。

  • コネクタを何度も使用する方法

    お世話になります。 EXCEL VBA(EXCELは2003)で、オートシェイプのコネクタのような作りを実現したいと考えています。 私の言う「オートシェイプのコネクタのような作り」とは、  「図形の頂点をクリックすると、カーソルが+のような形になり、他の図形の頂点を   クリックするまで点線が表示される(カーソルの先に繋がっている」 というものです。 上記のような仕組みをVBAにて実現したいと考えています。 また今回はそれに加えて、何度も使用できるようにしたいとも考えています。 オートシェイプのコネクタは、一度しか使用することができません。 (もう一度使用するには、再度コネクタを押下する必要がある) これを、  ・コネクタボタンを押下すると、コネクタが使用可能となる。(コネクタボタンは押下されまま)  ・コネクタボタンが押下されている間はずっとコネクタが使用可能  ・解除するには、再度コネクタボタンを押下する必要がある のような感じの作りにしたいのです。 よろしくお願いいたします。

  • Excel(VBA)

    Excel(VBA)で、指定範囲内にオートシェイプがあるかを判定し、あれば○,なければ×を表示する事は可能でしょうか?

  • エクセル:VBAでシート上のオートシェイプ以外の図形を消去したい。

    お世話になります。 ★VBAでシート上のオートシェイプ以外の図形を消去したいのです。 No.1902175で、エクセルシート上の図形の削除方法をいろいろ教えていただきました。今回は、そのときにはあてはまらなかった、「オートシェイプをのぞく図形をVBAで削除したい」のです。 補足:シートは毎月のある行事等の予定表です。オートシェイプにはマクロを登録しているため消したくありません。その他の図は季節の行事に関するクリップボード等の図で、担当者がシートから毎月手作業で削除していたものです 以上、よろしくお願いいたします。

  • VBAのロジックでEXCEL上にShape図形があるかないかをチェック

    VBAのロジックでEXCEL上にShape図形があるかないかをチェックするには EXCEL2007-VBAを勉強中です。 EXCELシート上にShape図形があるかないかをチェックするには どのように書くのでしょうか どうぞ宜しくお願いします。

  • Excelのコメントデザインを変更する方法

    Excelはセルにコメントを付ける機能がありますが、複数セルに順次コメントを付けていく場合、デザインを変更したコメント(色やフォント、デフォルトで付く冒頭の「:」などを削除)と同じデザインのものを順次挿入していくことはできますか? 設定には見当たらず、コメントを右クリックすると「オートシェイプの既定値に設定」という設定があり、設定したのですが反映されません。 コメントの設定方法と、「オートシェイプ~」の設定の意味について教えてください。 使用しているOSはVista、Excelは2007です。

  • VBAでこのような図形の移動はできますか?

    シート上にあるオートシェイプの図形を、コマンドボタンを押すと「○cm下へ△秒間かけて移動させる」とか「回転させる」というマクロはできますでしょうか? どなたか教えてくださいませんか?よろしくお願いします。

  • エクセル VBA 

    エクセル VBA  Sheet上にコマンドボタンをクリックさせたら 電卓表示させるにはどのように記述をしたら良いですか? (1)勿論、VBAで電卓作成したいのですが…何か良いサイトはありますか?それか  作り方を教えて欲しいです。 (2)ツール⇒すべてのプログラム⇒アクセサリ⇒電卓  で表示できますよね!それをコマンドボタンクリックで  表示させるには、どのように記述したら良いですか?   すいません教えてください!

  • エクセルVBAの図形について

    図形を使用するVBAをはじめて作成中ですが、わからないことがありましたので質問します。 (1)オートシェイプに独自のプロパティーを設定したいのですが良い方法はありますか? (便宜上、NAMEプロパティーで代用しておりますが複数のプロパティを設定したいのです) (2)ONACTIONプロパティに設定しているマクロに対し、 どの図形から実行されたのか知りたいのですが、良い方法はありますか? (3)ある図形からコネクトされている別の図形を特定する方法はありますか? どれかひとつへの回答でもかまいませんので教えてください。

  • エクセルVBAについて

    どのジャンルで投稿すれば良いか分からなかったのでここに投稿しました。私はエクセルVBAの機能を利用して簡単なソフトを作っているのですが、どうしても分からないことがあるので教えて下さい。あるシートのある範囲内に描かれているオブジェクト(例えば直線123,図123,オートシェイプ123)をすべて選択して一括削除するプログラムが分かりません。詳しい方教えて下さい。

専門家に質問してみよう