No.2ベストアンサー
- 回答日時:
質問からすると、表示→ツールバー→フォームで表示されるフォームダイアログボックスの
コンボボックスを使用されていると思います。
Excelには、入力のためのコンボボックス的機能は3つあります。
(1)表示→ツールバー→フォーム で表示されるフォームのコンボボックスを使う
(2)データ→入力規則 の機能を使う
(3)表示→ツールバー→Visual Basicで表示されるVisual Basicの
コントロールツールボックスのコンボボックスを使う
(1)は古い機能で、仕様で選択リストの番号が出力さます。
( ↑ 質問の『データが順番の数字がでてしまいます』)
選択リストそのものを表示しようとすると表示用のコード(プログラム)を書く必要があります。
昔はこれしかなく使っていましたが、近ごろは使っていません。カスタマイズもしづらいですね。
(2)は『入力値の種類』と『元の値』を指定すればコンボボックスから選択できます。
指定セル範囲に設定できます。一番簡単で効果的ではないでしょうか。
質問の機能はこれで解決できるかもしれません。
最後に、質問にある機能を簡単に実現するには(3)を使うことでしょうか。
ただ、『カーソルを置いたセルに』とあるので、この意味を実現するにはコードを書く必要があります。
Sheet1で行ってみます。
また、コンボボックスに表示するデータが、Sheet2のA2:A11にあるとします。
A.表示→ツールバー→Visual Basicで表示されるVisual Basicのツールバーから
コントロールツールボックスをクリックします。
B.次にコントロールツールボックスからコンボボックスをシート上に1つ作ります。
C.コンボボックスを右クリックしてプロパティを選択。ListFillRangeに Sheet2!A2:A11 を入力
D.コンボボックスの高さや幅はデザインモードの時、変更できます。マウスで調整するか
プロパティを変更します。(Width、Height、Font、BackColor・・・)
E.『カーソルを置いたセルに』コンボボックスを表示するシカケを作ります。
ツール→マクロ→Visual Basic Editor で VBE画面に移動し、
表示→プロジェクトエクスプローラでプロジェクトエクスプローラを表示しSheet1をダブルクリック。
でてきたSheet1のコードウインドウに下記コードを貼り付けます。
普通ならコンボボックスの『ComboBox1_Change』イベントにセルに書き込む指示を書くのでしょうが、
質問のケースでは書き込むセル位置が変わるため、連続する2回の処理が同じテキスト(ListIndex)を
選ぶ場合、ComboBox1_Changeが発生しません。例えば、B10に『データ1』と入力すると次にB11に
『データ1』が入力できず、わざわざ『他のデータ』→『データ1』にする必要があるでしょう。
下では、『ComboBox1_Change』ではなく、『セルを選択した』動作をキッカケにしています。
今は、B列を選択したらコンボボックスを表示するようにしてあります。
コンボボックスを表示する場所を、rowPot(行、下がプラス)と
columnPot(列、右がプラス)で指定します。
シートに戻って、編集モードを解除(三角定規と鉛筆のアイコン?)します。B列を選べばダイアログボックスが出るはずです。
ここから
↓
Const inpColumn = "B" 'この列を選択するとコンボボックスを表示する。今はB列
Const rowPot = 0 'コンボボックスを、選択したセルと同じ行(0)に表示
Const columnPot = 1 'コンボボックスを、選択したセルの右の列(1)に表示
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With ComboBox1
If Target.Column = Range(inpColumn & 1).Column Then
.Visible = True
.Top = Target.Offset(rowPot, columnPot).Top '縦位置を決める
.Left = Target.Offset(rowPot, columnPot).Left '横位置を決める
.LinkedCell = Target.Address 'リンクするセルを決める
Else
.Visible = False
End If
End With
End Sub
詳細な回答ありがとうございます。
上記で述べてるようにVBA(←上間違えた、失笑)はまだ、よく判らないため、(2)の方法で、いろいろ試していきたいと思います。
ありがとうございました。
No.3
- 回答日時:
#2のご回答のnishi6さんの回答を拝見して、#1回答をいれた者として、間違ったかなとドッキリして、読ませていただきました。
知らないこともあり、勉強させていただきました。ただしエクセル2000で#1のも動くことを再度確認しました。コンボボックスのアイテムをクリックする時に、アクティブセルを指していたカーソルが一瞬消えるのですが、値は
セットされます。
この回答への補足
回答どうもありがとうございます。
BVAは、まだ勉強中なので、基本的なとこも習得できてないので、今のところ難しくて手が出せません。
でも、将来的なやり方として参考にさせていただきます。
現状は、データ入力の手間を省くために、リストからの選択を考えたわけですが、他に簡単な方法があれば、どうのような手段があるのでしょうか?
No.1
- 回答日時:
Sheet1にComboBoxを1つ配置し、
プロパティウインドウを開き、FillListRangeはA1:A5のようにし、A1からA5までのセルに、セットしたい項目(例東京、大阪、名古屋、福岡、仙台)を入力してください。
LinkCellは空白としておきます。
コンボボックスの上で右クリックし「コードの表示」をクリックし
Private Sub ComboBox1_Change()
End Sub
が現われるから、
Private Sub ComboBox1_Change()
ActiveCell = Worksheets("sheet1").ComboBox1.Text
End Sub
と1行入れて、デザインモードを終了し、Sheet1に戻りどこでも好きなセルを選択し、コンボボックスの1つのアイテムをクリックすると、そのクリックした値がセルにセットされる。
セットするセルを1つのセルに固定するなら、プロパティのLinkedCellが使えるが、その都度クリックしたところとなると、VBAを使わざるをえないのでは。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- Excel(エクセル) エクセルでシート保護のかかり方の違いとセルの非保護の設定 3 2022/08/09 10:02
- Excel(エクセル) Excelにの以下の設定方法について教えてください! C列にデータ入力の設定をしています。(出、入を 3 2022/06/22 01:33
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Excel(エクセル) Excelについて Excel初心者です。 日報に数字を入力する時、誤った数字を入れると、セルが赤く 6 2023/03/31 17:05
- Excel(エクセル) excelで可視セルのみ置換 3 2022/08/04 11:02
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) Excel VBA 書式変更で困ってます。 オートフィルターの日付フィルターを用いて データの絞り込 2 2022/07/26 22:16
- Excel(エクセル) エクセルの書式設定の表示形式で設定した文字を文字列としてコピーしたい 1 2022/12/21 10:41
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで横データを縦データに変換...
-
【マクロ】セルの塗りつぶし色...
-
エクセルの文字間スペースを入...
-
不明なコマンドです("FROM")。...
-
【ExcelVBA】sheet作成時にマク...
-
MACのBootCampでWin10のインス...
-
Cドライブ直下にインストール...
-
筆ぐるめver12インストール中の...
-
pythonでrequestsが使えない
-
エクセル/マクロ Exit Subが実...
-
Access2010 「演算子がありませ...
-
ゾンビエクセル・・・(Exc...
-
マクロ実行ボタンがコピー出来ない
-
Windowsドメイン環境でのVPN...
-
オペランドが足りませんとコメ...
-
mfc42.dllファイルってなんです...
-
GETからPOSTに変更
-
Excelユーザーフォームでシート...
-
AUTOCAD 2010でdwlファイルの場...
-
IEのActiveXダウンロードがブロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの文字間スペースを入...
-
Excel2010でふりがなが漢字にな...
-
【マクロ】セルの塗りつぶし色...
-
UserFormのTextBoxからフリガナ...
-
VBAで横データを縦データに変換...
-
不明なコマンドです("FROM")。...
-
Access2010 「演算子がありませ...
-
【ExcelVBA】sheet作成時にマク...
-
オペランドが足りませんとコメ...
-
VBA シートの切り替えができな...
-
mfc42.dllファイルってなんです...
-
エクセル/マクロ Exit Subが実...
-
AUTOCAD 2010でdwlファイルの場...
-
pythonでrequestsが使えない
-
MACのBootCampでWin10のインス...
-
エクセルをエクセレントに究める
-
マクロ実行ボタンがコピー出来ない
-
VBAでシートコピー後、シート名...
-
(int)キャストとintvalの違い
-
貼り付けをマクロで禁止させたい。
おすすめ情報