Excel2000で「フォーム」内のコンボボックスを選択し、
右クリック→プロパティで[style]=fmstyledorpdownlist,[linkedcell]=B3,listfillrange]=sheet!A1:A11とし、ドロップダウンリストボックスが完成しました。
そこで、このコンボボックスのリスト内の項目のフォントを調節しようとしましたが、どこで調節するのかわかりません。
リスト内に項目が収まるようにフォントを小さくしたいのですが、シート全体のフォントを調節しても、直りません。
プロパティ内の高さや広さを調節するとコンボボックス自体が変化してしまいます。
コンボボックスの大きさは一定にして、リスト内のフォントを変えるのは不可能なのでしょうか?
Excelマスターな達人な方、どうかお力をお貸しください。お願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

>スクロールバーを先頭にもっていきたいのですが・・・



(1)ListRowsプロパティを11にしてしまう。スクロールバー不要です。

(2)コードを書きます。
   ツール→マクロ→Visual Basic Editor でVBE画面に移り、コンボボックスのあるシートのコードウインドウに
   下記マクロを貼り付けます。
   コンボボックスで選択しようとすると1行目からの表示になります。

ここから

Private Sub ComboBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  ComboBox1.TopIndex = -1
End Sub
    • good
    • 0

右クリック→プロパティで Font でだめですか。

    • good
    • 0
この回答へのお礼

ありがとうございます。早急なご回答で本当に助かりました。
ちなみに、リストの中から選択した後、次に選択したときに前回選んだ位置にスクロールバーがいってしまう現象が出ているのですが、それをデフォルトで、スクロールバーを先頭にもっていきたいのですが、こちらはおわかりになるでしょうか?

お礼日時:2002/04/05 15:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Q[Access2003]コンボボックスのプロパティの「リスト行数」について

今、Access2003のフォームのコントロールの作成について勉強しています。『コンボボックスのプロパティ』の「すべて」の中の「リスト行数」が分からないです。
参考書(下記のコンボボックスは、著作権の関係もあり、商品名の名前は変えてあります)を見たら・・・・
コンボボックス:
A みかん
B メロン
C パイナップル
D なし
と表示されていました。

リスト行数:表示する一覧の行数を設定しますとあり、リスト行数のところが「8」となっていました。何で「8」なのか分からなかったので、不安になってインターネットでリスト行数について調べてみました。上記のような形式のコンボボックスの場合だと、リスト行数が「4」ではないかなという印象を受けました。

◎参考書の「8」が違っていて、正しくは「4」なのでしょうか?それともこの場合、参考書がもし「8」で正しかったら、何で「8」なのでしょうか?

Aベストアンサー

リストの行数が「8」を超える場合に
8行のみが表示され、超える部分はスクロールすることになります。
8以下の場合は、その行数が表示されます。

QコンボボックスのListFillRangeの変更について

皆様、こんにちは。
いつもお世話になっております。
条件によってコンボボックスのListFillRangeを変更させたいですが、可能でしょうか?
次のように書いてみましたが、動きません。。
If Range("D2") = 1 Then
ActiveSheet.Shapes("DropDown63").ListFillRange = "$C$44:$C$54"
ElseIf Range("D2") = 2 Then
ActiveSheet.Shapes("DropDown63").ListFillRange = "$C$55:$C$73"
End If
「指定した名前のアイテムが見つかりませんでした」というメッセージが出てしまうんですが、コンボボックスの名前の書き方が間違っているでしょうか?
ご存知でしたら何方か教えていただければ非常に助かります!
どうぞよろしくお願いいたします。

Aベストアンサー

こんばんは。

その辺りは、きちんと、人に教えてもらわないと難しいですね。
今は、もうここら辺りの説明は本には出ていません。Ver.5 のマニュアルに書かれていますが、書籍は、手に入らないと思います。

"DropDown63" この名前は記録マクロからだと思いますが、確かですか?

補足情報から書くと、#1 さんの使っている、DropDowns は、隠しオブジェクトと言われています。これは、Ver.5 の書き方です。いろんな書き方がありますが、私は、この DropDowns にIndex で書く方法が間違いが少ないと思います。

"DropDown63" 名前の、63ですが、このドロップダウンが63個もあるでしょうか。

