• ベストアンサー

Excel セルをクリックするだけで入力

セルをクリックするだけで決まった規則の入力ができないでしょうか? 現在、入力規則のリストを使用して「 」(←空白)と「○」の2種類の入力を選択してしています。 これを空白のセルをクリック(選択)するだけで「○」が入力され、もう一度クリック(選択)すると空白になるような入力ができないでしょうか? 良い知恵をお持ちの方がいらっしゃいましたら是非、お願いいたします。

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

  • ベストアンサー
  • jindon
  • ベストアンサー率43% (50/116)
回答No.6

jindonです >この動作を行う、セルの範囲を決めるにはどのようにしたらよいのでしょうか? Target.Row で行を指定 Target.Column で列を指定します。 例:全てコード中の With Target のすぐ下に.. 1. 絶対位置を指定する(A1を想定) If .Row=1 And .Column=1 Then.... Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) With Target If .Row=1 And .Column=1 Then If .Value = "○" Then .Value = "" Else .Value = "○" End If End If End With End Sub 2. 列を指定(A列を想定) If .Column=1 then.... Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) With Target If .Column=1 Then If .Value = "○" Then .Value = "" Else .Value = "○" End If End If End With End Sub 3. 指定した列以外(A列を想定) If .Column<>1 then.... Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) With Target If .Column<>1 Then If .Value = "○" Then .Value = "" Else .Value = "○" End If End If End With End Sub And と Or を使用して範囲を指定できます。

suika_no1
質問者

お礼

ありがとうございます。お陰様で大変良い物が出来ました。(^^) 使用する人が大変気に入っておりました。 本当にありがとうございます。

その他の回答 (5)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

リストボックスとClickイベント利用。 (1)リストボックスを(例えば)Sheet1上に1つはりつける(コントロールツールボックスから)。 (2)リストボックス(エディトモードで)内で、マウスの右クリック。 (3)プロパテイをクリック。 (4)ListFillRangeの行に例えば G1:G6といれる。プロパティボックスをXで脱出。 項目選択肢5+空白1の場合。 (5)シートのG1:G6に例えば 東京 大阪 名古屋 福岡 札幌 (空白) を入力する。 (6)リストボックス(エディトモードで)内で、マウスでダブルクリック。 (7)VBE画面になり Private Sub ListBox1_Click() End Sub と出るから、中間の行に下記コード1行をいれる。結果 Private Sub ListBox1_Click() ActiveCell = ListBox1.List(ListBox1.ListIndex) End Sub (8)デザインモードを脱する。 (9)Sheet1に戻り、 値をセットしたいセルをクリックしておいて、リストボックスのどれかを選択してクリックすると、その値がセットされる。 (10)消したい時は、消したいデータが入っているセルをクリックして、リストボックスの6番目の空白をクリックすると、消したいデータが入っているセルは空白になります。

suika_no1
質問者

お礼

私の書き方が悪かったでしょうか、ちょっと内容が違っていまして、たった2種類の選択なので、いちいち(1)セルをクリック(2)ドロップダウンを開く(3)選択するという作業が面倒なので、1クリックで○と空白が入力できないかなと思ったわけです。 でも、他に使えそうなので感謝です。ありがとうございます。

  • jindon
  • ベストアンサー率43% (50/116)
回答No.4

#3さんの仰るとおりだと思いましたので、 ダブルクリック時に作動するということで、 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) With Target If .Value = "○" Then .Value = "" Else .Value = "○" End If End With End Sub エクセル画面より Alt+F11 でVBEを起動して左側画面より該当シートのアイコンをダブルクリックして、 右側画面の空白部分にコピー+ペーストして下さい。

suika_no1
質問者

補足

ありがとうございます。皆さんのを試したのですが、一番jindonさんのものが、使いやすく便利でした。(^^) ところで、この動作を行う、セルの範囲を決めるにはどのようにしたらよいのでしょうか?

回答No.3

