[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『リストに自動で追加』(sokai)
[[20050425224445]]『入力規則』(ポー)
ここを参考にして作ったんですが、セルのデータをクリアしたときも登録しますか?と出てしまいます。出ないようにはできないでしょうか?
マクロではないので、外してそうですが、、、 このような形でも、リストを増やすことは出来ます。 [[20060607130605]]『リスト入力の際の余白について』(たむりん) (キリキ)(〃⌒o⌒)b
If Target.Address <> "$D$1" Then Exit Sub の次に一行追加
If IsEmpty(Target) Then Exit Sub
(seiya)
その一行を下記に変更してください
If Intersect(Target, Range("d1,d14,d20")) Is Nothing Then Exit Sub
(seiya)
そこでリストに追加を行ったとき、その右のセルに住所も追加したいのですがダイアログなどが出てきて入力すれば自動で追加できるようになんてできないでしょうか?
[[20050427110557]]に近いように思うのですがいまひとつ理解できません。
sokaiさん 現在のコードをご提示願えませんか? (seiya)
今はこうなっています。
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, res As String '<- 追加
Dim LastR As Long
If Intersect(Target, Range("C8,C14,C20")) Is Nothing Then Exit Sub
If IsEmpty(Target) Then Exit Sub
Application.EnableEvents = False
With Worksheets("差出人リスト")
LastR = .Range("A36636").End(xlUp).Row
Set c = .Range("A1:A" & LastR).Find( _
Target.Value, , xlValues, xlWhole, xlByColumns, xlPrevious, True)
If c Is Nothing Then
If vbNo = MsgBox("この名前をリストに追加しますか?", _
vbYesNo, "名前の追加の確認") Then
ExitSub: '<-追加 以下 Do より End If まで変更・追加してあります。
Application.EnableEvents = True
Exit Sub
End If
Do
res = Inputbox(Target.Value & " の住所を入力してください")
Loop Until Len(res) > 0
If vbYes = MsgBox("氏名: " & Target.Value & vbLf & "住所: " & res _
& vbLf & "を追加します",vbYesNo) Then
.Range("A" & LastR + 1).Value = Target.Value
.Range("B" & LastR + 1).Value = res
.Range("A1:A" & LastR + 1).Name = "差出人"
Else
GoTo ExitSub
End If
End If
End With
With Target.Validation
.Delete
.Add Type:=xlValidateList, Formula1:="=差出人"
.ShowError = False
End With
Application.EnableEvents = True
End Sub
(sokai)
コードを試してください。 ご希望と違うかもしれませんが?
(seiya)
seiyaの兄貴!
ボタンがないっす><
If vbYes = MsgBox("氏名: " & Target.Value & vbLf & "住所: " & res _
& vbLf & "を追加します" ,vbYesNo) Then
(キリキ)(〃⌒o⌒)b
感謝! キリキさん、いつもお世話になります!
(seiya)
seiyaさん、キリキさんほんとにありがとうございます。
これからもっともっと勉強していきたいと思います。ほんとにありがとうございました。
(sokai)
項目など変えられたくない部分があるので、シートの保護をしたら下の部分が黄色く表示され定義のエラーと表示されます
.Add Type:=xlValidateList, Formula1:="=差出人"
保護はできないものなのでしょうか?
(sokai)
シートを保護するって基本的に「変更できないようにする」ってことでしょう? 保護したら入力規則のコマンドはグレーアウトして選択できないはずです。 マクロであっても手入力であっても、扱いは同じです。 一般的な対処法では マクロでシート保護解除>エラーの出るコード実行>シート保護 と言う手順にする (みやほりん)(-_∂)b
落ち着いて考えてみればその通りでした。
何とか対処もできました。ありがとうございました。
(sokai)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.