• ベストアンサー

エクセルのシートにコンボボックスを配置しようとしています。

エクセルのシートにコンボボックスを配置しようとしています。 コントロールツールボックスのコンボボックスは、見た目があまりよくないところが 気になります。 ドロップダウンのボタンのデザインが角ばってることや シートのフォントと同一のフォントに設定してもちょっと違う(なぜ?)とこなど、 気にいりません。 フォームのコントロールは名前が変更できず、VBの関数がドロップ1_Change()などとなるため、 後に管理しづらそうで心配しています。 コントロールツールボックスのコンボボックスの見た目を改善する方法、または、 フォームのコントロールの名前を変更する方法がありましたら、 教えてください!!

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

マクロを取り付けて何をしたいのか詳細が明らかにされていませんが,そりゃもちろん創意と工夫でフォームコントロールでも,あれやこれやをやってのけることはある程度は出来ます。もちろん簡単に,とはいかないかも?しれませんが。(いやそれは「何をしたい」のか,具体的な次の展開次第ですけどね。) でも何かある程度高度な機能もまた持たせたいなら,デザインの方はちょっと目をつむって最初から高機能なコントロールツールボックスを使っていただいた方が,作るにも使うにも後でメンテナンスするにもベターですという事です。 ご相談の発端が「デザイン重視,機能については特殊な要望無し」のご様子に見えましたので,フォームのコントロール機能(右クリックしてコントロールの書式設定で出来ること)の範囲で少しあれこれ工夫すればできそうじゃないかな?と思ってお話ししました。 いずれにせよ余談の範疇の話題ですし,もしご質問のスコープが当初の「フォームに名前を付ける」から逸脱して「フォームに付けたマクロに何か具体的にこういう事をさせたくなった」に変わるようでしたら,また具体的な要件などを添えてその旨別途ご相談を投稿し直しなさってみてください。

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

フォームのコントロールを選択し,名前ボックスの所に表示されている名前を直接編集します。デザイン優先でこっちの方が良いなら,無理してコントロールツールボックスを使わなくても良いと思います。 コントロールツールボックスはプロパティウィンドウでSpecialEffectを変えるぐらいはできますが,そんなに抜本的に見た目が変わるほどではありません。 余談ですが,フォームのコントロールは原則としてマクロを取り付けずに利用します(出来ます)。 勿論必要ならマクロを付けることも出来ますが,コントロールツールボックス(ActiveXコントロール)とは全く違って普通のただの標準モジュールに書くマクロなので,ごっちゃにしないように気をつけてください。一応名前も気分でそれっぽく出てきますが,むしろ普通のMacro1とかを作っておいて取り付けて使います。

palayo
質問者

補足

名前ボックスを直接編集したら、名前を変更できました。 ありがとうございます。 ところで、フォームのコントロールにはマクロを原則つけない、 付けるとしてもごちゃごちゃすべきでない、というのは、 シートやオブジェクトのモジュールとして作成できないという理由からなのでしょうか。

