中小企業の働き方改革をサポート>>

エクセル2000を使用しています。
入力規則のリストを使って、ドロップダンウンリストから選択するようにして
いるのですが、このドロップダウンリストを表示させた状態のフォントの大きさを
調節できるのでしょうか?
選択する項目を見やすくしたいのです。
一時的に画面の拡大をする方法もありますが、ドロップダウンリスト内で選択する
時点(項目を選ぶ時)でもっと見やすくしたいのです。
何か方法がありましたら、教えてください。

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

A 回答 (2件)

>何か方法がありましたら、教えてください。



入力規則での拡大は難しいですね。

代替案として、コンボボックスで入力規則と同様機能を作ってみました。シート1(Sheet1)で実行してみます。
 (使いようによっては、入力規則以上の表現ができるでしょう)

1.入力規則をリスト化したデータをシートに書いておきます。例えばセル範囲『Z1:Z10』とします。
2.表示→ツールバーでVisual BasicをチェックしてVisual Basicのツールバーを出します。
3.コントロールツールボックスのアイコンをクリックしてダイアログを表示。
4.そこからコンボボックスをクリックして画面に貼り付けます。
4-1.コンボボックスを右クリックしてプロパティを選択。
4-2.(オブジェクト名)はComboBox1のままとします。
4-2.プロパティのListFillRangeにZ1:Z10。
4-3.プロパティの 'Width'   で幅
         'Height'   で高さ
         'Font'    でフォント
         'BackColor' で背景色 が指定できます。

好きに大きさを調整して下さい。何度でもできます。
コンボボックスの作成が終わったとして、次にシカケのマクロを書きます。

5.ツール→マクロ→Visual Basic Editor でVBE画面に移り、
  表示→プロジェクトエクスプローラでプロジェクトエクスプローラを表示。
  Sheet1をダブルクリック。でてきたコードウインドウに下記マクロを貼り付けます。
6.入力規則列1 = の次に入力規則を適用してコンボボックスを表示させる範囲を指定します。
7.シートに戻り、指定した範囲をクリックすれば入力規則と同様なコンボボックスが出るはずです。
入力規則にあるメッセージの処理などは割愛しました。 ご参考に。


ここから

'入力規則列1 :入力規則を適用する列名、範囲
'       列全体なら『E:E』のようにする
'       列の一部なら『E1:E100』のようにする。連続する列、範囲も可
 Const 入力規則列1 = "E1:E100"

'出力位置横、縦:コンボボックスを出す相対位置(0は同じ列または行、1は右または下)
 Const 出力位置横 = 0
 Const 出力位置縦 = 1

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  On Error GoTo ErrorHandler  'エラー対応

  With ComboBox1
    If Target.Count = 1 Then  '単一セルの操作の場合
      If Not Intersect(Target, Range(入力規則列1)) Is Nothing Then '列の特定
          .Visible = True      'コンボボックスを見えるようにする
          .Top = Target.Offset(出力位置縦, 出力位置横).Top  '縦位置
          .Left = Target.Offset(出力位置縦, 出力位置横).Left '横位置
          .LinkedCell = Target.Address            'リンクするセル
      Else
        .Visible = False  'コンボボックスを見えなくする
      End If
    Else
      .Visible = False    'コンボボックスを見えなくする
    End If
  End With

  Exit Sub

ErrorHandler:

End Sub
    • good
    • 0

残念ながら、入力規則のドロップダウンリストに関するカスタマイズ機能は無い様です。

    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

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

Q入力規則のリストの文字の大きさも調整したい

A1~C4のセルを結合しました。
そのセルに入力規則でリストを作成しました。
そのセルの文字の大きさを50にしました。

しかしリストをクリックすると、リストの文字はちいさいままです。
でもリストの値を選択すると、50のサイズの文字になります。

リスト自体や▼の文字の大きさも50のサイズにするにはどうすればいいでしょうか?

Aベストアンサー