VBA(シートオブジェクトのSelectionChangeイベント)を使用すれば、ご希望の要件が満たせると思います。 ただ、この方法でいくと、普通にセルを選択したい場合との切り分けにちょっと一考が必要ですね。 → ○は指定した列のみ とか。

suika_no1
質問者

お礼

ご提案ありがとうございます。 お陰様でjindonさんが、良い案を出してくれました。 確かにセルを移動しただけで入力されるので、ちょっとコツが必要で選択だけでは使いにくかったです。 本当にありがとうございます。

  • potedora
  • ベストアンサー率47% (66/140)
回答No.2

該当のシートでSelectionChangeイベントに処理を書けば できます。 例としてA1が該当セルの場合の例を書きます。 Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) If Target.Column = 1 And Target.Row = 1 Then If Target.FormulaR1C1 = "○" Then Target.FormulaR1C1 = "" Else Target.FormulaR1C1 = "○" End If End If End Sub イベントはメニューのシート/マクロ/Visual Basic Editorを起動して、 プロジェクトウィンドウの該当シートをダブルクリック して出てきたウィンドウの左上のGeneralを Worksheetに変更して右上のコンボボックスをSelectChangeにすれば表示されます。

suika_no1
質問者

お礼

ありがとうございます。 上手く行ったのですが、jindonさんのダブルクリックの入力が一番使いやすかったのでそちらを1位にしてしまいました。 本当にありがとうございます。

回答No.1

クリックだけでやってしまうと困らないですか? 普通に入力したいのに○が入る事に成らないですか?

suika_no1
質問者

お礼