最初に、分かりやすい書き方としては、別途、

ActiveSheet.DropDowns("ドロップ 1").Select

という書き方があります。ただ、名前ボックス(ワークシートの左上端)に出ている名前を正確に入れます。

ドロップ 1 (半角の数字の前は半角のスペース)
ドロップ 63 ということになります。

「Shapes コレクション」にすると、

ActiveSheet.Shapes("Drop Down 63").DrawingObject.ListFillRange = "C44:C54" (絶対参照でなくても良い)
自動的に入れたものは、こんなスタイルになるはずです。

この方法でも可能なはずです。(半角空白を守ってください)
ActiveSheet.Shapes("ドロップ 63").DrawingObject.ListFillRange = "C44:C54"

これは、Office 2000からの書き方ともいえるのですが、もともと、ドロップダウンなどは、フォームツール、Ver.5 のものですから、その方法で書いた方法がよいです。Office 2000以降は、コントロールツールを使うのが推奨されています。

しかし、私は、こんな方法で書いています。

順序良く並んでいるものとすると、名前は何であれ、作られた順に、
1番目は、Index が 1になります。
ActiveSheet.DropDowns(1).Select

「1」から順番にIndex が付きますから、途中で削除しても、順位が繰り上がるだけです。
ActiveSheet.DropDowns(1).ListFillRange = "C44:C54"

いろいろ研究してみてください。フォームツールは、マクロで設定するときに便利です。

こんばんは。

その辺りは、きちんと、人に教えてもらわないと難しいですね。
今は、もうここら辺りの説明は本には出ていません。Ver.5 のマニュアルに書かれていますが、書籍は、手に入らないと思います。

"DropDown63" この名前は記録マクロからだと思いますが、確かですか?

補足情報から書くと、#1 さんの使っている、DropDowns は、隠しオブジェクトと言われています。これは、Ver.5 の書き方です。いろんな書き方がありますが、私は、この DropDowns にIndex で書く方法が間違いが少ないと思いま...続きを読む

Qコンボボックスの値が変更されたらそのコンボボックスに表示されたURLを開きたい

データ型がハイパーリンクの文字列が入力されたテーブルをコンボボックスに表示させています。(添付画像参考)
希望は、
プルダウンでURLを選択したと同時にリンク先へ飛びたいです。
現在は、
プルダウンでURLを選択→コンボボックスをクリック
でリンク先に飛んでいます。
多分コンボボックスのChangeイベントだと思うのですが
どうすればいいのでしょうか?

アドバイスよろしくお願いします。

Aベストアンサー

No.2です。

> ""を開いています。

このメッセージから、推測される原因を確認した結果、
おおよそ状況がつかめました。

前回回答前のこちらでのテストでは、ハイパーリンク型
フィールドへのファイルのドラッグ&ドロップでアドレス
を記録したのですが、この場合、入力データにカーソルを
合わせた後、F2キーで編集モードにすると
「http//www.goo.ne.jp/#http//www.goo.ne.jp/#」
と、アドレスが二重に表示されます。
(実際には1個目のアドレスは文字列としての表示、
 2個目のアドレスが実際のリンク先)

一方、Webブラウザなどからアドレスをコピー&ペースト
した場合は
「#http//www/goo.ne.jp#」
と、実際のリンク先のアドレスのみが記録されますが、
このデータを「Call FollowHyperlink(コンボ0)」の
形で参照すると、エラーとなってしまうようです。
大変失礼致しました。


対処法としては、「データの先頭文字が『#』かどうかで
切り分け」も考えましたが、今回の件では「Follow」を
使用した方がよさそうです(汗)

