• ベストアンサー

エクセルで都道府県のリスト作成をしたいです。

セクセルで都道府県を選択できるようにしたい すいませんが教えてください。たとえばA1セルにセブンイレブンと入力しA2にどこの都道府県かを入力したいのですがリストで作成 することは可能ですが?いちばん簡単な方法はありますか?入力規制のリストで一度試みましたが文字が小さすぎて変更もできませんでしたので他の方法があるのかな?と思って皆様の知恵を拝見させていただければ幸いです。また都道府県も全てて入力ではなく簡単なやり方があれば教えてください。 これができれば他にも営業担当者もリストから選択ができて効率が上がりますので教えてください、 宜しくお願い致します。

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

  • ベストアンサー
  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.6

こんにちは。お邪魔します。 "簡単な"というのが、設定が簡単という意味でしたらば、 [データの入力規則]の[リスト]に勝るものはないです。 リストに表示される"文字が小さすぎて"、ということでしたらば、 [ActiveXコントロール]の[リスト ボックス]を活用する方法も 比較的簡単です。 ただ、各種ドロップダウンリストの場合、リスト内容が47点ともなると、 探すのに迷ったり、選択するのに手間が掛かったりして 能率的と呼べるようなものにはなりません。 "簡単な"とか"文字が小さすぎて"というのは、 ここら辺の含みを仰ってるのかな?と思った次第です。 "簡単な"というのが、入力作業を効率化する、という意味だった場合の話を書いてみます。 # そうでない場合は以下読まなくてもいいです。 設定する作業は難しくなりますが、VBAを活用する方法です。 添付画像とVBAサンプルコードで示した、 コマンドバーのポップアップメニューを用いる方法。 サンプルでは、(仮に)C3:C12 をダブルクリックした場合、 添付画像のように階層化されたポップアップが表示されます。 一覧に近い形で視認し易いのが特長です。 区分を工夫すれば、より扱い易くなります。 例えばキーボードで操作する場合の最大(平均)ストローク数や、、 視認し易さ、リテイクのし易さ、等を基準に考えて 適切なツールを選んで工夫すればいいと思います。 提示したサンプルは発展系があって、 ユーザーフォームを組み合わせて、  T  → 千葉 東京 徳島 栃木 鳥取 富山   O  → 東京 徳島 栃木 鳥取 富山   Y → 富山 のような感じで、 キーボードストロークに連続的に応じた予測変換リストをポップアップする ようにして、さらなる省手数化も可能です。 一応、閲覧されている方にも、こちらの意図が伝わるようにサンプルコードあげておきます。 Excelの習熟が進まなければ扱えないでしょうけれど、 一応、Excelの可能性だけは紹介しておこうと思いました。 もし、興味を持たれて試してみたいとか思ったならば相談してみてください。 ' ' ===========標準モジュール============ Option Explicit ' Re8265860 Option Private Module Const fCmdBName = "PopupTree都道府県" Const fOnAct = "RcvCmd都道府県" Const f9D47P = "北海道" & _       ";" & "東北 青森 岩手 宮城 秋田 山形 福島" & _       ";" & "関東 茨城 栃木 群馬 埼玉 千葉 東京 神奈川" & _       ";" & "中部 新潟 富山 石川 福井 山梨 長野 岐阜 静岡 愛知" & _       ";" & "近畿 三重 滋賀 京都 大阪 兵庫 奈良 和歌山" & _       ";" & "中国 鳥取 島根 岡山 広島 山口" & _       ";" & "四国 徳島 香川 愛媛 高知" & _       ";" & "九州 福岡 佐賀 長崎 熊本 大分 宮崎 鹿児島" & _       ";" & "沖縄" Sub myポップアップメニュー設定()   Dim v   Dim sArrD() As String   Dim sArrP() As String   Dim nChildren As Long   Dim i As Long   On Error Resume Next   Application.CommandBars(fCmdBName).Delete   On Error GoTo 0   sArrD() = Split(f9D47P, ";")   With Application.CommandBars.Add(fCmdBName, msoBarPopup, , True)     For Each v In sArrD()       sArrP() = Split(v)       nChildren = UBound(sArrP)       If nChildren = 0 Then         With .Controls.Add(msoControlButton)           .Caption = sArrP(0)           .OnAction = fOnAct         End With       Else         With .Controls.Add(msoControlPopup)           .Caption = sArrP(0)           For i = 1 To nChildren             With .Controls.Add(msoControlButton)               .Caption = sArrP(i)               .OnAction = fOnAct             End With           Next i         End With       End If     Next   End With   MsgBox "ポップアップメニュー" & vbLf & "'" & fCmdBName & "'" & _    vbLf & "を設定しました。", vbInformation End Sub Sub myポップアップメニュー削除()   On Error Resume Next   Application.CommandBars(fCmdBName).Delete   If Err Then     MsgBox "ポップアップメニュー" & vbLf & "'" & fCmdBName & "'" & _      vbLf & "は存在しません。", vbInformation   Else     MsgBox "ポップアップメニュー" & vbLf & "'" & fCmdBName & "'" & _      vbLf & "を削除しました。", vbInformation   End If End Sub Sub RcvCmd都道府県()   With ActiveCell     .Value = Application.CommandBars.ActionControl.Caption     .Next.Activate   End With End Sub Sub Auto_Open()   Call myポップアップメニュー設定 End Sub ' ' ============================== ' ' ===========シートモジュール=========== Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)   If Intersect(Range("C3:C12"), Target) Is Nothing Then Exit Sub   Cancel = True   Application.CommandBars("PopupTree都道府県").ShowPopup End Sub ' ' ==============================

