• 締切済み

セルの書式をクリアしたくない

お世話になっております。 よろしくお願い致します。 次のようなマクロであるエリアを削除しています。 wrkShtW.Range(Range(N_TagDisp).Row & ":" & Range(N_TagDisp).Row).Clear ボタンを押すと、上記のマクロを実行し、そのエリアに新しいデータが書き込まれます。 ここで、このClearを実行している理由はは、前回は10行目までデータが書かれたが、今回は3行目までしか書かれなかっという時のために、データがFullに入ってくるだろうエリアをクリアしてから、データの書き込みをしています。 今、一番左の列には日付が入ってくるので、実際のデータは 「2015/11/6」 なのですが 「11/6」 のように表示するように形式を設定しています。 しかし、上記マクロを実行するとデータは削除してくれますが、日付の書式も一緒に削除されてしまいます。 データ以外は削除したくない。しかし、書式は残したい。(名前も踏襲したい。) このような時には、何を使用すればよいのでしょうか? アドバイスをよろしくお願い致します。

みんなの回答

  • angel2015
  • ベストアンサー率21% (126/590)
回答No.1

Clearを ClearContents に変えてみてください

olive23804
質問者

お礼

ありがとうございます。 期待通りの結果になりました。 またよろしくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excel VBA データのクリアについて

    Excelファイルで、C列に、2行目から下に全て、条件付き書式を入れています。 そしてA2:E20000セルまでデータが入っており、マクロでこのデータの2行目以下をクリアしたい(1行目はタイトル行)と思います。このとき endR=cells(rows.count,1).end(xlup).row Range(cells(2,1),cells(endR,1)).entireRow.clearContents このコードでは、データのクリア自体は出来るのですが、Excelがデータの終端を2万行目と認識したままになってしまい、ファイルサイズが重くなってしまいます。といってclearContentsの部分をDeleteにしてしまうと、C列に入れた条件付き書式が全て消えてしまいます。データの終端を2行目と認識させ、かつ条件付き書式も削除されないようにする確実な方法はないでしょうか?なおデータは2万行ぴったりとは限りませんし、何度も読み込んだりクリアしたりします。

  • Wordで「書式のクリア」しても「標準」にならない

    MS Word 2003 SP3 を使用しています。 同僚から渡されたdocファイルを編集していたのですが、 妙に行間が広いので修正しようと思い、 行を選択して書式設定ツールバーの「書式のクリア」を実行しました。 ところが、書式が「標準 + 段落前 : 0.5 行」となり、行間は広いままでした。 そこで、メニューバーから[書式]-[段落]を選んでダイアログを表示し、 段落前を「0.5行」⇒「0 行」に修正したら、とりあえず行間は狭くなりました。 しかし、書式設定ツールバーの表示は「標準 + 段落前 : 0.5 行」のまま 変わりません。スッキリ「標準」にしたいのですが・・・ さらに、その後で「書式のクリア」を実行すると再び行間が広くなってしまいます。 「書式のクリア」を実行したら、書式が素直に「標準」になるようにするには どうしたらよいでしょうか?

  • 書式のクリア?

    Excel97です データ末尾まで飛ぶのにCtrl+Endを使っていますが、 データを一部削除したあとで Ctrl+Endを使うと 削除前の末尾セルに飛んでしまいます。 データ削除(行ごと削除しています)後 編集→クリア→すべて を行ってもだめでした。 正しい操作方法をご教示ください

  • 行をクリアした後、下の行がクリア行を埋めるには

    シート名wsFormと言う入力フォームで入力した値を保存するマクロボタンを押すと、シート名wsDataと言うシートの先頭行を抜かした2行目(A列からF列まで)から順番に3行目、4行目と順に保存されるようにしています。 誤って保存した場合、wsDataを開いている状態で下記マクロを実行すると、選択行がクリアされます。 その後で、空白行の下にあるデータの入った行をすべて1行上にあげて空白行をうめるマクロはどうすれば可能でしょうか。 先頭行にはsubtotal関数が入っているので行を削除するマクロだとsubutotalの選択範囲が削除した分減ってしまうため、行削除は避けたいと考えています。 wsDataは1年毎にデータの入った行全体をクリアして使う予定です。1年間でデータが入る行数は1000行程度ですが、念のため2000行として数字の入る各列の先頭行には、例として=Subtotal(109,B2:B2000)が入っています。 よろしくお願いいたします。 Sub 行クリア() Dim rc As Integer rc = MsgBox("【重要】選択行データを本当に削除しますか?", vbYesNo + vbQuestion, "選択行削除") If rc = vbYes Then MsgBox "削除を実行します。" ActiveSheet.Unprotect Rows(ActiveCell.Row).Clear ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowFiltering:=True Else MsgBox "処理は中断されました" End If End Sub

  • ある範囲の書式を飛び飛びに貼り付けたい

    Excel2007でマクロ作成してる初心者です。  ある範囲の書式を移動しながら、書式を貼り付けていく  マクロの書き方がわかりません。どなたかご教示おねがいします。 Sub 書式の貼り付け() '"F14:AG28"の範囲に書式を設定 Range("F14:AG28").Select Selection.NumberFormatLocal = "h:mm;@" '"その範囲を24行だけ移動し、全く同じ書式を貼り付ける Selection.Copy Range("F38").Select ’24行目のセル Selection.PasteSpecial Paste:=xlPasteFormats '"その範囲をまた24行だけ移動し、全く同じ書式を貼り付ける   Range("F62").Select ’48行目のセル Selection.PasteSpecial Paste:=xlPasteFormats  これをシートの数だけ繰り返す。  ’・・・  ’・・・ Application.CutCopyMode = False Range("A3").Select End Sub

  • エクセルマクロの件(2)

    お世話になります。 先日このサイトで教えていただき(No.3433483)、下記のようなマクロができました。 その節はありがとうございました。 マクロ実行したところ、1回目は問題なく動作し、マクロ実行によって作成されたデータを削除し、改めて実行すれば問題ありませんでした。 ただ、2回目以降(一覧データを削除せずそのまま実行)マクロを実行すると、毎回180行以降のデータが重複するようになりました。 3回実行すると、180行より前のデータは1行のみの表示ですが、181行目以降のものは3行同じデータが記載されるということです。 全てのデータが重複するのであれば分からなくはないのですが、一部分のみの重複なので意味が分からなくなってしまいました。 (マクロの中にそう処理するよう記載があるのだと思いますが素人のため分かりません;) 理由の分かる方がいらっしゃいましたらご指摘いただければと思いますのでよろしくお願いします。 Dim ptr As Integer Sheets("シートA").Activate ptr = Range("A65536").End(xlUp).Row Range("A4:P" & ptr).Copy Destination:=Sheets("一覧").Range("A4") Sheets("シートB").Activate ptr = Sheets("シートB").Range("A65536").End(xlUp).Row Range("A4:P" & ptr).Copy Destination:=Sheets("一覧").Range("A65536").End(xlUp).Offset(1, 0) Sheets("一覧").Activate Range(Cells(4, "A"), Cells(Range("A65536").End(xlUp).Row, "P")).Sort _ Key1:=Range("D4"), Order1:=xlAscending, Key2:=Range("E4"), _ Order2:=xlAscending, Key3:=Range("F4"), Order3:=xlAscending, _ Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _ Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:=xlSortNormal, _ DataOption2:=xlSortNormal, DataOption3:=xlSortNormal ' End Sub

  • EXCELVBAセル選択方法教えてください。

    Sub マクロ() ' Dim i, j, k As Long Dim ws As Worksheet Set ws = Worksheets("Sheet1") k = ws.Cells(Rows.Count, 1).End(xlUp).Row If k > 1 Then ws.Rows(2 & ":" & k).ClearContents  上記はマクロの構文です。 最終行は変数でデータのある最終行の行番号を得て、 2行目からデータのある最終行の行 の行全体をクリアするものですが、 行全体でなく A~C列のデータをクリアする構文教えてください。

  • マクロで書式設定を変更したいのですが・・・

    マクロで日付の書式を変更したいと思っています。 例) 2014年7月14日 という日付が入っているセルがあるとします。 これを2014/7/14 と変更したいのです。 これはあるファイルをダウンロードした時に日付がこの書式で設定されていまして 仮にA1にこの日付があった場合に Range("A1").NumberFormatLocal = ("yyyy/m/d") と、そのファイル上でマクロを動かせば、普通に変更するのですが・・・ 別のブックでマクロを動かして、そのファイルを開いて Range("A1").NumberFormatLocal = ("yyyy/m/d") と、同じマクロを動かすと 書式が変更されずに、エラーになるのです。 日付が2014年7月14日 の場合 書式設定が標準なら「41834」になると思うのですが この場合、標準にしても 2014年7月14日 になってしまうのです。 これは、何か原因があるのでしょうか? または、別のブックからはこのようなマクロはうごかせないのでしょうか? 説明が稚拙で申し訳ないですが、ご存知の方ご教示よろしくお願いします。

  • セルの書式が標準なのに文字列にできるのはなぜ?

    会社のシステムで吐き出したデータですが セルの書式設定が標準なのに文字列となっています。 マクロを利用して、あるセルの値を別セルへ転記すると、 数字は数値に変換され、先頭の0は消え、桁数が多いと指数表示になってしまいます。 会社のシステムが吐き出したエクセルはセルの書式が標準なのに 中の数字が文字列でいられるのが疑問です。 会社のシステムの吐き出したデータは Microsoft Excel 2.1ワークシートで 全てのセルの書式設定は「標準」です。 で例えば 12345678901234 は 12345678901234 と表示されていて 「数値が文字列として保存されています」 となっています。(先頭に ' は入っていません) 0101という値のセルでも 表示は0101ですが 「数値が文字列として保存されています」 となっています。(先頭に ' は入っていません) それらのセルの値をマクロとかで別セルに転記すると 転記先では1.23457E+13 と表示されてしまいます。 (0101は101になります。) まっさらなエクセルに自分で手入力すると ・セルの書式設定が標準だと 12345678901234 ↓ 1.23457E+13になります。 ・セルの書式設定が数値だと 12345678901234 ↓ 12345678901234 ・セルの書式設定が文字列だと 12345678901234 ↓ 12345678901234 (ただし 数値が文字列と保存されています と注釈有) なのに会社のシステムの吐き出しデータは セルの書式設定が標準なのにもかかわらず 12345678901234 ↓ 12345678901234 (ただし 数値が文字列と保存されています と注釈有) となっています。 手入力で書式設定が標準の状態でセルに12345678901234 と表示させるには先頭に ' をつける方法しか知りませんが ' が無いのに表示されています。 でもこの該当セルをマクロで別セル(書式設定:標準)に転記すると 1.23457E+13 となります。 またシステムが吐き出したエクセルの同じシート内に 以下のマクロで転記すると ↓ Sub 転記() 行 = 2 Do If Cells(行, 6).Value = "" Then Exit Do If Cells(行, 6).Value >= 10 Then Cells(行, 7).Value = Range("A2") Else Cells(行, 7).Value = Range("A3") End If 行 = 行 + 1 Loop End Sub ↓ このマクロだと A列~F列が書式設定が標準なのに文字列として表示されているのですが 転記先のG列が書式設定が標準であっても 12345678901234 (数値が文字列と保存されています と注釈有) と同じ状態のまま転記できます。 新しいBOOKのシート2に 会社の吐き出しデータをシートコピーした後、 (セルの書式設定:標準だが文字列で表示されている) そのBOOKに登録されているマクロで シート2のセルからシート1のセル(書式設定:標準)に転記すると 数字は数値に変換され、先頭の0は消え、桁数が多いと指数表示 となってしまいます。 ちょっと混乱しています。 理屈等教えていただければと思います。お願いします。

  • 日付を入れるとセルがおかしくなります。

    http://okwave.jp/qa/q7495702.html 以前の質問で、空白になった行を詰めていくような マクロをおしえていただき、mt2008さんのコードを利用しているのですが、新たにB列に、C列に何かが入力されたら日付を挿入する以下のマクロをいれました。 Private Sub worksheet_change(ByVal Target As Excel.Range) Dim h As Range On Error Resume Next For Each h In Application.Intersect(Target, Range("C:C")) If h <> "" Then Cells(h.Row, "B") = Date End If Next End Sub このマクロはちゃんと動いたのですが、実はここで困ったことが発生しました。空白行を詰めた時、 日付が詰めた日付に更新されてしまうのです。これは、B列の文字列が変わるのでしょうがない現象なのですが、詰める時に、どうしても日付だけはそのままにして上に詰めたいのです。 そんなことは可能でしょうか・・

専門家に質問してみよう