Private Sub コンボ0_AfterUpdate()

  If Nz(コンボ0, ") = "" Then Exit Sub

  'コンボ0に記録されたハイパーリンクを実行
  '(FollowHyperlinkと違い、アドレスを引数とする必要
  ' はなし。こちらの詳細もヘルプを参照下さい(汗))
  コンボ0.Hyperlink.Follow

End Sub

No.2です。

> ""を開いています。

このメッセージから、推測される原因を確認した結果、
おおよそ状況がつかめました。

前回回答前のこちらでのテストでは、ハイパーリンク型
フィールドへのファイルのドラッグ&ドロップでアドレス
を記録したのですが、この場合、入力データにカーソルを
合わせた後、F2キーで編集モードにすると
「http//www.goo.ne.jp/#http//www.goo.ne.jp/#」
と、アドレスが二重に表示されます。
(実際には1個目のアドレスは文字列としての表示、
 2個目のアドレスが実際...続きを読む

Qエクセル2010でリスト表の2項目が一致した場合に別セルにリスト表の項目を自動表示させたい。

エクセル表で勤務表を作成してますが、その一部の項目で「出発地」と「目的地」の入力(その都度手入力)が一致したら「金額」をその行の別セルに自動で表示させるにはどのようにしたらよいでしょうか、教えて頂けなんでしょうか。

別シートに別添の様にリスト表を作成しました。
ここで毎日の仕事表の中で、B1セルに出発地 C1セルに目的地 K1セルに金額の項目を作成し、
B2セルに 松  C2セルに 甲 を入力した場合に K2セルに自動で A
B3セルに 竹  C3セルに 乙 を入力した場合に K3セルに自動で G

の様に リスト表の出発地と目的地が一致したらそれぞれの金額を自動で表示させたいのですがどの様に関数を使用したらよいのか教えて頂けないでしょうか。宜しくお願いいたします。

Aベストアンサー

金額表のC列(一番上の、Cと書かれている灰色の部分)を右クリックし、列の挿入を選んでください。
目的地と金額の間に空白の列ができたはずです。
新しいC2に、「=A2&”→”&B2」と入力し、表の下端までコピーしてください。
新しいC2であれば、「松→甲」と表示されたはずです。
矢印を入れてない場合、「あい→う」と「あ→いう」が両方「あいう」と表示されてしまうので、念の為矢印にしています。

表示させる方のシートのK2に、
=VLOOKUP(B2&”→”&C2,金額表!C:D,2,FALSE)
と入力してください。
それを表の下端までコピーしてください。
意味としては、B2→C2(例の場合は松→甲)が一致するセルを金額表のシートのC列の中で探し、C列を1列目と数えて2列目(つまりD列=元々のC列)のデータを取得する。というものです。

これは、補助用のセルを追加できる場合にのみ使える方法です。
AもBも一致する。というのは配列計算しなければならないのですが、
A&Bが一致する。というのは単純にA&Bを探すだけで事足ります。
金額表が多ければ多いほど、条件が多ければ多いほど、配列計算の量は加速度的に増加します。
それは重くなる原因となりますので、可能であるならこの方法をお勧めします。

金額表のC列(一番上の、Cと書かれている灰色の部分)を右クリックし、列の挿入を選んでください。
目的地と金額の間に空白の列ができたはずです。
新しいC2に、「=A2&”→”&B2」と入力し、表の下端までコピーしてください。
新しいC2であれば、「松→甲」と表示されたはずです。
矢印を入れてない場合、「あい→う」と「あ→いう」が両方「あいう」と表示されてしまうので、念の為矢印にしています。

表示させる方のシートのK2に、
=VLOOKUP(B2&”→”&C2,金額表!C:D,2,FALSE)
と入力してください。
それを表の下端ま...続きを読む

QVBA コンボボックス項目追加?

エクセル VBA コンボボックスの項目入荷についてですが
入力フォームを開いたときに
Private Sub UserForm_Activate()
ComboBox1.AddItem ("本社")
ComboBox1.AddItem ("東京支社")
ComboBox1.AddItem ("大阪支社")
End sub
のようにコンボボックスに項目をだすことはわかったのですが、
フォームをを開いたときにワークシートを全てを自動で
項目に表示する方法はありますでしょうか?
宜しくお願いいたします。

Aベストアンサー

ご質問の意味が何とおりかに取れますが、全シート名を追加したい
というのであれば以下のコードをお試し下さい。

Private Sub UserForm_Activate()
ComboBox1.Clear
Dim shIdx As Integer
For shIdx = 1 To ActiveWorkbook.Sheets.Count
ComboBox1.AddItem ActiveWorkbook.Sheets(shIdx).Name, shIdx - 1
Next
ComboBox1.ListIndex = 0
End Sub


このカテゴリの人気Q&Aランキング

おすすめ情報