【EXCEL2007 VBA】Validation入力規則→編集
- 通常Validation入力規則を使用すると、入力したセルデータはそのまま使用しますが、例えば山梨県を選択し、その同一セル内で山梨県に加えて甲府市と入力するとエラーが現れます。
- Validationの使用にはこだわりませんが、とにかく選択肢の表示、選択、編集を素早くやりたいです。
- 上の例であれば隣のセルで山梨県の市を選べるようにすればいいじゃないか、という指摘があるかもしれませんが、あくまでも例なので、それはナシとして下さい。
- ベストアンサー
【EXCEL2007 VBA】Validation入力規則→編集
【EXCEL2007 VBA】Validation入力規則→編集 こんにちは。 通常Validation入力規則を使用すると、入力したセルデータはそのまま使用しますが、例えば↓のようなコードで"山梨県"を選択し、その同一セル内で"山梨県"に加えて"甲府市"と入力するとエラーが現れます。 そのエラーが現れなく方法はあるのでしょうか? Sub ChooseThenEdit() With Range("D2").Validation .Delete .Add Type:=xlValidateList, _ Formula1:="福岡県,岡山県,山梨県" End With End Sub Validationの使用にはこだわりませんが、とにかく 1.選択肢の表示 2。選択 3.編集 を素早くやりたいのです。 注1.上の例であれば隣のセルで山梨県の市を選べるようにすればいいじゃないか、という指摘があるかもしれませんが、あくまでも例なので、それはナシとして下さい。 注2.ListBoxを使用すればまあ出来ますが、ちょっと素早くできないと思うので、ご勘弁ください。 ではでは。ご回答ありがとうございます。
- maruyl
- お礼率69% (48/69)
- オフィス系ソフト
- 回答数2
- ありがとう数4
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>その同一セル内で"山梨県"に加えて"甲府市"と入力するとエラーが現れます。 >そのエラーが現れなく方法はあるのでしょうか? Sub ChooseThenEdit() With Range("D2").Validation .Delete .Add Type:=xlValidateList, _ Formula1:="福岡県,岡山県,山梨県" .showerror= false End With End Sub
その他の回答 (1)
- kybo
- ベストアンサー率53% (349/647)
End With の前に、以下の1文を入れて見て下さい。 .ShowError = False
お礼
kybo様。ご回答ありがとうございました。動いてこれで正しいことは確認できたのですが、なんと同時刻に正解を送ってきてくださった方がいて、向こうの方がほんの少し早いので、No1の方をベストアンサーとさせていただきます。ご容赦くださいませ。
関連するQ&A
- VBAで入力規則の設定
いつもお世話になっております。 VBAを勉強して3ヶ月程度の初心者です。 VBAでの入力規則の設定について質問させていただきます。 A1セルに入力規則の設定を行い、0~10までの数値を選択できるようにしたいと考えています。 Sub Test() Range("A1").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertInformation _ , Formula1:="0,1,2,3,4,5,6,7,8,9,10" End Sub とコードを記述すれば、確かに望みの仕様は満たされるのですが、複数のセルに入力規則を設定する場合、 また、リストの数が増えた場合を考えて、"1,2,3,4,5,6,7,8,9,10"を変数に出来ない?と考えて・・・ Sub Test2() Dim kazu(10) As Long kazu(0) = 0 kazu(1) = 1 kazu(2) = 2 kazu(3) = 3 kazu(4) = 4 kazu(5) = 5 kazu(6) = 6 kazu(7) = 7 kazu(8) = 8 kazu(9) = 9 kazu(10) = 10 Range("A2").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertInformation _ , Formula1:=kazu End Sub なんて事もやってみましたが・・・駄目でした。 もう一点、初期値に0を表示したい場合は、入力規則コードの後に、 Range("A1").Value=0 と表示すればよいのでしゅか? ご指導をよろしくお願いいた
- ベストアンサー
- Excel(エクセル)
- excel2003 vba の入力規則リスト
入力規則でリスト登録する記述について、教えていただけないでしょうか。 例えば変数(long)で、a=1,b=5 というものがあったとします。 シート1のA1セルに、1,2,3,4,5 でそれぞれ数値選択できる入力リスト を作成したいのですが、うまくいきません。どのように修正したらよいか教えて欲しいです。 Dim a As long Dim b As long a=1 b=5 With Worksheets("Sheet1").Range("A1").Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=a, Formula2:=b End With だと、何も設定されません。
- ベストアンサー
- Excel(エクセル)
- 入力規則 日付をリストのプルダウンで選択したい
エクセルの入力規則をVBAでやる時に日付をリストのプルダウンで選択したいのですが Sub test() With Range("A1").Validation .Delete .Add Type:=xlValidateList, Formula1:="2014/1/1,2014/1/2" End With End Sub をすると、 1/1/2014 1/2/2014 にとプルダウン上で表示されてしまい、なおかつ文字列になってしまいます。 .Add Type:=xlValidateList, Formula1:=#1/1/2014# & "," & #1/2/2014# .Add Type:=xlValidateList, Formula1:=Format(#1/1/2014#, "yyyy/mm/dd") & "," & Format(#1/2/2014#, "yyyy/mm/dd") これでも同じでした。 2014/1/1 2014/1/2 と表示させるにはどうすればいいでしょう?
- 締切済み
- Excel(エクセル)
- 入力規則 ひらがな VBA うまくできない
シート全体を入力規則でひらがな入力するvbaコードを実行したいのですが Sub Macro2() With Cells.Validation .Delete .IMEMode = xlIMEModeHiragana End With End Sub これだと実行時エラー1004が発生するのですが、何かが間違ってると思うのですが、 どこが変でしょうか? ご教授よろしくお願いします。
- ベストアンサー
- Excel(エクセル)
- Excel VBA 入力規則のリスト化
Excel VBAにて入力規則でリスト化しようと思っています。 通常セルを範囲指定によってリスト化する場合、 以下のようなコードになると思うのですが、 (セルA1にセルB1~B10の内容がリスト化される) Range("A1").Select With Selection.Validation .Add Type:=xlValidateList, Formula1:="=B1:B10" End With 例えばB1~B3, B6~B10などのような不連続な範囲をリスト化 する方法はありませんでしょうか? 宜しくご教示の程お願い致します。
- ベストアンサー
- Visual Basic
- EXEL VBA で入力規則を変更するには
現在去年のデータの入力作業をしていますが年月日を入力する際、 "2010/4/1"とか"2010/4/28"と打たなければならず、セルの書式設定とか 入力規則でもできません。 A3のセルにきたら"2010/"が既にはいっており、続けて"4/1"とか"4/28"とか日付だけを入力すればよいようにVBAでやれば出来ると思い、ここ2日ほどサイトとか見て勉強しましたが下記のところまが精一杯で動きません。 Private Sub Workbook_Activate() With Selection.Validation .Delete Range("A3", "A300").Select Add Type:=xlValidateDate Formula1 = "2010/mm/dd" End With End Sub どなたかご教授お願いします。
- ベストアンサー
- その他MS Office製品
- エクセルVBAで入力規則を設定するには?
22歳男性です。 エクセルVBAについて質問があります。 シート上にあるボタンをクリックすると、特定のセルに入力規則を追加するというプログラムを作っています。 以下のコードのように記述しているのですが、まったくうまくいきません。 何が悪いのかご指摘いただけたらと思います。 ■コード■ Private Sub CommandButton1_Click() With Range(\"b2\").Validation .Add Type:=xlValidateWholeNumber, Operator:=xlBetween, Formula1:=10, Formula2:=20 End With End Sub
- 締切済み
- その他(プログラミング・開発)
- VBAでセルに入力規則(選択し)を設定する
VBAでセルに入力規則(選択し)を設定する EXCELのシート上のボタンに下のようなコードを書いて実行すると 「アプリケーション定義又はオブジェクト定義のエラー」が矢印のところで出てしまいます。 独学でチャレンジしていますが、原因がわかりません。どなたか原因と対策を教えて下さい。 //ボタンの中のコード //セル、$E$147:$E$158 にセットした「選択し」をセル E7 へセットする。 Dim CRng As Range Set CRng = Range("E7") With CRng.Validation .Delete .Add Type:=xlValidateList, Formula1:="=$E$147:$E$158" ←ここでエラー End With
- ベストアンサー
- Visual Basic
- 【Excel VBA】チェンジイベント
Excel2003を使用しています。 マクロの記録を元に、チェンジイベントを下記のように作成しました。 下記は、B列の11行目以降のセルのデータが変化したら、その行のF列に入力規則を設定するように作成したつもりです。 テストもしてみましたが、きちんと動作しました。 さらに、B列の11行目以降のセルのデータがクリアされたら、その行のF列に設定した入力規則もクリアしたく If Target.Columns(2).ClearContents And Target.Row >= 11 Then Cells(Target.Row, 6).Validation.Delete End If 分からないながらにも、↑このように追加して試してみたのですが、何も動作しなくなりました(^_^;) こういう場合は、どのようにコードを書いたらいいのでしょうか? よろしくお願いします。 -------------------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 And Target.Row >= 11 Then With Cells(Target.Row, 6).Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=$F$3:$F$7" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .IMEMode = xlIMEModeNoControl .ShowInput = True .ShowError = False End With End If End Sub ------------------------------------------------
- ベストアンサー
- オフィス系ソフト
- VBAの入力規則について質問です。
VBAの入力規則について質問です。 Excelで、D列は全角50文字(半角100文字)以内の入力を可能とし、 それ以上の入力の場合、エラーを表示させたいと思います。 全角と半角をバイト数で判別し、以下のようなコードを考えましたが、 全角の場合しかうまくできません。 Private Sub Worksheet_Change(ByVal Target As Range) Dim ByteCount As Long ByteCount = LenB(StrConv(Target, vbFromUnicode)) If Target.Column = 4 Then Select Case ByteCount Case Is > 100 With Target.Validation .Add _ Type:=xlValidateTextLength, _ AlertStyle:=xlValidAlertStop, _ Operator:=xlBetween, Formula1:=1, Formula2:=100 .ErrorTitle = "入力エラー" .ErrorMessage = "全角50文字(半角100文字)以内で入力してください。" .IgnoreBlank = False End With Case 1 To 100 With Target.Validation .Add _ Type:=xlValidateTextLength, _ AlertStyle:=xlValidAlertStop, _ Operator:=xlBetween, Formula1:=1, Formula2:=50 .ErrorTitle = "入力エラー" .ErrorMessage = "全角50文字(半角100文字)以内で入力してください。" .IgnoreBlank = False End With End Select End If End Sub アドバイスをよろしくお願いいたします。
- ベストアンサー
- その他MS Office製品
お礼
keithin様。動いてこれで正しいことが確認できました!ただのヘルプの読み不足でしたね。。ご回答ありがとうございました。