• 締切済み

VBA リストを作成後、そのセルに文字列を挿入したい

With Worksheets("シート名").Range("A1").Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="該当なし" End With というように、A1のセルに対して、「該当なし」というプルダウン(入力規則)を設定し、そのあと文字列(文言)を挿入したいです。 その方法を教えてください。

  • fm0606
  • お礼率13% (100/761)

みんなの回答

  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.1

こんにちは。 意味が良く解りませんが、リストに「該当なし」以外の文字列を追加したい、という意味でしょうか? ならば、以下のようにしてください。 まず、表示したい文字列データを用意してください。 以下はE列の「E1~E5」までにある文字列を表示する例です。 E1 → 該当なし E2 → AAAAA E3 → BBBBB E4 → CCCCC E5 → DDDDD With Worksheets("シート名").Range("A1").Validation   .Delete   .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=$E$1:$E$5" End With

fm0606
質問者

お礼

ありがとうございます。 参考になりました。

関連するQ&A

  • すみません、質問の内容を変更します。【VBA リスト操作】

    With Worksheets("シート名").Range("A1").Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="該当なし" End With というように、VBAでA1のセルに対して、「該当なし」というプルダウン(入力規則)を設定し、「該当なし」がすでに選択された状態、若しくはタイトル的な感じで「該当なし」とセルに表示させる方法をお願いします。 前の質問を削除したいのですができません。 ご了承ください。 よろしくお願いいたします。

  • 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 だと、何も設定されません。

  • エクセルVBA セルの移動について

    今困っているのですが、A1~A8のセルに”あ”もしくは”い”が入ったときにB1のセルにとあるセルのリストを入力規制かけて、表示させるというVBAを作成中です。 と・・・そこまではできたのですが、希望としては、A1に文字が入った場合はセルを自動的にB1に移動させたいのです。 それと同じようにA2のときはB2、A3のときはB3にセルを持って行きたいのですが、どうしたらいいでしょうか。 どなたかわかる方、よろしくお願いいたします。 For i = 1 To 8 Select Case Cells(i, 1) Case "あ" Cells(i, 2).Activate Application.CutCopyMode = False With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=$F$1:$F$10" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .IMEMode = xlIMEModeNoControl .ShowInput = True .ShowError = True End With Case "い" Selection.Cells(i, 2).Activate CutCopyMode = False With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=$G$1:$G$10" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .IMEMode = xlIMEModeNoControl .ShowInput = True .ShowError = True End With Enxt End Sub

  • エクセル2010で入力規則をVBAで記述

    エクセル2010で入力規則をVBAで記述したいです。 まずは、マクロの自動記録すると以下のコードが保存できました。 Selectionをrange("A1")に変更したのですが、エラーが出てきました。 With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="東京,ニューヨーク" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .IMEMode = xlIMEModeNoControl .ShowInput = True .ShowError = True End With 調べると Operator:=xlBetweenではなくて、Operator:=xlEqualだと思うのですが、 それでもだめでした。

  • Excelマクロで、入力規則のリストに既に定義された名前を入れたい

    入力規則のリストに、既に定義された名前を可変的に入れたいと考えています。 具体的には、以下のFormula1の中身を変数等を利用して、参照先を変化させたいのです。 .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,Operator:=xlBetween, Formula1:="=$A$1:$A$10" 既に範囲に対して名前が定義されているので、それを利用する(というか利用しなければならない)制約があるのですが、単に文字列変数を入れるだけでは参照してくれないようです。 何かアイディアがあれば教えてください。

  • エクセル入力規則のマクロについての質問です。

    エクセル入力規則のマクロについての質問です。  excel2003 os=WindowsXP の環境です。  E列の10行目から57行目、I列の10行目から60行目に1から9999までの数字のみ入力可能の条件を設定しようと下記のプログラムを作ったのですが、全く動いてくれません。ご教授のほどよろしくお願いします。  Private Sub Worksheet_Activate() Range("e10:e48").Select With Selection.Validation .Delete .Add Type:=xlValidateWholeNumber, AlertStyle:=xlValidAlertStop, _ Operator:=xlBetween, Formula1:="0", Formula2:="9999" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "入力制限があります" .InputMessage = "" .ErrorMessage = "登録は9999までしか登録できません。9999以下のの数字を入力下さい。" .IMEMode = xlIMEModeAlpha .ShowInput = True .ShowError = True End With Range("i10:i60").Select With Selection.Validation .Delete .Add Type:=xlValidateWholeNumber, AlertStyle:=xlValidAlertStop, _ Operator:=xlBetween, Formula1:="0", Formula2:="9999" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "入力制限があります。" .InputMessage = "" .ErrorMessage = "登録は9999までしか登録できません。9999以下のの数字を入力下さい。" .IMEMode = xlIMEModeAlpha .ShowInput = True .ShowError = True End With 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 アドバイスをよろしくお願いいたします。

  • マクロで入力規則を設定すると日付が文字列になる不具合が・・・・

    エクセル2000です。 以下はG10セルに手作業で「入力規則」を設定するところをマクロの記録で残したものです。 リストは、2008/11/1,2008/11/5,2008/11/30 と yyyy/m/d 形式で手入力しましたが、なぜか記録では 11/1/2008,11/5/2008,11/30/2008 と m/d/yyyy 形式になっています。 手作業で設定した入力規則は正しく作動し、セルに表示されるドロップダウンリストも手入力どおり yyyy/m/d になっています。 ところが、記録したこのマクロをそのまま作動させると、今度はリストは m/d/yyyy になり、しかも日付ではなくなんと文字列になってしまうのです。 マクロを手直しし、 xlBetween, Formula1:="11/1/2008,11/5/2008,11/30/2008"を xlBetween, Formula1:="2008/11/1,2008/11/5,2008/11/30"にしても同じ結果( m/d/yyyy かつ文字列)となります。 なにがいけないのでしょうか??? Sub Macro4() ' ' Macro4 Macro ' マクロ記録日 : 2008/10/31 ユーザー名 : MerlionXX Range("G10").Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="11/1/2008,11/5/2008,11/30/2008" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "指定日" .InputMessage = "" .ErrorMessage = "リストの中から選んでね。" .IMEMode = xlIMEModeDisable .ShowInput = True .ShowError = True End With End Sub

  • 入力規則 日付をリストのプルダウンで選択したい

    エクセルの入力規則を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でシートを保護してもマクロが使えるようにしたい

    Excelのマクロについて、また質問させていただきます。 シートを保護してもマクロが使えるようにしたいのです。  Selection.Validation.Add Type:= _  xlValidateList, AlertStyle:= _  xlvalidalerstop, Operator:= _  xlBetween, Formula1:="=$A$1" というようなマクロを作ったとします。 このままなら使えるのですが シートを保護すると アプリケーション定義またはオブジェクト定義のエラーです。 と表示されるようになります。 前回質問させていただいたときにアドバイスいただいた  Validation.Delete を付けても 状況は変わりません。  Unprotect password や  Protect userinterfaceonly:=True を付けても、やはり無理なのです。 マクロについては まだまだ初心者の域を脱していません。 今回もまた明快なお答えをいただけること 期待しております。

専門家に質問してみよう