Excelマクロでコントロールツールボックスを表示させた状態でセルの選択位置をマウスで移動したい

このQ&Aのポイント
  • MS-Excel2000のマクロを使用して、コントロールツールボックスを表示させた状態でセルの選択位置をマウスで移動させたいと思っています。しかし、コントロールツールボックスが表示されていると、セルの選択位置を移動することができません。どのような指示をすれば、コントロールツールボックスを表示しながらセルの選択位置を移動することができるのでしょうか。
  • はんこ(スタンプ)のように、コントロールツールボックスのコマンドボタンを押すと、文字がアクティブセルに表示されるようにしたいと思っていますが、コントロールツールボックスを表示したままで任意の位置のセルをマウスで選択することができるようにしたいです。
  • Excelマクロを使用して、コントロールツールボックスを表示させたままでセルの選択位置をマウスで移動させるにはどのような方法があるでしょうか?セルの選択位置を移動しながらコントロールツールボックスを使用して文字をアクティブセルに表示させる方法を教えてください。
回答を見る
  • ベストアンサー

コントロールツールボックスを表示させた状態でセルの選択位置をマウスで移動させたい。

MS-Excel2000のマクロにおいて、 UserForm1.Showでコントロールツールボックスを表示させた状態で セルの選択位置をマウスで移動させたいと思っておりますが、 コントロールツールボックスがあるとセルを選択位置移動ができません。 (もちろん、コントロールツールボックスを消せば セルの選択位置移動はできます。) どのような指示にすればできますでしょうか? よろしくご教授願います。 やりたい事は、 はんこ(スタンプ)みたいにコントロールツールボックスの コマンドボタンを押したら文字がアクティブセルに表示するようにしたい。 ただし、コントロールツールボックスを表示したままで アクティブセルはマウスで任意の位置を選択できるようにする。 ってことです。

  • awada
  • お礼率41% (14/34)

質問者が選んだベストアンサー

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

>UserForm1.Showでコントロールツールボックスを表示させた状態で >セルの選択位置をマウスで移動させたいと思っておりますが、・・・ >やりたい事は、はんこ(スタンプ)みたいにコントロールツールボックスの >コマンドボタンを押したら文字がアクティブセルに表示するようにしたい。 >ただし、コントロールツールボックスを表示したままで >アクティブセルはマウスで任意の位置を選択できるようにする。 ってことです。 やりたい事については、なんとなく分かるような気がしますが、コントロールツールボックスのコマンドボタンを押すことで(キッカケで)アクティブセルに文字を表示することはできないでしょう。(こういう意味?) コントロールツールボックスはユーザーフォームを作成する時に使うもので、質問のようなことはもっと簡単にできます。普通の使い方のように思いますが・・・ ユーザーフォームを表示した状態でのセル選択はExcel2000なので簡単にできます。(モーダレスでのユーザーフォームの表示) InputBoxメソッド、他のコントロールなどがありますが、モーダレスでユーザーフォームを表示するのがいちばん簡単でしょう。(モーダル:そのフォームにのみ応答可能な状態。モーダレスだと、そのフォームに束縛されていない状態で、セルの選択ができるわけです) 例として、ユーザーフォーム(UserForm1)上に テキストボックス(TextBox1)とコマンドボタン(CommandButton1)を配置します。 文字が決まっているならTextBox1のプロパティTextにその文字をセットしておきます。 ユーザーフォーム上に配置したコマンドボタンをダブルクリックして、コードウインドウでコードを編集して Private Sub CommandButton1_Click()   Dim rg As Range 'セル   For Each rg In Selection     rg = TextBox1.Text   Next End Sub とします。For Eachで複数セル範囲を選択した時も動くようにしてあります。 Sheet1でコントロールツールボックスからコマンドボタン(CommandButton1)を1つシートに貼り付けます。 このコマンドボタンをダブルクリックして、Sheet1のコードウインドウで、コードを編集して Private Sub CommandButton1_Click()   UserForm1.Show vbModeless End Sub とします。 Sheet1に戻り、 1.デザインモードを解除 2.シート上のコマンドボタンをクリックでユーザーフォームが表示される。 3.この状態は、セルの選択、複数セルの選択、Shiftキー・Ctrlキーをつかってのセル選択、シートの切り替えができます。 質問を自己流に解釈してしまっているかもしれません。 要旨は、ユーザーフォームをモーダレスで表示して、ユーザーフォーム上のコマンドボタンで選択したセルに表示するようにしています。ご参考に。

awada
質問者

お礼

nishi6さん、わかりにくい私の質問の意図を把握していただき、 ありがとうございます。今回の回答で満点です。 vbModelessってたった一言だったんですね。 本当にありがとうございます。

