• 締切済み

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

エクセルの入力規則を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 と表示させるにはどうすればいいでしょう?

みんなの回答

noname#203218
noname#203218
回答No.2

>.Add Type:=xlValidateList, Formula1:="2014/1/1,2014/1/2" 日付の先頭にカンマを挿入するだけで解決すると思いますのでお試し下さい。 .Add Type:=xlValidateList, Formula1:=",2014/1/1,2014/1/2"

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

下記などご参考に。 http://okwave.jp/qa/q4443274.html

関連するQ&A

  • エクセルでchangeプロジェクトを複数設定する場

    すみません、マクロの基本的な部分を分かっておらず、Google検索などで知識を得た程度のど素人なのですが。 A1にあ・い A2にう・え A3にお・か をプルダウンで選べるように設定していて 【い】を選んだ場合は選択肢を【う】と【お】のみにする 【あ】を選んだら選択肢を戻す 【え】を選んだ場合は選択肢を【あ】と【お】のみにする 【う】を選んだら選択肢を戻す 【か】を選んだ場合は選択肢を【あ】と【う】のみにする 【う】を選んだら選択肢を戻す という挙動を設定したく、複数のchangeプロジェクトを書いてみたのですが、どうしても1箇所のみうまくいきません。(下のマクロでは【え】を選んだ場合、A3の選択肢が消えない。) 書き方・考え方自体が間違っているのかもしれませんが、教えていただけませんでしょうか。 Private Sub Worksheet_Change(ByVal Target As Range) 処理1 Target 処理2 Target 処理3 Target End Sub Private Sub 処理1(ByVal Target As Range) If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub Else If Range("A1").Value = "い" Then With Range("A2").Validation .Delete .Add _ Type:=xlValidateList, _ Formula1:="う" End With Range("A2") = "う" With Range("A3").Validation .Delete .Add _ Type:=xlValidateList, _ Formula1:="お" End With Range("A3") = "お" MsgBox "入場区分を【い】に設定した場合は、分配フラグは【え】、お客様情報取得フラグは【お】に固定となります。" ElseIf Range("A1").Value = "あ" Then With Range("A3").Validation .Delete .Add _ Type:=xlValidateList, _ Formula1:="お,か" End With With Range("A2").Validation .Delete .Add _ Type:=xlValidateList, _ Formula1:="=INDIRECT(A1)" End With End If End If End Sub Private Sub 処理2(ByVal Target As Range) If Intersect(Target, Range("A2")) Is Nothing Then Exit Sub Else If Range("A2").Value = "え" Then With Range("A3").Validation .Delete .Add _ Type:=xlValidateList, _ Formula1:="お" End With Range("A3") = "お" With Range("A1").Validation .Delete .Add _ Type:=xlValidateList, _ Formula1:="あ" End With Range("A1") = "あ" MsgBox "分配フラグを【え】に設定した場合は、入場認証区分は【あ】、お客様情報取得フラグは【お】に固定となります。" ElseIf Range("A2").Value = "う" Then With Range("A3").Validation .Delete .Add _ Type:=xlValidateList, _ Formula1:="お,か" End With With Range("A1").Validation .Delete .Add _ Type:=xlValidateList, _ Formula1:="=INDIRECT(A3)" End With End If End If End Sub Private Sub 処理3(ByVal Target As Range) Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("A3")) Is Nothing Then Exit Sub Else If Range("A3").Value = "か" Then With Range("A1").Validation .Delete .Add _ Type:=xlValidateList, _ Formula1:="あ" End With Range("A1") = "あ" With Range("A2").Validation .Delete .Add _ Type:=xlValidateList, _ Formula1:="う" End With Range("A2") = "う" MsgBox "お客さま情報をかに設定した場合は、入場区分は【あ】、分配フラグは【う】に固定となります。" ElseIf Range("A3").Value = "お" Then With Range("A1").Validation .Delete .Add _ Type:=xlValidateList, _ Formula1:="あ,い" End With With Range("A2").Validation .Delete .Add _ Type:=xlValidateList, _ Formula1:="=INDIRECT(A1)" End With End If End If End Sub

  • 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 どなたかご教授お願いします。

  • 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 リストを作成後、そのセルに文字列を挿入したい

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

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

    エクセル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

  • 【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を使用すればまあ出来ますが、ちょっと素早くできないと思うので、ご勘弁ください。 ではでは。ご回答ありがとうございます。

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

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

  • 入力規則、ValidateListの使い方

    Windows Vista/Excel2007/VB6.5 では動作しますが、 Windows XP/Excel2000/VB6.0 ではエラーとなります。 どこが悪いかご教示下さい。 <エラー内容> 実行時エラー'1004' アプリケーション定義又はオブジェクト定義のエラーです。 <コード(ボタンのサブに書いています。)> Dim FM1 As String FM1 = "=$A$10:$A$20" ' 選択肢の範囲 ' i は行数、Fは列名です。 For i = 8 To 18 Posi = "F" + CStr(i) With Range(Posi).Validation .Delete .Add Type:=xlValidateList, Formula1:=FM1 End With Next

  • 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 VBA 入力規則のリスト化

    Excel VBAにて入力規則でリスト化しようと思っています。 通常セルを範囲指定によってリスト化する場合、 以下のようなコードになると思うのですが、 (セルA1にセルB1~B10の内容がリスト化される) Range("A1").Select With Selection.Validation .Add Type:=xlValidateList, Formula1:="=B1:B10" End With 例えばB1~B3, B6~B10などのような不連続な範囲をリスト化 する方法はありませんでしょうか? 宜しくご教示の程お願い致します。

専門家に質問してみよう