電子書籍の厳選無料作品が豊富!

いつもお世話になります。
更新ボタンををクリックすると、ある条件のもとに、別表からデータの一部が抽出されます。(添付の表)
その抽出された該当者№をセルD1で指定し、その備考欄の数字によって、処理をします。

その際、【セルD1】に処理する該当者の № を入力するのですが、表の該当者欄が空白の№を入力できないようにするにはどうすればいいですか?

よろしくお願いします。

「特定のセルに入力規制をしたいのです。教え」の質問画像

質問者からの補足コメント

  • つらい・・・

    ご指摘のように、マクロに組み込みましたが、うまく作動しないのです。どうしてなのかが分かりません。ヒントでもあればお願いします。

    No.2の回答に寄せられた補足コメントです。 補足日時:2018/05/03 17:56

A 回答 (4件)

>マクロに組み込みましたが、うまく作動しないのです。

どうしてなのかが分かりません。ヒントでもあればお願いします。

マクロの質問?コードも何もないのに、うまく作動しないとか、どうしてと言われても、分かりません。ここのいつもの回答者さんの十八番みたいなコードになりますが、例えば、こんなふうとか?
エラー処理でちょっとコードがくどいかもしれません。

DropDown方式なら、空白を詰めればよいことです。ただし、DropDownを編成する別のマクロが必要になる可能性があります。


'//
Sub Button1_Click()
Dim Rng As Range
Dim target As String
Dim c As Variant
If Trim(Range("D1").Value) = "" Then Exit Sub
target = Trim(Range("D1").Value)
Set Rng = Range("B3", Cells(Rows.Count, "B").End(xlUp))
Set c = Rng.Find(target, , xlValues, xlWhole)
If Not c Is Nothing Then
 If c.Offset(, 1).Value <> "" Then
  MsgBox "'実行" 'ここに実行マクロを入れる
 Else
  MsgBox "実行できません。", vbExclamation
  Exit Sub
 End If
Else
 MsgBox "その番号はありません。", vbExclamation
End If
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。
>マクロに組み込みましたが
表現がまずかったですね、ごめんなさい。
C1にある更新ボタンをクリックして、下の表を更新作成します。(ここまでで最初のマクロ1終了です)
その次に、右側の処理作業に入るマクロ(マクロ3を実行する)前に、№2の箇所で
示していただいたマクロ(マクロ2)を単独で実行したがうまく作動しなかった、という意味でした。

お礼日時:2018/05/06 10:41

ちょっと変わってしまいますが、



D4~Dxに以下の式を入れて、該当者がいるNoのみを表示するようにして、

 =IF(C4<>"",B4,"")


D4~DxをD1の入力規則のリスト対象にしたら、その番号しか入力できなくなると思いますが、いかがでしょうか?

※ドロップダウンリストには空白が多くなってしまいますので、ドロップダウンリストを使用しないほうがいいかも
    • good
    • 0
この回答へのお礼

ありがとうございます。
そういう方法もあるのですね。
参考になりました。
ありがとうございます。

お礼日時:2018/05/04 08:04

ボタンをクリックした際にデータを持ってくるのはマクロでやっているのでしょうか。


でしたら、データを持ってくる際に、D1に設定したい値リストを作成します。

 Dim strValList as String

 strValList = "1,5,14" '図の例だとこうなるはずですよね。

 With Range("D1").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= xlBetween, Formula1:=strValList
.IgnoreBlank = True
.InCellDropdown = True
.IMEMode = xlIMEModeNoControl
.ShowInput = True
.ShowError = True
End With
 
 これでセルD1に入力規則が設定されるはずです。
この回答への補足あり
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
データを持ってくるのはマクロですので、参考になります。

お礼日時:2018/05/03 17:36

質問文に余計な説明が多いようですが・・・。


D1セルの入力規則に、次の式を設定するだけで良いのではないでしょうか。

=VLOOKUP(D1,B4:C20,2,FALSE)<>""
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございました。
そうでした、了解しました。

お礼日時:2018/05/03 17:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!