• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBAについて)

エクセルVBAで20行までの入力制限を設定する方法

このQ&Aのポイント
  • エクセルVBAを使ってAシートからBシートにデータを入力する際に、20行までの入力制限を設定したい場合、セルの書式をロック解除し、保護をかけた上でVBAを使用して入力制限を行うことができます。
  • 具体的には、指定したセル範囲以外のセルを保護し、VBAのコードを用いて入力された行数をカウントし、20行を超える場合にエラーを表示するような処理を行います。
  • このような方法を使えば、VBA初心者でも簡単に20行までの入力制限を設定することができます。

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

  • ベストアンサー
  • keirika
  • ベストアンサー率42% (279/658)
回答No.2

Private Sub CommandButton1_Click() Dim row As Integer row = WorksheetFunction.CountA(Sheets("date").Columns(1)) + 1 '======================================= If row > 20 Then MsgBox "20行以上入力できません" Exit Sub End If '======================================= Sheets("date").Cells(row, 1).Value = Range("B2").Value row = WorksheetFunction.CountA(Sheets("date").Columns(2)) + 1 Sheets("date").Cells(row, 2).Value = Range("B3").Value row = WorksheetFunction.CountA(Sheets("date").Columns(3)) + 1 Sheets("date").Cells(row, 3).Value = Range("B4").Value row = WorksheetFunction.CountA(Sheets("date").Columns(4)) + 1 Sheets("date").Cells(row, 4).Value = Range("B5").Value row = WorksheetFunction.CountA(Sheets("date").Columns(5)) + 1 Sheets("date").Cells(row, 5).Value = Range("B6").Value row = WorksheetFunction.CountA(Sheets("date").Columns(6)) + 1 Sheets("date").Cells(row, 6).Value = Range("B7").Value Sheets("統制入力").Select Range("B17").Select ActiveWindow.SmallScroll Down:=-9 Range("B3:B7").Select Selection.ClearContents Range("B1").Select End Sub でどうでしょうか。

noname#63196
質問者

お礼

keirikaさん、大変助かりました。 ありがとうございました。

その他の回答 (1)

  • higekuman
  • ベストアンサー率19% (195/979)
回答No.1

何がしたいのか、よく解りません。 セルにロックを掛けているんだったら、わざわざVBAを使ってエラーメッセージを出さなくても、どこかに「20行以上入力できません」と書いておけば良いだけではないのでしょうか? このVBAコードは、質問者様が書いたものですか? 意味が解っていますか? ActiveWindow.SmallScroll Down:=-9 なんていうのは、質問内容とはまったく関係ないのですが。