• ベストアンサー

セルの入力を制限する

エクセルのセルA1に入力がない場合、A2~A10の範囲のセルを入力できないようにする。 といった感じのVBAのマクロを作成したいのですがどのような方法があるのでしょうか?

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

No1です。 マクロの勉強のための質問だとしたらNo1の回答では的外れですね。 一応マクロも書いておきます。 標準モジュールではなく、該当のシートのシートモジュールに記述してください。 Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("A2:A10")) Is Nothing Then Exit Sub If Range("A1") = "" Then MsgBox "A1に入力がありません!", vbCritical Application.EnableEvents = False Target.ClearContents Application.EnableEvents = True End If End Sub

taroyamu
質問者

お礼

ありがとうございます。 とても助かりました。

その他の回答 (1)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

エクセルのセルA1に入力がない場合、A2~A10の範囲のセルを入力できないようにしたいなら、A2~A10セルにメニューの「データ」から「入力規則」で、「ユーザー設定」、数式を  =$A$1<>"" にし、「空白を無視する」のチェックをはずせばそうなります。マクロを使うまでもないです。

関連するQ&A

  • エクセルで入力しているセルだけの選択

    こんばんは! エクセルで、入力しているセルだけを範囲選択って出来るのでしょうか? 一応、範囲は飛び飛びではなく、A5からAC1800のように四角くなるような範囲となります。 何かショートカットや、マクロなどで方法がありましたらご伝授願います。 よろしくお願いします。

  • 入力セルから入力セルに罫線をひく

    BBAでお聞きします。 セルB3「あ」が入力してあり、F5に「い」が入力してあるとします。B3;F5まで罫線をマクロ設定後、ボタンを作成して記入できますでしょうか。 Excelで「B3」を選択後、shift+ctrl+endで「F5」まで指定後、相対マクロで記憶させます.その後、1度クリアー後、再度「B4」から「F4」まで選択しますとF5まで罫線が引かれます。 記入セルから記入セルまでの罫線の引く、VBAをご教授ください。 宜しくお願いします。

  • 【VBA】条件を満たしたセルを塗り潰し

    VBAで下記のようにしたいのですが、どのようにすれば良いでしょうか?      A 1    100 2    110 3    120 4    130 5    140 6    150 7    160 8    170 9    180 【条件】この場合、A1:A9の範囲内でB1の値を超える値が入力されているセルを黄色で塗りつぶす ※前提として、B1に150と入力されているとします 上記のようなVBAを作成したいと思っています。 この場合、塗りつぶしの対象となるセルはA7,A8,A9となります。 条件付き書式で対応できるのですが、Excel2007で作成したファイルをExcel2003で開くと条件付き書式が反映しませんでしたので、VBAで対応しようと思いました。 宜しくお願いします。

  • セルの値により入力を制限したい

    EXCEL2013を利用しています。 セル入力の制限方法について助言賜りたく投稿させていただきました。 行いたいこととしまして、 ・セルA1には数値を入力します。 ・セルA1に2ケタ以上の数値が入力された場合はメッセージを表示させます。  ただし入力はできます。 ・セルA2に"済"と入力された場合は、セルA1は入力できません。 ・シート全体としては、奇数行は数値入力、偶数行は”空欄”か”済”とします。  ”済”の参照は、A1はA2を参照、A3はA4を参照、B1はB2を参照、C3はC4を参照、・・・といった具合に、範囲はA1~NG200、同様のシートが30枚、に対し上記条件を適用させたいです。 といったことを行いたいのですが、可能でしょうか? 自分では、 A1の入力規則へ、A2=" " と設定する。(A1~NG200のすべてに適用させる) A1~NG200の範囲に対し、>10 の場合はメッセージを出す としたいのですが、手段を思いつけせんでした。。。

  • エクセルVBAでセル選択

    エクセル2000でリストを作成し、VBAで編集しようとしています。 A列に入力されているコードの先頭に「’」をつけて文字列とするための関数をB2のセルからA列のデータが入力されている最後のセルの隣までコピーしたいと思っています。 A列の最終セルを取得するVBAは分かったのですが、その値をB列の選択範囲として使用する方法がわかりません。 エクセルVBAは全くの初心者です。 どなたか教えてください!

  • 未入力セルとVBAについて

    エクセルのVBAについて教えて下さい。独学で調べたのですがわからず…お力をお借りしたいです。 未入力のセルがあった場合、入力しなければ保存できないマクロは知っているのですが、 では、それが結合セルであった場合はどの様になるのでしょうか?例えば、(A1~C1だったら) 又、複数の結合セルにその様な設定をしたい場合もどこに追加して行けばよいのでしょうか? 合わせて教えて頂けたら幸いです。 以下 Private Sub Workbook_BeforeClose(Cancel As Boolean) If Sheets("sheet1").Range("A1") = "" Then MsgBox "必須項目セルが未入力です", 48, "入力エラー" Cancel = True Else ActiveWorkbook.Save End If End Sub

  • セル範囲の取得

    エクセルの名前ボックスでセルA1からA10までの範囲に名前をつけた場合、この名前をVBAマクロに用いてA1とA10の行番号を取得することは可能でしょうか? よろしくお願いします。

  • エクセル セル範囲にデータが記入されているかを知りたい

    いつもお世話になります。 エクセル2000を使用しています。 「セル範囲のA2~B20に、データが含まれているセルが一つもない場合は、処理を実行しない。一つでも存在する場合は以下の処理をする」 というマクロを書こうとしているのですが 「セル範囲のA2~B20に、データが含まれているセルが一つもない」、「一つでも存在する」 という意味の式の書き方が分かりません。 お手数ですが、教えていただけますでしょうか。 また、現在はエクセルのVBA入門書程度のもの("できるEXCEL2000 マクロ&VBA編")しか手元にないのですが、このようなことが分かりやすく理解できる書籍などをお知りでしたら、教えていただけますでしょうか。

  • excelで入力されてる一番下のセルだけを消したい

    エクセルでいちばん下に入力されているセル(最新のセル)を ラクに消す方法はないでしょうか? 現在はファイルを開いた状態で ctrl+↓で最新のセルまで行って削除→ctrl+↑で戻ってくる という方法で作業しています これをマクロやVBAを使って簡略化することは可能でしょうか? ※ファイルごとに入力されてる数が違うので毎回セル数は違う数 ご回答、よろしくお願いいたします。

  • セルに入力制限をかけたい

    EXCELVBAで、 ユーザがエクセルのセルに入力するときに (1)このセル(A1)は半角数字8文字、 (2)このセル(C5)は一つ上のセルが空欄のときは入力できない、 のような制限をかけたいと思いますが、 可能でしょうか。 宜しくお願い致します。

専門家に質問してみよう