確かに。ちょっと使いにくかったです。(^^;

関連するQ&A

  • Excelでの入力規則について

    Excel2000を使用しています。 Excelでの入力規則で「リスト」を選択し、範囲指定をしてリストを作成したいと考えているのですが、その範囲の中に空白セルが存在するとリストにもその空白が出てきます。 これを表示させないようにするにはどうしたらよいでしょうか? よろしくお願いします。

  • Excelのセルをリストから入力

    Excel2000ユーザーです。 任意のセルをリストからデータ入力(選択)するように設定した場合、リストに含まれない値を入力する方法はありますか? ■現状 [データ]→[入力規則]で入力規則プロパティ画面を表示し、 「入力規則の種類」:リスト 「元の値」:リストに含めるデータ 「ドロップダウンメニューから選択する」にチェック と設定しています。

  • エクセルで計算式の入力されているセルに直接入力もしたい

    エクセル2000での質問です。以下はセルA1,A2,A3を使った例です。 1.A1は以下の定められた単価のプルダウンリストがあり、選択します。    「空白」    「1000」    「2000」    「3000」 2.A2は個数を直接入力します。 3.A3セルに =A1*A2 と計算式を入力しています。 これでA3には合計金額が表示されますが、ここからが質問で私のしたいことです。 A1セルで「空白」が選択されている場合、A3セルに一式の金額として合計金額を直接入力したいのですが、直接入力をした時点でA3セルの計算式は消えてしまいます。しかし、A1セルの「空白」を「1000」に変更したと同時に、A3セルの計算式が復活して計算結果を表示する。 マクロを使わない方法でこのような方法を実現することは不可能でしょうか? 質問にA3セルの計算式が復活、と書いていますが、実際は計算式をセルに入力するのではなく、見えないところ(入力規則のような機能)に登録しておくといった方法があるかどうかになると思います。 以上、方法がありましたら回答よろしくお願いします。

  • EXCELの入力規則のリストについて。その2(IFで空白にしたセル)

    EXCEL2000で入力規則のリストを設定しています。 IF(セル番号="","",VLOOKUP(…))を使用して表を作っています。 表は途中からIFによって空白行になっています。 この表全体をリストの「元の値」に設定しているのですが、プルダウンメニューに空白が延々と表示されてしまいます。 この空白を表示させない方法はあるでしょうか? どうかよろしくお願いします。 もう1つ「EXCELの入力規則のリストについて。その1」という質問もさせていただいています。 併せてよろしくお願いします。

  • 入力規則は更新されない?

     A1のセルに「あいうえお」  A2のセルに「かきくけこ」と入力してあります。  B1のセルには入力規則を使用し、A1・A2のセル内の文字しか選択できないようにしています。  私は、B1にリストから選択し、「あいうえお」の文字を選択しました。  しかし今日、A1に入力してあるセルを「さしすせそ」と変更しました。  しかし、B1のセル内のも字は更新されず、まだ「あいうえお」のままでした。  もう一度B1の横の▼ボタンをクリックすれば、リスト内の文字は「あいうえお」の文字は消え、「かきくけこ さしすせそ」と変わっていました。  今回は実験なので入力規則も少ないのですが、今度、何百というデータを扱います。    入力規則に設定してある文字を変更しても、リストから選択している文字は更新はされないのでしょうか?いちいち▼ボタンをクリックし、再選択しなければならないのでしょうか?  自動的に変えられる設定があれば教えて下さい。

  • Excel セルをクリック⇒リスト⇒選択できる方法?

    『Excel セルをクリックして、すでに登録されているリストが表示される。そのリストから一つ選択するとその項目がセルに入力される。(例:セルを選択すると、セルの右に飲み物のリストが表示され、その中から一つ選択すると、セルに選択した項目が入力される)』このようなシートを一度みたことがあり、使用したいと考えのたのですがその設定方法がわからず困っています。よろしくお願い致します。

  • (MS-Excel)「入力規則」で「リスト」に空白セルを含めない方法

    (MS-Excel)「入力規則」で「リスト」に空白セルを含めない方法 たとえば、A1,B1,D1,G1は何らかの文字列が入力されていて、C1,E1,F1が空白セルだとします。 「入力規則」の「リスト」で、「元の値」にA1:G1を指定した場合は、空白もリストされてしまいます。 空白を表示させたくないのですが、作業セルに空白以外をリストさせて元の値とする、という方法は使いたくないです。 調べたところ、名前の定義方法で実現できるみたいですが、良く解りませんでした。

  • excelのセル入力に関して

    excel2010を使用しています。 セル入力において、例えば 「りんご」と打っても、「010」と打っても セルに「りんご/010」と表示することは可能でしょうか? このパターンが数十種類ある(「檸檬」と打っても「030」と打っても「檸檬/030」など)のですが、どのように設定すればいいでしょう。 数式なのか、入力規則なのかわかりません。 教えてくださいよろしくお願いします。 

  • Excel 入力規則_リスト 連続しないデータの空白行削除

    お世話になります。 Excel2003を使用しています。 あるブックのSheet1に"リストデータ"と名前のついている範囲があります。 Sheet2の任意のセルで、リストデータを基に入力規則から リスト選択をさせています。 このリストデータにはユーザが任意でデータを入力するのですが 必ずしも連続するデータにはならず データの途中に空白セルが生じたり データの最下行が人によって異なってしまいます。 そこで、不要な空白を削除したいのですが VBAを使わない方法で何かいいアイディアはありますでしょうか。 皆様のお知恵を拝借いたしたく、よろしくお願いいたします。

  • エクセル:入力規則のリストとセルの関数は同居できますか?

    エクセル:入力規則のリストとセルの関数は同居できますか? 普通にやるとセルの計算式はリストを選んだ時点でリストの文字に上書きされてしまうので困っています。 (例)   A              B         C 1 2008/08/02        =TODAY 2 ▽リスト           OK 3                NG 4 A2のセルにに =IF(A1>B1,"")と書いたとします。 で、さらにA2のセルに入力規則>リストで範囲B2:B4と設定したとします。 要は、A1に記入した日付が未来の場合は、 A2でリストで選択した文字を空白にしたいのです。 が、どうしてもリストの文字に上書きされてしまうので困っています。 やはり、関数を書いてあるセルに文字を書くと上書きされるのと同じですかね? なるべくVBA以外でなんとかしたいのですが、、、。(でもVBAでも可です)

専門家に質問してみよう