[[20210120163414]] 『書込みのマクロに条件を追加する』(右近) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『書込みのマクロに条件を追加する』(右近)

お尋ねいたします。
以下は、以前ここでご教授いただいたものです。
[[20180428233458]]
この構文に以下の条件を追加したいのですが、お力添えのほどお願いいたします。
「sh1のセルAS7が36となった場合のみ書込みを許可させる」
このようにしたい思います。どうぞよろしくお願いいたします。

 Sub Posting_Input()
 '入力後のデータをデータベースに登録
    Dim sh1 As Worksheet
    Dim sh2 As Worksheet
    Dim sh3 As Worksheet
    Dim v As Variant
    Dim row1 As Long
    Dim i As Long

    '変数の設定
    Set sh1 = Sheets(sh1Name)
    Set sh2 = Sheets(sh2Name)
    Set sh3 = Sheets(sh3Name)
    v = sh3.Range("A1").CurrentRegion.Value

    'データの存在チェック
    If sh1.Range(v(2, 2)).Value = "" Then
        MsgBox "未入力箇所があるのでデータベースに登録できません。"
        Exit Sub
    End If
    If WorksheetFunction.CountIf(sh2.Range("A:A"), sh1.Range(v(2, 2))) Then
        If MsgBox("すでにDBに登録されています。" & vbLf & "上書きしますか?", vbYesNo) = vbYes Then
            row1 = WorksheetFunction.Match(sh1.Range(v(2, 2)), sh2.Range("A:A"), 0)
        Else
            Exit Sub
        End If
    Else
        row1 = sh2.Range("A" & Rows.Count).End(xlUp).Row + 1
    End If

    'データの転記
    sh2.Unprotect "11100"
    For i = 2 To UBound(v, 1)
        sh2.Cells(row1, v(i, 3)).Value = sh1.Range(v(i, 2)).Value
    Next i
    sh2.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    ReProtect sh2, "11100"

 End Sub

< 使用 Excel:Office365、使用 OS:Windows10 >


 If sh1.Range("AS7").Value <> 36 Then Exit Sub
を追加すればよいのでは?
メッセージが必要なら
 'データの存在チェック
と同様に・・・
(はまちゃん) 2021/01/20(水) 19:11

はまちゃん、ありがとうございます。
これはどの部分に追加すれば良いでしょうか?
(右近) 2021/01/20(水) 19:45

 >これはどの部分に追加すれば良いでしょうか?

ご自分の判断で出来ませんか?

1)プログラム始め
2)入力欄に入力されていなければ、終了
3)すでに一覧に入力値が存在すれば、上書き用行番号取得または終了
4)存在しなければ、リストの最後の行の次の行番号取得
5)データの転記
6)プログラム終わり

という流れで作業するんですよね?(コードを読む限りそう書いてある)

 >「sh1のセルAS7が36となった場合のみ書込みを許可させる」

なんか微妙な言い回しですが、
シートの保護を解除しない場合でも、転記は試みるんですか?

もし、
「指定のセルの値が36でなければ、プログラム終了」とか

「指定のセルの値が36ならば、データの転記」

ということなら、
思うタイミングで、そのように書けばよいと思います。

まずは思うように書いてみる。
で、うまくいかなかったら、
「こう書いてみたけど、こうなってしまう。」
ということを書いて相談してみてください。
誰かの意見を待つだけではなく、ご自分で試行錯誤をしてみてください。
(まっつわん) 2021/01/21(木) 14:27


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.