関連するQ&A

  • マウスでコントロールを移動させたくない

    お世話になります。 客先の要望で、マウスで移動させたくないコントロールがありどのようにしたらよいか悩んでいます。 以下のような方法を考えていたのですが・・・ 1.移動元のコントロールを退避しておく 2.移動させたくないコントロールのMouseDownイベントで  元のコントロールにSetFocusする コンボボックスにMouseDownイベントが無く実現不可能となってしまいました。 何か良い方法はございませんでしょうか?

  • 【イラストレーター】直線ツールと書式コントロールボックスが表示されません

    【イラストレーター9】を使用していますが、いくつか分からない事があります。 1.ツールボックスに直線ツールがありません。ウィンドウなどで探したのですが見つかりません。どこにあるのでしょうか? 2.文字ツールを選択しても書式のコントロールボックスが表示されません。文字の部分を選択して右クリックすればフォントやサイズなどの画面が出ましたが・・。

  • EXCELのコントロール ツールボックスの使い方

    EXCELの「コントロール ツールボックス」でEXCELシート上にコンボボックスをつくって、その中からデータを選びたいのです。どのようにしたらコンボボックス内に選択対象のデータが出るようになるでしょうか?

  • WORD2002:コントロールツールボックスのテキストボックス

    WORD2002でアンケートフォームを作成中です。 コントロール・ツールボックスでテキストボックスを作りました。広めにしてスクロールバーもつけ、たくさん入力できるようにしているのですが、ロック後、テキストボックス内の入力文章に任意で改行が入れられないのが気になります。これをなんとかする方法はないでしょうか? フォームで作ると回答者が任意で改行を入れられる点は良いのですが、入力文字に網掛けがかかってしまうのがデザイン上、気になります。かといって網掛けをオフにすると、入力位置が分かりにくくなってしまいます。※入力範囲は表のセルで表示しましたが、セル内のフォームフィールド以外の場所をクリックしても入力できないため、慣れない回答者には入力しづらそうです。 解決方法のアドバイスをどうぞよろしくお願いします!

  • コントロールツールボックスのプロパティ?

    Excel2003です。 エクセルを開いて、メニューバーの 「表示」→「ツール」→「コントロールツールボックス」。 何かのツールアイコンを表示選択した後、 プロパティアイコンをクリックすると プロパティウインドウが開きますが、 プロパティの項目が、英語で良くわかりません。 すべてのツールに対してこの項目を説明しているサイトをご存知ありませんか? 書籍でもかまいません。 Web検索機能で調べてもなかなかGetできないんで???です。 ご存知の方、よろしくお願いします。

  • Excelのツールボックスにある[RefEdit]というコントロールとは

    Excel2003でUserForm編集時の[ツールボックス]ツールバーに [RefEdit]という見慣れないコントロールがあるのを今日発見し、 ヘルプなどにも説明を見つけられなかったのですが、 これはどういう風に使用するためにあるコントロールなのでしょうか? 単なる興味ですので、 お時間のある時にご存知であればお教えいただければ幸いです。 あまり使用頻度が高くないため、 もし昔から存在してて、ボケた質問でしたらすみません。

  • コントロールツールボックスのリストボックスについて

    エクセルでメインとなるシートにコントロールツールボックス内のリストボックスを使用して商品を選択できるようにしているのですが、(プロバティにて設定。)メインのシートを複製すると、複製されたシートのリストボックスは選択できなくなってしまいます。(まったく反応しなくなる) しかし、メインのシートに戻りリストボックスを選択後、複製されたシートへ戻ると選択可能になります。 どうすれば問題が解決するのかまったくわかりません。 宜しくお願い致します。 エクセルは2003です。

  • エクセル2003、コントロールツールボックスの「ボタン」について

    コントロールツールボックスの、「ボタン」を使用し、複数のセルデータを、違うセルに転送したいと思っています。 例えば、写真のように「5行目」にある数値を、転送ボタンを押せば、「1行目」に表示されるというようにしたいのですが、可能でしょうか? 転送元のセル番地と、転送先セル番地が指定できればなおうれしいのですが・・・ どうぞ、よろしくお願い申し上げます。

  • あるセルの選択内容によって次ぎのセルをクリックした時に表示させるリストボックスの中身を変更したい。

    EXCEL VBAについての質問です。 初心者です。宜しくお願い致します。 使用環境はWindows 2000 service pack4 Excel 2000. =質問= セルA1をクリックするとあるリストボックスを表示させること の応用です。 セルA1をクリックするとリストボックスが表示させること自体 は以下の文で作動します。(userform1の中にリストボックス を設定してある。) Private Sub Worksheet_selectionChange(ByVal Target As Range) If Target.Address = "$A:$1" Then UserForm1.Show Cancel = True End if End sub この応用として、セルA1で選択された項目(値)によってセルA2 をクリックした時に表示させるリストボックス(ユーザーフォ ーム)を変更したい。 例えばセルA1の選択が"ABC"でセルA2をクリックするとリスト ボックス2(ユーザーフォーム2)が、選択が"EFG"の場合は リストボックス3(ユーザーフォーム3)が表示されるように したい。 セルA1の選択肢は最大4つでセルB1用に4つのユーザーフォー ムを準備することは問題ありません。 また、セルA1の選択項目を一旦どこかのセルに飛ばして数値化 しても問題なし。 最初、excelのIndirectとIf関数を使って、作業用シートでA1 を参照し、その項目(値)によって参照するリストを分けよう と思っていたのですが、セルA1、A2の幅が広ければよかったの ですが、1つのセル幅を小さく設定しなければならず、その場 合indirect関数で開いたリストは1つの項目に対し2~3文字し か表示できない状態になりました。 セルA1、A2の幅が小さくてもindirectによって開かれるリスト の幅が変更できればいいのですが、それは出来ないようです。 Worksheet_selectionChangeにIF文を加えてみたりしたのです が上手くいきません・・・ 海外で仕事をしているので参考文献やVBAに詳しい人に聞く事 ができません。 ご尽力のほど、宜しくお願い致します。

  • photoshop 移動ツールでの選択方法

    photoshopの移動ツールで、2つの少しだけずれて重なったオブジェクトを選択したいのですが、バウンディングボックスを表示にチェックを入れると、カーソルが拡大や回転になってしまい、選択しずらいし、バウンディングボックスにチェックを入れないと、どのオブジェクトを選択しているのかわからないしで、作業効率がものすごく落ちてしまいます。なにか良い選択方法はないでしょうか?

専門家に質問してみよう