レジストリを編集すれば文字のサイズやフォント種のデフォルトを変更できますが、レジストリを変更すると、フォームのコントロール(コンボボックスなど)や多くのダイアログボックスの文字にも影響してしまいます。
また、レジストリの操作を誤るとシステムに悪影響を及ぼす危険性もありますので、推奨できません。

そこで――
次のように文字サイズと表示倍率の組み合わせで実現するのが無難で一般的かも知れません。

1.[書式]-[スタイル] で、標準スタイルのフォントサイズを小さくします。
2.ズームで表示倍率を適当に大きくします。
  {(通常のフォントサイズ÷(1での設定フォントサイズ)} × 100(%) 程度。
3.印刷する場合は、ページ設定で印刷倍率を2と同じ倍率に設定します。


この操作だと面倒なのでどうしてもデフォルトを変更したいのでしたら、次のようにレジストリを書き換えます。(操作を誤っても責任はとれません。自己責任で。)

Excelをいったん終了してから、レジストリエディタで
 HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Exce\Options '※下記
を開き、画面右側の欄に項目を新規作成します。
 ・属性:文字列
 ・名前:DlgFont
更に、作成した項目(DlgFont)を右クリックして[修正]または[変更]を選択し、
 MS Pゴシック, 11
のように記述し、レジストリエディタを閉じます。

DlgFontで指定するフォントサイズは、上記例のように 11 程度が無難でしょう。セルの書式設定や検索などのダイアログがサイズ50の文字で表示されるなんて、見にくいどころか怖いです。

(※) HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Exce\Options
   これは Excel2010 の例です。バージョンが異なると 14.0 の部分が異なります。

レジストリを編集すれば文字のサイズやフォント種のデフォルトを変更できますが、レジストリを変更すると、フォームのコントロール(コンボボックスなど)や多くのダイアログボックスの文字にも影響してしまいます。
また、レジストリの操作を誤るとシステムに悪影響を及ぼす危険性もありますので、推奨できません。

そこで――
次のように文字サイズと表示倍率の組み合わせで実現するのが無難で一般的かも知れません。

1.[書式]-[スタイル] で、標準スタイルのフォントサイズを小さくします。
2.ズームで表示倍率を...続きを読む

Qエクセルの入力規則のプルダウンのサイズ変更

エクセルの「入力規則」のプルダウンのサイズ変更。
入力規則のプルダウンの表示は、」通常8行の表示となりますが、日付を全て表示させる方法はありませんか?

Aベストアンサー

私にも以前同じような要望がありましたが、そのときはすぐあきらめました。
今回あらためて調べてみましたが、通常メニューには無いようです。

ひとつ情報が見つかりましたので、参照URLに載せておきます。

参考URL:http://dtsman.blog12.fc2.com/blog-entry-103.html

Qプルダウン 項目が多いので先頭文字とかで検索したい

<最終的にやりたいこと>
・プルダウンで目的の項目を出来るだけ簡単に選択したい

<困っていること>
・一つのカテゴリーに属する項目がもの凄く多いため、プルダウン項目を選択するのに(探し出すのに)、毎回苦労しています

<前提条件>
・根本的な問題は、1カテゴリーに属する項目が多いことにあるのですが、その前提で教えてください
・サイト自体はPHPで作成していて、プルダウン表示項目は、MySQLより取得しています

<知りたいこと>
・何か良いアイデアはないでしょうか?
・例えば、プルダウン項目の先頭1文字とかを検索して、該当する項目をプルダウンとして表示させるようなことは出来ないでしょうか?
・あるいは、プルダウン項目を、縦一列ではなくて、画面一杯に表示させるとか、そんなことは出来ないでしょうか?
・項目数が多くても、選択しやすいプルダウン実装方法をご存知の方や、そんな実例を見たことがある方は、是非教えてください、

Aベストアンサー

jQuery Searchable DropDown Plugin あたりを使えばいかがでしょうか?
http://jsearchdropdown.sourceforge.net/

そもそも、昔のWindowsフォームには、こういう「複合型コンボボックス」があって、大量の項目を選択できていました。
Webになって、こういう部分はユーザビリティが悪くなったのですが、Ajaxの登場で救われることが多いです。

プラグイン側でTextboxのchangeイベントを拾って、$(this).val()を送ってくるので、それを受けてjsonで返すサーバサイドメソッドが必要です。

Ajaxがらみで「選択+Dropdown」プラグインは他にもいろいろあります。
動作原理はよく似ています。<select>を直接オーバーライドするものが多いので、実装も楽かと。
http://www.jquery4u.com/plugins/10-jquery-selectboxdrop-down-plugins/

Qエクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む

Qエクセルのセルにカレンダーを表示させ、日付をセルに入力させたい

エクセルについて教えて下さい。

エクセルのセルをクリックすると、
カレンダーのようなものが表示され、
マウスで選択すると、
セルに日付が入力されるようにするには
どうしたらよいですか?

すみませんが、宜しくお願い致します。

Aベストアンサー

#02です。foo-mさんがVBAをお使いになるなら、以下のサンプルをいじってみてください。

このサンプルはC4セルがクリックされたときにカレンダーコントロールを表示して、日付を選んだらその日付をC4に書き込み、カレンダーコントロールを閉じるマクロです。

Private Sub Calendar1_Click()
Selection.Value = Calendar1.Value
ActiveSheet.Calendar1.Visible = False
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$C$4" Then
ActiveSheet.Calendar1.Visible = True
End If
End Sub

マクロはシートのモジュールとしてペーストして下さいね

Qエクセル 入力規則のドロップダウンメニューについて

Excel2002
入力規則-リストでドロップダウンメニューをさくせいしました。
が、あまりにも数が多いので例えば 「H」と入力すれば Hから始まるものが選択できるようにはできないでしょうか?
VBAなどでしたら、わからないので結構です。
ドロップダウンメニュー以外にもいい方法がありましたら、教えてください!

Aベストアンサー

先頭1文字を入力する専用のセルを、どこかに作らなければなりません。
それを A1 と仮定します。
また、リストの元データが J1:J200 にあるとします。

1.K1 に 次の数式を入力して [Ctrl]+[Shift]+[Enter] し、K10までドラッグ
 コピーします。(この時点では、すべて #NUM! になります)
2.L1 に =COUNTIF(K1:K10,"<>#NUM!") と入力します。
3.入力規則(リスト)の「元の値」ボックスに、次のように入力します。
  =OFFSET($K$1,0,,$L$1)
4.セルA1に入力する先頭1文字によって、入力規則のリスト内容が変化します。

ここでは、同じ頭文字のデータが最多で10件と仮定しています。
20件の場合は、ステップ1 では K20 までコピーし、ステップ2 では K1:K20 に
します。

Qドロップダウンリストのフォントサイズを大きくするには?

EXCELでドロップダウンリストで値を表示させているのですが、このフォントが小さいので大きくしたいのですが、方法がわかりません。
ご存知の方がいらしたら、お手数ですがお教えいただけないでしょうか?よろしくお願いいたします。

Aベストアンサー

Excelの場合「ドロップダウンリスト」にはいくつか種類があります。

・入力規則のリスト
・フォームのコンボボックス
・コントロールツールボックスのコンボボックス
・VBAの UserFormのコンボボックス

この内 フォントサイズが設定できるのは コントロールツールボックス
と UserFormのコンボボックスだけです。これらはセルに設定するので
はなくオブジェクトになりますので 入力規則のリストのようには使え
ません。

他のリストの場合 画面表示を大きくした状態で上手く表示できるように
表の高さや幅やフォントを調整するくらいしか手がありません。

あとはレジストリをいじって PC全体の文字表示を大きくするくらいか
と思います。

Qエクセルの複数条件に一致したセルを抽出したいのですが、関数で教えてくだ

エクセルの複数条件に一致したセルを抽出したいのですが、関数で教えてください。

               A列   B列    C列
Aファイルには 行 【注文月日】、【氏名】、【商品金額】が記入されています。
Bファイルには 行 【注文月日】、【氏名】、【税金額】が記入されています。

AファイルのD列に、Aファイルの【注文月日】かつ【氏名】がBファイルの【注文月日】かつ【氏名】と一致する場合のBファイルC列の【税金額】を表示したいのです。

VLOOKUP関数では条件が1つだけなので使用できませんが、似たような関数で複数条件ができる関数があるなら教えてください。

Aベストアンサー

こんばんは!
一例です。
↓の画像で右側(Bファイル)の方に作業用の列を設けています。
作業列D2セルを
=A2&B2
としてオートフィルで下へずぃ~~~!っとコピーします。

そして、AファイルのD2セルに
=IF(OR(A2="",COUNTIF([Bファイル.xls]Sheet1!D$2:D$1000,A2&B2)=0),"",INDEX([Bファイル.xls]Sheet1!C$2:C$1000,MATCH(A2&B2,[Bファイル.xls]Sheet1!D$2:D$1000,0)))
という数式を入れ、オートフィルで下へコピーすると
画像のような感じになります。
尚、数式はBファイルの1000行目まで対応できるようにしていますが、
データ量によって範囲指定の領域はアレンジしてみてください。

以上、参考になれば良いのですが
他に良い方法があれば読み流してくださいね。m(__)m

QExcelのVBA。public変数の値が消える

VBAについて。Excelの2003や2007を使っています。標準モジュールで public 変数を定義しました。 ユーザーformを使い、パブリック変数に値を入れたり変更し、標準モジュールに戻ったとき、そのpabulic変数が resetされてしまっている事があります。全く同じマクロで、この現象が起こることと、起こらないことがあります。excelの2003でも2007でも、同じ現象が起こります。簡単なマクロで再現性のある具体的なものを示したいと思い、試しましたが、できませんでした。簡単なマクロでは、きちんとパブリック変数は保持されています。問題のあるマクロはかなり長いものなので、とても示せません。問題がどこにあるのかわかりません。このマクロで不都合があるという具体的なマクロを示すことができない状態での質問で、申し訳ありません。
また、このようなプログラミングをしていて思ったのですが、ユーザーフォームに対してユーザーが任意の引数を渡す方法あるいは、ユーザーフォームから引数を受け取る方法はあるのですか?今は、pubulic変数を用いたり、具体的なセルに値を代入したりしていますが、どう考えてもそれはエレガントではないし、汎用性もないと思います。引数で引き渡すのが一番綺麗でいいとは思うのですが、それが可能かどうかわかりません。

VBAについて。Excelの2003や2007を使っています。標準モジュールで public 変数を定義しました。 ユーザーformを使い、パブリック変数に値を入れたり変更し、標準モジュールに戻ったとき、そのpabulic変数が resetされてしまっている事があります。全く同じマクロで、この現象が起こることと、起こらないことがあります。excelの2003でも2007でも、同じ現象が起こります。簡単なマクロで再現性のある具体的なものを示したいと思い、試しましたが、できませんでした。簡単なマクロでは、きちんとパブリック変数は保...続きを読む

Aベストアンサー

IDは違うけれども、同じ内容の質問のようですね。
http://oshiete.goo.ne.jp/qa/6420530.html

具体的にこんなことをしています、ということをおっしゃれば、話は変わるかとも思います。
今のままでは、いくら説明しても、たぶん納得いかないだろうと思います。

最初に、#3の方のMSのサポートの文章で、
>[VBA] Public 宣言された変数の有効期間
この内容、ご質問者さんは、意味を誤解しているようです。

「ほとんどの場合、プロシージャ終了後も値は保持されますが、
 ……Public 変数がアプリケーション終了時まで有効であること
 を期待する VBA マクロの実装は、推奨されません。」

どうして、保持した変数がなくなってしまうか、いろんな理由はあっても、完成したマクロでは、原因はひとつで、End Sub を通っていないままに終了しているからです。

 「ある Office ドキュメントが VBA のマクロを含む場合、…… Public 変数
  の値が有効である期間は、あるプロシージャの実行を開始
 し、そのプロシージャが "End Sub" で終了するまでの間のみです。」

この文章は間違いです。その話のままだったら、Public 変数など意味がなくなってしまいます。値だって確保しているし、変数は動的です。しかし、実務上、構造化マクロで、きちんと作られたマクロの流れ(ルーチン)が通る間だけだと思ってよいです。

>ユーザーformを使い、パブリック変数に値を入れたり変更し、標準モジュールに戻ったとき、そのpabulic変数が resetされてしまっている事があります。

Public 変数が、リセットされるというのは、マイクロソフトの文章は間違いに近いです。これは、極論すると、不完全なマクロだということです。しかし、本当に完全なコードを提供出来るかというのは、それは誰も自信などありません。だから、そういう方法を避けるわけです。

Public 変数は、標準モジュールを経由して、ローカルのUserForm に供給を受けるけれども、それを戻すということはしないのです。

図式化するとこうなります。

・ローカルで発生した値 →標準モジュールのPublic 変数 →UserFormのローカルのプロシージャ
・標準モジュールのPublic 変数 → UserFormのローカルのプロシージャ

※ただし、起動時の一回きり、それ以上の持ち回しはしない。逆もしない。

「ユーザーフォームに対してユーザーが任意の引数を渡す方法
 ユーザーフォームから引数を受け取る方法はあるのですか?」
出来ないわけではありませんが、これらは、変数で渡すということはしないということです。

>ただ、ユーザーフォーム aUS 全体で参照し値を変更できる 変数a のようなものを、使えたらいいなあ、と思い、

理屈では、一旦、標準モジュールのPublic 変数に送っておいて、そこから他のプロシージャ等に送ればと思いますでしょうが、それはしないということです。ルーチンが別だからです。

私の基本的な設計の考え方を示しておくと、UserForm自身とか、その中にあるものは、OLEオブジェクトのインスタンスです。つまり、モノ(オブジェクト)がある限りは、値は確保しているのです。だから、UserFormが残っている以上は、変数ではなくて、モノから、値を取得するのです。そのためには、UserForm はModalモードを、Offにしておくのが良いわけです。

例えば、UserForm1.TextBox1.Value とかで取れるわけです。

これは、システム設計の話で、それを見れば分かっていただけます。非表示のワークシートのセルに書くような話は、それは状況(渡す変数の数)によります。ただ、わざわざワークシートのセルに代入する必要はないということです。そのような方法はシステム設計では全体にリスクを高くするので賛成出来ないです。

私の失敗の経験から、Public 変数については、ひとつのルーチン以上に用いないことです。また、動的には用いないことです。一回きりの静的な変数として使うべきです。静的といっても、Static 変数の意味ではなく、文字通り変数を変化させないということです。ただし、時間の間隔やカウントなどの単純なものは別です。

Public 変数が空かどうかチェックする方法も考えられますが、意味がありませんから、それなら、参照渡しにすればよいのです。

IDは違うけれども、同じ内容の質問のようですね。
http://oshiete.goo.ne.jp/qa/6420530.html

具体的にこんなことをしています、ということをおっしゃれば、話は変わるかとも思います。
今のままでは、いくら説明しても、たぶん納得いかないだろうと思います。

最初に、#3の方のMSのサポートの文章で、
>[VBA] Public 宣言された変数の有効期間
この内容、ご質問者さんは、意味を誤解しているようです。

「ほとんどの場合、プロシージャ終了後も値は保持されますが、
 ……Public 変数がアプリケーション終了時...続きを読む


人気Q&Aランキング

おすすめ情報