• ベストアンサー

プルダウンメニューの連続挿入

EXCEL2013を使用しています。 勤務表を作成するとき、 データを連続挿入するのですが、 「ALT」+「↓」で一覧を表示 →カーソルで選択 →ENTER →カーソルで隣のセルに移動 ・・・という手順を何十回も繰り返すのですが、 もう少し簡単にできる方法はありますでしょうか? できたら、カーソルを乗せたら、一覧が表示される 選択してEnterを押したら、次のセルに自動で移動する ALTを押さなくても、一覧が表示される ・・・などができたらとても助かります。  毎月の勤務表の作成が効率化できるので・・・。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1725/2595)
回答No.5

> もう少し簡単な方法ではないでしょうか…? 残念ながらありません。この中で一番簡単な方法はNo4さんの方法になります。 シートの名前の入ったタブを右クリックして出るメニューの「コードの表示」を選択すると新しく画面が開きますので(添付画像のような画面です)そこの右側のOption Explicitと書かれているところの下にNo4さんの Private Sub Worksheet_SelectionChange(ByVal Target As Range) から End Sub までをコピーして貼り付けてください。 その後、新しく名前を付けて保存で ファイルの種類(T): Excelマクロ有効ブック(*.xlsm) にして保存してください。 次回起動時には セキュリティの警告 マクロが無効にされました が出るので コンテンツの有効化 を押してください。 ただ、「カーソルを乗せたら一覧が表示される」って実際やってみると意外と鬱陶しかったりすると思いますよ。

hu19901108
質問者

お礼

ありがとうございます

その他の回答 (5)

  • kkkkkm
  • ベストアンサー率66% (1725/2595)
回答No.6

> すいません、理解ができなくて…。 回答の文章だけを読んで頭の中で理解しようとせずに書かれている通りにエクセルで操作してみないとだめですよ。

hu19901108
質問者

お礼

確かにそうですね…。 みなさん貴重な時間を割いて、返答いただいているのに…。 マクロとか知識ないのですがやってみます。 ありがとうございます。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

 VBAのマクロは使用可能な状況でしょうか?  VBAのマクロを使っても良いのでしたら以下の様な方法となります。  まず、勤務表を作成しなければならないシートのシート名を確認して下さい。  次に、Excelのウィンドウの上の方にある[開発]タブをクリックし、現れた「コード」グループの中にある[Visual Basic]ボタンをクリックして下さい。  尚、もしも[開発]タブが表示されていない場合には、[Alt]キーを押しながら[F11]キーを押すか、 或いは下記のURLのページに記載されている方法に従って[開発]タブを表示させて下さい。 【参考URL】  でじまみ > Microsoft Office 関連 > 4 > 2013.02.25 Excel 2013 でマクロ編集など行う「開発タブ」を表示するには   http://plaza.rakuten.co.jp/mscrtf/diary/201302250000/  すると「Microsoft Visual Basic for Applications」のウィンドウが開きますので、そのウィンドウの左手にある「プロジェクト - VBAProject」欄の中に並んでいるシートモジュールの中から、( )内に表示されているシート名が、「入力規則のリストを自動表示させたいシート」のシート名と同じものを選んでダブルクリックして下さい。  次に、「Microsoft Visual Basic for Applications」ウィンドウの右手にある大きな空欄の中に以下の様なVBAの構文を入力して下さい。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim myValidation As Long On Error Resume Next myValidation = ActiveCell.Validation.Type On Error GoTo 0 If myValidation = xlValidateList Then SendKeys "%{Down}" End Sub  これで、「そのシート上にあるセルの中で、入力規則のドロップダウンリストが設定されているセル」を選択しただけでドロップダウンリストが表示される様になりますので、動作に問題が無い事を確認してからVBAの構文共々保存して下さい。(保存する際のExcelのファイル形式は「マクロ有効ブック」で、その拡張子は「.xlsm」になります)  尚、勤務表を作成するシートが定期的に変わるという場合や、勤務表を作成するExcelファイル内にVBAを組み込む事が躊躇われる場合などには、実際に会社に提出する勤務表のExcelファイルとは別個に勤務表の入力専用のExcelファイルを作成しておき、その入力専用のファイルに同じレイアウトの勤務表の雛型を作成してから、その表内のセルに入力規則のドロップダウンリストを設定した上で、その入力専用ファイルの勤務表の雛型があるシートの方に上記のVBAのマクロを設定し、その入力専用のファイル上の雛型の勤務表でデータ入力を行った後、雛型の勤務表をコピーして、提出用のExcelファイルの方に貼り付ける様にされると良いと思います。

hu19901108
質問者

お礼

ありがとうございます。

  • kkkkkm
  • ベストアンサー率66% (1725/2595)
回答No.3

No2の続きです。 表を2個作ると入力するところと表示されるところが離れてて入力しにくい場合、添付画像のように表を1個にしてしまう方法もあります。 元の表に黄色の部分の列を挿入して D3に =IFERROR(VLOOKUP(C3,$R$4:$S$7,2,FALSE),"") として 緑の部分にコピーします。 入力範囲の固定は黄色の部分だけロック解除で、あとは先ほどの説明と同じです。

hu19901108
質問者

お礼

ありがとうございます。

  • kkkkkm
  • ベストアンサー率66% (1725/2595)
回答No.2

> できたら、カーソルを乗せたら、一覧が表示される これはできませんが最後の →カーソルで隣のセルに移動 を ENTERで隣のセルに移動 にすることはできます。オプションの詳細設定でENTERを押したらセルを移動する方向を右にすれば隣に移動するようになります。 また、入力範囲(添付画像だとC3からL7の範囲)の書式設定でロックを解除し校閲タブのシートの保護で「ロックされていないセル範囲の選択」だけチェックを入れて保護すると範囲内だけカーソルが移動するようになりますので、右の端から次の行に移るのもENTERでできるようになりますので、多少楽になります。 他の方法だとリスト選択をやめて数値を入力して該当の文字を表示させるという方法もあります。 添付画像(4列から9列までは省略してます)のように N列に数値を入れます。オレンジ色の部分。 Q列からは左の表と同じように10のところまでの表を作ります。 C3に =IFERROR(VLOOKUP(R3,$N$4:$O$7,2,FALSE),"") として右と下(C3からL7の範囲)にコピーします。 入力は右の表でします。黄色の部分。 O列の該当する文字のN列の数値を右の表に入力すると左の表に数値に対応した文字が表示されます。数値と対応する文字を覚えてしまうと作業がかなりはかどると思います。 また、入力範囲をシートの保護でR3からAA7までに固定するのもいいでしょう。

hu19901108
質問者

お礼

ありがとうございます。

  • k-josui
  • ベストアンサー率24% (3220/13026)
回答No.1

> 「ALT」+「↓」で一覧を表示→カーソルで選択→ENTER →カーソルで隣のセルに移動・・・という手順を何十回も繰り返すのですが マクロの記録で覚えさせて実行 http://weekly.ascii.jp/elem/000/000/348/348675/

hu19901108
質問者

お礼

ありがとうございます。

hu19901108
質問者

補足

あの・・・。皆様ありがとうございます。 申し訳ありませんが、 もう少し簡単な方法ではないでしょうか…? すいません、理解ができなくて…。

関連するQ&A