• ベストアンサー

エクセルVBA ClearContentsで入力規則が消える?

さきほどこのような質問を偶然見つけました。 http://odn.okwave.jp/qa2912139.html Range("A2:G50").Select  Selection.ClearContents で、セルに設定してあった入力規則が消えるようなのです。 しかし、わたしのエクセル2000では、入力規則も条件付書式も消えません。 ひょっとして、2007ではそのように変わったのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

Excel2002 SP3 では入力規則も条件付書式も消えませでした。 情報まで。

merlionXX
質問者

お礼

KenKen_SPさま、ありがとうございます。 入力規則がClearContentsで消えるとなるとこれまで作ったのがおかしくなるのであわてて質問しました。 他のバージョンをお持ちの方も試してみていただけると幸いです。 2003では今夜試します。

その他の回答 (1)

回答No.2

2007では大丈夫のようです。 その方の勘違いでは?

merlionXX
質問者

お礼

ありがとうございます。 2007でも大丈夫でしたか。 わたしも昨夜2003で試して大丈夫でしたので、きっとこれは何かの間違いなのでしょうね。 エクセルのバージョンが変わるたび、そんなことを心配しなければいけないのかと不安になっていたのですがやっと安心できました。

関連するQ&A

  • ExcelのVBAについて教えて下さい

    今、日報の作成をしているのですが 1行目に「1」を入れると、C列の3行目~15行目までがねずみ色になって 休みを意味するように条件付書式を設定しています。 しかし、1を入力というのも不細工だと思い、そのセルの上に コマンドボタンをおいて、 それを押すと下のセルに1が入力されるマクロを作ろうと思ったのですが、 1を入力するまでは良いんですが、 今度同じボタンでもう一度押すと消える、 さらにもう一度押すと1が入力される、 なんていうマクロは組めますか? マクロの記録で、下記のような式は得たのですが つなぎ方等々、分からない事ばかりで出来ません。 どなたか教えて下さい。お願いします。 * * * * * * * * * * * * * * * * * * * * * * * * * * * * Private Sub CommandButton1_Click() Range("D1").Select ActiveCell.FormulaR1C1 = "1" Range("D1").Select Selection.ClearContents End Sub

  • マクロ 入力規則は残し文字のみ削除

    A2:G50まで文字が入力されており、そのうちD2:E50まで入力規則も 設定しています。 マクロを実行した時、A2:G50の文字のみ削除したいのですが、  Range("A2:G50").Select  Selection.ClearContents とすると入力規則まで消えてしまいます。 入力規則だけ残すにはどの様にすれば良いのでしょうか?

  • 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などのような不連続な範囲をリスト化 する方法はありませんでしょうか? 宜しくご教示の程お願い致します。

  • エクセルVBAで教えて下さい。

    A1のセルに [ 1- 5] 4.05398e-01 3.63385e-01 -2.22992e-01 9.89158e-03 -6.43695e-02 A2のセルに [ 6-10] -5.12224e-04 4.07480e-04 -2.73746e-04 -1.77853e-02 -2.13805e-03 A3のセルに [11-15] -6.88489e-03 -2.06765e-02 -9.44633e-03 6.97059e-03 -1.28400e-02 と、このような感じでA7セルまで同じ感じでスペースで空いた数値が入力されています。 A8のセルのみ [36-37] -6.39210e-03 -1.55806e-03 と入力されております。 まず行いたいのはスペースが空いてる部分で、それぞれの数値を各セルに分けたいです。 A1のセルに入力されている [ 1- 5] 4.05398e-01 3.63385e-01 -2.22992e-01 9.89158e-03 -6.43695e-02 ならば A1に[1-5] B1セルに4.05398e-01 C1セルに3.63385e-01 のように これをA1からA8のセルで行ったあと指定のセルを30行目に貼り付けます。 E1→A29 C2→B29 D2→C29 E2→D29 E3→E29 F3→F29 B4→G29 D5→H29 E5→I29 F5→J29 貼り付けのデータは増えていきます。つまり、30行目にデータが入ってる場合は そのデータが1行下の行に下がり、新たなデータが30行目に追加されます。 このようにして、データが最大で58行目まで追加される可能性があります。 最小であれば30行目、31行目の2つしかない場合あります。 この時、0の近似値を各列のセルから探し、当てはまるセルを赤く塗り潰すというのが 今回行いたいことです。 A列ならA30~A58までの中で0の近似値を探し、当てはまるセルを赤く塗り潰す。 ただ空白の場合は無視してもらいたいです。0の近似値だと空白が選択されてしまうので。 近似値探しの前までならマクロがありますのでご参照下さい。 Sub Macro4() ' ' Macro4 Macro ' ' Range("A1:A8").Select Selection.TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _ FieldInfo:=Array(Array(0, 1), Array(7, 1), Array(21, 1), Array(34, 1), Array(47, 1), _ Array(60, 1)), TrailingMinusNumbers:=True Range("A1").Select Range("E1").Select Selection.Copy Range("A29").Select ActiveSheet.Paste Range("C2:E2").Select Application.CutCopyMode = False Selection.Copy Range("B29").Select ActiveSheet.Paste Range("E3:F3").Select Application.CutCopyMode = False Selection.Copy Range("E29").Select ActiveSheet.Paste Range("B4").Select Application.CutCopyMode = False Selection.Copy Range("G29").Select ActiveSheet.Paste Range("D5:F5").Select Application.CutCopyMode = False Selection.Copy Range("H29").Select ActiveSheet.Paste Range("J7").Select Application.CutCopyMode = False Range("A29:K29").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Range("A29:K29").Select With Selection.Interior .Pattern = xlNone .TintAndShade = 0 .PatternTintAndShade = 0 End With Range("A29").Select Range("A1:F8").Select Selection.ClearContents Range("A1").Select Range("K29").Select With Selection.Interior .Pattern = xlNone .TintAndShade = 0 .PatternTintAndShade = 0 End With Selection.NumberFormatLocal = "G/標準" 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 どなたかご教授お願いします。

  • EXCELのVBAについて

    マクロのボタンで内容を削除する様に設定した所、 Dim re As Integer Sheets("投入シート").Select re = MsgBox("入力データをクリアします。" & vbCrLf & vbCrLf & "よろしいですか?", vbOKCancel, "クリア確認") If re <> vbCancel Then Sheets("投入シート").Select ActiveSheet.Unprotect Range("a1:c30").Select Selection.Copy Application.CutCopyMode = False Selection.Copy Sheets("work").Select Range("A1").Select ActiveSheet.Paste Sheets("投入シート").Select ActiveSheet.Unprotect Range("c4:c30").Select Selection.ClearContents Range("f31").Select Selection.Copy Range("c9").Select ActiveSheet.Paste Range("f33").Select Selection.Copy Range("c11").Select ActiveSheet.Paste Range("f32").Select Application.CutCopyMode = False Selection.Copy Range("c14").Select ActiveSheet.Paste Range("c4").Select Application.CutCopyMode = False 'ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End If Sheets("投入シート").Select Range("c4").Select End Sub この様に入力したのですがセルのC11の計算式だけセル番号が消えてしまいます。 どうしてでしょうか?ご指導をお願いします。

  • エクセルの入力規則教えてください!

    エクセルの入力規則について、どなたか教えてください。 エクセルで出勤簿を作っていまして、 出社や退社のセルの書式設定を、 ユーザー定義で(24時間以上を連続で表示する)"[h]:mm"としていますが、 それだけだと、そのセルには、"ABC"とか、任意の文字でも入力できてしまいます。 そこで、そのセルに入力規則を設定して、 "[h]:mm"以外の書式のデータが入力された場合、 エラーではじくような、仕組みにしたいと思っています。 そういうことって、そもそもできるのでしょうか? また、他の方法でうまいやり方ってありますかね? もし、ご存知の方がいましたら、教えてください!

  • エクセルVBAで

    いつもお世話になります。 Range("a1:C5,E5:H10").Select Selection.ClearContents この選択範囲をそれぞれ5列ずつづらしていきたいのですがfor文を使って出来るでしょうか? セルが1つならcells(1,5n)とすればいいのですが,範囲が連続で複数の場合(rangeを使った場合)はどうすればいいのでしょうか。

  • 入力規則も取り込みたい

    お世話になります。 オートフィルタで抽出したデータに、セルJ1に設定した入力規則をコピーしたいと思いましたが、 セルJ1の値のみしかコピーされません。 '対象日でフィルタをかける d = Range("J4").Value Range("A6").Select Selection.AutoFilter field:=3, Criteria1:=d '表示されたデータだけに承認欄を貼り付ける Dim t As Integer, myrng As Range, rng As Range t = Cells(Rows.Count, 1).End(xlUp).Row Set myrng = Range(Cells(7, 13), Cells(t, 13)).SpecialCells(xlCellTypeVisible) For Each rng In myrng rng = Range("J1") Next この場合、どのようにして、設定された入力規則も貼り付けることができるのでしょうか。 入力規則はリスト形式で、承認、否認を選択させています。 よろしくお願いします。

  • エクセル2000の入力規則で困っています。

    エクセル2000のセルの入力規則で、条件の設定を 入力値の種類が「リスト」、 元の値が、カンマ区切りで  2,3,4,5  としております。 さらに、セルには書式設定で、表示形式が「ユーザー定義」で、0"年" にしてあります。 これで、セルを選択すると、ドロップダウンから 2~5 のいずれかしか選択できなくなり、セルには○年と正しく表示されますが、手入力で2~5の整数を入れようとすると「リストから選択してください」とはじかれてしまいます。 しかし、セルの表示形式が「ユーザー定義」でなければ、手入力でも2~5の整数値を問題なく入れることができます。 セルの書式は、あくまで見かけだけのことで、セルの中は同じ数値データのはずなのにどうしてこうなるのでしょうか? セルに○年を表示させながら、2~5の整数値の手入力を可能にする方法はないでしょうか?

専門家に質問してみよう