関連するQ&A

  • エクセル、コンボボックス/フォームのとコントロールツールボックスの

    エクセル2000です。 今まではワークシートにフォームのコンボボックスを貼って使ってきました。 でも色を変えたり出来ないので、今度はコントロールツールボックスからコンボボックスを貼ってみました。 質問ですが、コンボボックスに表示させるリストを設定するのに、これまでのフォームのコンボボックスだと書式設定で入力範囲をカーソルをあてて一度に簡単に指定できたのですが、コントロールツールボックスのコンボボックスだとそれが出来ません。VBEditorのプロパティのところのListFillRangeの右側にいちいち手でSheet1!A1:A5のように打ち込まなければならないようです。これではけっこう手間がかかってしまいます。 わたしのやりかたが間違っているのでしょうか?

  • Excelで、コンボボックスで選択したとき特定のマクロを動かす

    1つのシートにコンボボックス(フォームコントロール)を2つ並べてあります。  コンボボックス”ドロップ1”   コンボボックス”ドロップ2”  【選択肢】             【選択肢】  ・1回                ・A  ・2回                ・B  ・3回 とあります。それぞれのコンボボックスの選択肢は、別のシートに名前を定義して表示するようにしてあります。 その際、上の例だとマクロを6種類用意してあります。  (1) 1回A  (2) 1回B  (3) 2回A  (4) 2回B  (5) 3回A  (6) 4回B とあり、1つ目のコンボボックスで「2回」を、2つ目のコンボボックスで「B」を選んだ場合、 (4)のマクロを実行するようにするにはどのようにしたらよいでしょうか? ※ コンボボックスは両方選ばない限りはマクロを実行させません。 また、両方既に選択してあり、そのマクロが一度実行させた後、一方だけ変更しても他のマクロを実行させたいです。 また、本件とは別の内容となっていまいますが、コンボボックスなどが”フォームコントロール”と”ActiveX コントロール”と2種類あるのですが、どのように違うのでしょうか? ちなみにExcelは2007です。ご教授よろしくお願いします。

  • ワークシートとコンボボックスを共存させたい

    エクセルのVBAで、ワークシートの左側にコンボボックスを設置することはできますか? コンボボックスにA、B、Cとあるとすると、Aをクリックしたら右側にAのsheetが開くようにしたいのですが。 もしくは、VB2005で、フレームの左右、または同じフォームの中で左側にコンボボックス、右側にワークシートを設置する方法はありますか? どちらか可能な方法でプログラムを組み、ワークシート上にはユーザーが数値を打ち込んで自動計算できるようにしたいのですが。 よろしくお願いします。

  • コンボボックスのドロップダウンリストの設定

    Excelのコントロールツールボックスからコンボボックスを作成したのですが、マウスのホイールをスクロールするとドロップダウンリストがコンボボックスの頭から離れてしまいます。 フォームツールバーから作成すれば離れないのですが、VBAでリンクを設定する関係でコントロールツールボックスから作成したいのです。 離れないように設定するにはどうしたらいいのでしょうか。 教えてください。宜しくお願いいたします。

  • コンボBOXについて

    エクセルで、コンボBOXをコントロールツールBOXから作成した場合、その中に例えば名簿などのリスト一覧を挿入するにはどのようにしたらよいでしょうか?ユーザーフォーム?で作らないといけませんでしょうか?よろしくお願いいたいます。

  • EXCELのコンボボックス 配置の縦位置の変更はどうすれば?

    はじめまして。どうぞお教えください。 エクセルでコントロールツールボックスを出して、 コンボボックスを作りました。 コンボボックスはワークシート上にあります。 コンボボックスのプロパティで横位置を中央にすることができました。 縦位置も中央にしたいのですが、やり方がわかりません。 文字がボックスの上よりになってしまっていて、下がたくさん空いていて、見栄えも悪いのです。 コンボボックスの縦を狭めると、文字が縦に縮んでしまい、きれいに文字を見せることができません。 これを調整したいのです。 どうぞよろしくご教授ください。

  • 全てのコンボボックスに同じchangeイベント

    VBA初心者です。お知恵を貸してください。 UserForm上にある全てのコンボボックス(1つを除く)に同じchangeイベントを適応させたいです。 【動き】 1.UserForm起動 2.フォーム上のSheetComboBoxからシートを選択 3.選択したシートを参照し、フォーム上にシートにある行数分ComboBoxi(変数)_1〜3、TextBoxi(変数)を作成。ComboBoxにシートの値を参照した「文字列 数値」をセット。TextBoxは空欄。 4.ComboBoxi_1〜3が変更されるごとに、TextBoxiにComboBoxの内容の数値部分を計上する。 5.登録ボタンをクリックしてComboBoxi_1〜3の内容をシートの特定列に転記。 3までは作成することができましたが、4で行き詰まってしまいました。 コンボボックスのコントロール名は動的なので、どのようにchangeイベントを書けばいいのか、また、コンボボックスの量が多い(1行3つ*行数分)ので、すべてに対して書かなければならないのか…ということです。 何か一括でchangeできるような方法をご存知の方は教えていただけないでしょうか。どうぞよろしくお願いいたします。

  • コンボボックスが空白になってしまう

    Excelの開発メニューにある、フォーム コントロール→コンボ ボックス (フォーム コントロール)の使い方について質問です。 1つのシートにコンボボックスを10個並べ、「いいえ」「はい」の2択のみで、10問の質問表のようなものを作っています。 初期状態で全ての項目で「いいえ」を表示させておき、回答者にはそのうち当てはまるものだけを「はい」に選択し直して欲しいのですが、初期状態で全てのコンボボックスを「いいえ」にしておく方法がわかりません。 全て「いいえ」にした上でそのExcelファイルを保存しましたが、再度開いた際に、なぜか全てのコンボボックスが空白になってしまいます。▼を押すとまたきちんと選択はできるのですが。 コンボボックス 初期値 と検索すると解決方法らしきものがヒットするのですが、コードを入力するといった内容で全く理解できませんでした。 お恥ずかしながらコードのことは全く分からないので、もう少し簡単に解決方法はありませんでしょうか。

  • EXCELで使用するコンボボックス内のレイアウトについて

    EXCELで使用するコンボボックスのレイアウトのことでお聞きしたいことがあります。 コントロールツールボックスでコンボボックスをシートに置いているのですが、 コンボボックスに表示される文字がボックス内の上に張り付いてしまっています。 この文字の縦位置をボックス内の真ん中の位置にもってくるにはどうしたらよろしいのでしょうか。 プロパティを色々いじってみましたが、どうもうまくいきません。 どうぞよろしくお願いいたします。

  • コンボボックスのスクロール

    エクセルのフォームコントロール([表示]→[ツールバー]→[フォーム])、コンボボックスで文書番号を管理しています。 (※フォームコントロールと呼んで良いのかわかりませんが…) 通常はコンボボックスで文書番号を選択するのですが、リンクするセルの直接入力も可能としています。 リンクするセルが直接入力され変更されたら、コンボボックスもそれに対応する行に移動し、選択されてはいるのですが、自動でスクロールしてくれません。 スクロールバーで調整すれば良いのですが、これを自動(マクロ等)でする方法はあるのでしょうか?

専門家に質問してみよう