その他の回答 (5)

  • hayasi456
  • ベストアンサー率40% (2402/5878)
回答No.5

ドロップダウンリストでしょうか エクセル2003以前、2007、2010と多少違うようです。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/n-kis_list.htm http://www.becoolusers.com/excel/data-validation-list.html 御節介つでに 使用目的は解りませんが 都道府県など47も選択肢があると私には選ぶのが面倒です 選ぶより入力した方が効率的かもしれません。 A2にドロップダウンリスト「北海道、東北、関東、北陸、中国・・・・」もしくは営業所で絞込み A2で絞り込まれた結果、A3でその地域の都道府県が選択できるようにしてもよいでしょう。 営業担当者も大勢いると選択を間違える原因になりかねませんね。 とりあえずエリア毎にファイルを作り、 必要が有ればファイルにまとめても良いかもしれません。 リストのフォームが完成した後、 規模が大きいと入力するのも大変です。 セブンイレブンは国内に15,831店あるんですね。 また、出店、閉店、営業担当の増減があるでしょう。 リストのメンテナンスが出来る人はfwkb6253 さん以外にもう一人、出来れば数人いるといいですね。 統一したフォームでエリア毎に入力を分業も出来ますね。 5人でも一人当たり15,831店全店入力となると三千以上の入力数です。

noname#204879
noname#204879
回答No.4

》 入力規制のリストで… エクセルの用語だと「入力規則」だけど、貴方はなぜ「規制」という言葉を使われたのですか?何処ぞの書物に書いてあったとか? チト、気になったものでお尋ねしています。

回答No.3

>入力規制のリストで一度試みましたが文字が小さすぎて変更もできませんでしたので…… 「文字」というのは、どこのことを言っていますか? もしも、リストを使ってセルに値を記入するときにセル上にプルダウンで表示される文字列のことなのでしたら、画面全体の表示倍率を 200 % とかに上げて、再度行ってください。セルなどが大きく表示されていますが、一緒にプルダウンの文字も大きくなります。 >また都道府県も全てて入力ではなく簡単なやり方があれば教えてください。 「全て手(?)入力」というのは、入力規則のダイアログ内でキーボードからタイプして、リストに加えたい各文字列そのものをそこのボックスに記入するという意味ですか? そうであれば、その方法でなくても、セル参照によりリストを指定できます。ダイアログで「リスト」を選んでいるときに現れている「元の値」ボックスにカーソルを置いた状態で、シートの参照したいセル範囲をドラッグするだけです。 >たとえばA1セルにセブンイレブンと入力しA2にどこの都道府県かを入力したいのですがリストで作成することは可能ですが? 連動する複数のリストを用意するには、名前という機能と INDIRECT 関数を併用します。検索すれば多くのページが出てくると思いますが、例えば次ページなどをご覧ください。 http://www.relief.jp/itnote/archives/000822.php もしも店名と都道府県名が 1 対 1 で対応しているという場合は、リストの機能を使うよりも VLOOKUP 関数で都道府県名を自動入力するほうがラクだと思います。この関数は、Excel の初級ではいちばん難しい数式といった感じかもしれませんね。次ページなどを参考に。 http://allabout.co.jp/gm/gc/297725/

回答No.2

1です。 補足します。 もし47が見辛いと感じるならば もう一列用意して地方のリストと繋げると、格段に見やすくなると思います。 EXCEL 入力規則・リスト応用編 いろいろ http://note.chiebukuro.yahoo.co.jp/detail/n149222

回答No.1

入力規制のリスト設定で良いと思います 文字が小さいならば、フォント設定で文字を大きくしてください。 Excel(エクセル)基本講座:入力規則の使い方 http://www.eurus.dti.ne.jp/~yoneyama/Excel/n-kis.htm Excel のフォント名またはフォント サイズを変更する http://office.microsoft.com/ja-jp/excel-help/HP001216423.aspx 都道府県の文字入力が面倒な時 http://ja.wikipedia.org/wiki/都道府県 行や列の表示・非表示(都道府県のリストを隠したい場合) http://pc.nikkeibp.co.jp/pc21/tech/excel43/15/