ドロップダウンリストを作成して、リストから選択してデータ入力できるようにしたいという要望を、ちょっとした業務アプリを作りはじめた方からいただきます。
いくつかのやり方がありますが、入力規則を使うのが一番簡単でしょう。
▼操作手順:入力規則機能でドロップダウンリストを作成する
※「東京」「大阪」「名古屋」の3項目がリストに表示されるようにする例
メニュー[データ]-[入力規則]をクリック
↓
[データの入力規則]ダイアログ-[設定]タブをクリック
↓
[条件の設定]欄
-[入力値の種類]コンボボックスから「リスト」を選択
↓
[元の値]欄にリスト表示させたい
「東京,大阪,名古屋」と入力
↓
[データの入力規則]ダイアログ-[OK]ボタンをクリック
入力規則のドロップダウンリストについて、
「リストから選択するのをキーボードでやるにはどうしたらいいのでしょうか?」
というご質問をいただくことがあります。
「Alt+↓」キーというショートカットをお試しください。
Excelユーザーで、VBA(Visual Basic for Applications)に触れ始めた方から時々いただく疑問・質問があります。
「VBAの関数とワークシート上で使える関数はなぜ違うのですか?」
というご質問です。
例えば、
今日の日付を取得するのは、
VBA関数の場合は「Date」ですが、
ワークシート関数では「TODAY」です。
日付の間隔を取得するのは、
VBA関数の場合は「DateDiff」ですが、
ワークシート関数では「DATEDIF」です。
(よく似ていますが、最後の「F」の数が違います。)
厄介なことに同じスペルで似たような動作をするのに実は違うものもあります。
VBA関数の「Round」は丸めを行いますが、
ワークシート関数の「ROUND」は四捨五入を行います。
同じExcelというソフトウェア上で動いている関数なのに、なぜ違うのか、というのがご質問の主旨です。
結論から言えば、ワークシート関数とVBA関数とは、まったく別ものだからです。同じExcel上で動作していても。
同じ動作をする関数は、たまたま、同じであったにすぎません。
むしろ、同じ名称で同じ動作をする関数の方が、特殊と考えるほうがいいでしょう。
このことは、今現在のExcelだけを見ていると、納得しがたいかもしれませんが、ExcelとVBAそれぞれの過去や歴史を知ると、理解できるんじゃないかと思います。
Excelとは無関係に、Quick Basicという言語を元に、VB(Microsoft Visual Basic)というプログラム言語が1991年に発表されています。VBAはVBを元にして、1994年のExcel 5.0ではじめて採用されました。
Excelのほうは元々マッキントッシュ用の表計算ソフトで、それがWindowsに移植されたものです。
VBA(Visal Basic for Applications)で業務アプリケーションを作成する際、ユーザーに何らかの入力をしてもらう場面というのは少なくありません。簡単な入力ならばInputBox関数などを利用することも可能ですが、複雑な入力を必要とするならばユーザーフォームを作成することになります。
VBE(Visual Basic Editor )で、メニュー[挿入]-[ユーザーフォーム]をクリックすると、フォームが表示されプロジェクトエクスプローラにもツリー表示されるようになります。
そして、ユーザーフォームのコーディングを行う場面では、フォームの画面を表示させたり、コードウィンドウを表示させたりという操作が頻発します。
フォームの画面を表示するにはプロジェクトエクスプローラでダブルクリックすればいいのですが、コードウィンドウを表示するにはプロジェクトエクスプローラの該当フォーム上で右クリックして、ショートカットメニューから[コードの表示]をクリックするか、メニュー[表示]-[コードウィンドウ]をクリックする必要があります。
▼操作方法:プロシージャごとの表示をデフォルトに設定する
メニュー[ツール]-[オプション]をクリック
↓
[オプション]ダイアログ-[編集]タブをクリック
↓
[モジュール全体を連続表示]チェックボックスをOffに
↓
[オプション]ダイアログ-[OK]ボタンをクリック
上記の設定変更を行う方がいいのか、[プロシージャの表示][モジュール全体を連続表示]ボタンで一時的に表示を変更するだけでいいのか、人それぞれだと思います。