|
こんにちは。かみちゃん です。
横から失礼します。
>「セルに、表品番号を入力すると、同じ番号のファイルが開く」という設定で、
>下記のようにVBAを作成しましたが、今のままだと、違う列のセルに文字を入力し、「ENTER」を押す度に、ファイルが何度も画面に現れてきてしまいます。
>これを、一度きりしか表示されないようにするには、どうしたらよいのでしょうか?
まず、
>Private Sub Worksheet_Change(ByVal C As Range)
このコードは、シートモジュールに記述していますか?
標準のものは、
Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
となっていると思いますので、わざわざ変数名を変えている意図がわかりません。
ただ、わかりにくいだけというなら、別ですが・・・
それで、
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox Target.Address & "-->" & Target.Value
End Sub
とすれば、変更されたセルの番号と、セルの値が表示されます。
strPartsNumber = Worksheets("DATA").Range("C65536").End(xlUp).Offset(0, 4)
の部分は、何をしているのか、今ひとつわからないのですが、本当に
> セルに、表品番号を入力すると、同じ番号のファイルが開く
としたいならば、
strfileName = "Y:\検査\詳細" & "\" & Target.Value & ".pdf"
でいいと思います。
LRfileName = "Y:\検査\詳細" & "\" & LR & ".pdf"
の部分は、よくわかりませんので、ご自身で考えてください。
なお、このままですと、
Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
を記述したシートのどのセルに入力しても、同様の動きをしますので、
If Not Intersect(Target, Range("A1:A2")) Is Nothing Then
MsgBox Target.Address & "-->" & Target.Value
End If
とすると、A1:A2セルに入力したときだけ動作します。
他にも、セルの値を消去したらどうするとか、複数のセルが同時に変更されたら
どうするとかの対策も必要かと思います。
詳しくは、過去ログ等で「Worksheet_Change」を検索してみてください。
|
|