ありがとうございました。 Sub test22()   Emptyを代入した方がいいのかも知れません。 end-uさん、ご指摘ありがとうございます。 If Range("A1") = “”  For i = 1 To 6 Range("A1:A6").Value = "" Set ws1 = Worksheets("Sheet1") Range(”A1:A6”)にデータが入っていますが、そのうちA3、A4、A5セルは Cells(Rows.Count, 1).End(xlUp).ClearContents End Sub '---------------------------------------------- End Sub, こんにちは。 (12/13追記 タイトルや表記に過剰な表現があり、セル結合を全否定するかのような印象を与えてしまいました。そのような意図はなかったのですが、補足記事を書きましたので、併せて読んでいただけると幸いです。すみませんでした。), 思わず神視点になってしまいましたが、この世界にはExcelのセル結合を無意味に使いたがる人が多すぎます。いや、メリットがないことはないのですが、それを余裕で上回るデメリットがあることを意識している人が少ないように思われます。データというのは、コピペしやすいこと、集計しやすいこと、数え間違いをしづらいことが第一なので、それを損ねるような行為は許されざる大悪というべきでしょう。断固として弾劾していきます。, ここにエクセルで作った、同じソースから作成した3種類のデータ(東京都の区市町村別の人口をまとめたもの)があります。(データは東京都の統計より引用), 赤のA、緑のB、青のCは、データが綺麗な順もしくは汚い順に表を並べたものになりますが、綺麗なのは赤のAでしょうか、それとも青のCでしょうか。赤のAと答えた人は残念ながら大きな間違いです。悔い改めてください。しかし悲しいことに、世の中の業務で扱うデータは赤のAのようなものが溢れています。「え~、小計総計やエリアが分かった方が便利じゃないの?」という声が聞こえてきそうですが、そうではありません。それをこれからわからせてやる。, 本来選択したい列だけでなく、余計な列まで選択してしまいます。これでは他の表にコピーできません。市の部分だけピンポイントでコピーした後、区の部分をピンポイントでコピーする手間が必要になります。これは単純な例だからいいですけど、小カテゴリが10個あるような表でも同じ操作をするつもりですか? 余計な行さえなければ0.5秒で済んだ操作を、なぜ人間が神経をつかって再現しなければいけないのですか?, それに、神奈川県が町田市を強引に東京都から引き抜いてしまった日はどうでしょう。ここで町田市の列だけ消そうとしても、「東京都」の列を選択した時点ですべての行を選択してしまいます。ピンポイント(ピンポイントで、というのは基本的に人間の貴重な脳味噌を酷使します)で町田市の行だけ3セル分選択して「削除(上方向にシフト)」しても列のズレが生じます。この場合、行全体を選択できる(つまり他の列に残したいデータがない)場合を除いては、セル結合を解除してから作業して、もう一度結合するしかないのです。なんという無駄な作業……。, 例えば、何かの都合で国分寺市と国立市については合計で数える必要が出てきたとします。こういう邪悪な表は業務ではしばしば発生します。, この操作は結合したセルには行なえませんじゃあないんだよこの操作は結合したセルには行なえませんじゃあ。いや、悪いのは我々人間であってExcelさんサイドには何の責任もないのですが。, 最近のバージョンだとないみたいですが、バージョンによっては「結合されたセルの一部を変更することはできません」となってそもそもコピーすることすら不可能だったりします。ストレス!, レイアウトが一致しなかったら死亡ですね。「形式を選択して貼り付け」で「値」のみにするとサイズの不一致は防げますが、以下のようになります。, せっかく人口で並べてるんだから、人口順にソートしたい時もあります。しかし結合セルがあると, この操作を行うには、すべての結合セルを同じサイズにする必要がありますじゃあないんだよこの操作を行うには、すべての結合セルを同じサイズにする必要がありますじゃあ。, っていうか、列の途中に小計挟む必要あります? 列全体を数えたらダブル計上、トリプル計上になりますよね。というか、同じ列の間に違うカテゴリレベルの値が入ってるって気持ち悪くないですか。東京都、神奈川県、沼津市ってなったら気持ちわるいでしょう。そもそも、SUMで一気に数えられないでしょ。, 悪いけどドン引きです。関数の保守性とか考えたことあります? 小カテゴリが4つに増えたらどうするんでするか? また数式をいじって個別にプラスするんですか? これが本当にすべてを合計してるか丁寧にひとつずつ確認するんですか? SUMだったら、あー全部のセル囲ってるねってすぐ確認できるのに、なんでそんな苦行をしなければならないのですか。あとこの方式だと、カテゴリが消えたら参照エラー起こりますけど、そういうのも考えてるんですか?, ピボットテーブル使いましょう。冒頭で述べた青のCみたいな表があれば、一瞬で下の表みたいのが生成できるから。カテゴリを並べ替えたり、データをソートしたり、小計を間に挟んだり、そういうのもすぐできるから。ていうかそういうのをセル結合で再現しなくていいから。, まあピボットテーブル使うにせよ関数で表現するにせよ、青のCから緑のBや赤のAみたいな表を作るのは容易ですが、その逆は手間がかかります。だからデータがどのような形になるかわからない場合や、後で変更が加えられるかもしれない時は、青のCのような形式で編集を行うのが大事なのです。, 少し話を広げます。今まで述べてきたような問題は、根本的には構造とデザインが分離されていないがゆえに起こる問題です。構造とデザインが分離されている状態というのは、例えば雑誌の編集においては、ライターが執筆原稿を送って、編集者がそれを雑誌に製本するような状態のことです。雑誌が印刷された後で、ちょっとあの部分の文章変えてよ、ということは基本的にはありえません。, つまり、人の目に見やすいように整形された表というのは印刷された雑誌のようなもので、本来ならばそこから内容を修正するようなものではないのです。電子データだから無理矢理遡れるだけで、セル結合された表を変更するというのは、印刷された雑誌を切り抜いて文章を変更するようなものです。もし修正があれば、原稿の方を修正して、それから製本し直すというのがスジでしょう。出版なら大がかりな話になりますが、電子データ上なら一瞬で済みます。そのために関数やピボットテーブル機能があるのだから、そうするべきです。Excelにおいては、原稿は整然データやCSVにあたります。それらを修正するにあたって、余計な手間は一切かかりません。, なのに、Excelではデザインまで自分で完結させたい人や、デザインが固まった状態で修正を要求されるシーンがあまりにも多すぎます。人類にWYSIWYG(編集画面とレイアウトが一致していること)は早すぎたのだ……。, Excelは表計算ソフトです。けして版組ソフトではありません。セル結合やオブジェクト配置を使ってあなたの芸術を表現するキャンバスではありません。関数や、フィルターや、ピボットテーブルや、VBAを使って、99%の業務に必要なデータは一瞬で作成できます。そのために、その根本となるデータは整然データ(tidy data)でなければならないのです。, だからみんな、データを作る時やそれを人に渡す時は、できるだけ青のCみたいな形で揃えてくれると嬉しいな……。それが私の最期の願い……。, hibit_atさんは、はてなブログを使っています。あなたもはてなブログをはじめてみませんか?, Powered by Hatena Blog クリアーといっても意味が違いますので。。 ws1.Range("a1:b2").ClearContents お分かりの方よろしくご教示ください。 Cells(Row,Column).ClearContents 上書き・消去しないよう保護をかけて入力可能なシートのみ選択・入力できるようにしてあります。 ------------------------------------------------------ >数値が入るべきセルに””を入れると拙い場合がありますよね。 WINDOWS7 EXCELL2010 です。 あなたも誰かを助けることができる   range("A3").ClearContents  ・以下のプログラムを書いてみたが、エラーになる セルの表示形式が文字列の場合は本当の空白セルになりませんよね? (2)Range("A1:A6").MergeArea.ClearContents, EXCELにて結合セルを含む表の白紙化をしようとおもいます。しかしなぜか結合セルの部分はうまくいきません。 'c.Clear '書式も含めて、全て消すならこれ一行 #ひょっとしてA3:A5が結合してるのではなくてそれぞれが横方向に結合してたりするのかなぁ。 Range("A65536").End(xlUp).Select 最近、会社のPCでExcelでのVBAプログラミングの練習をしています。 Union(ar(1).Offset(-1), ar).Merge 数値が入るべきセルに””を入れると拙い場合がありますよね。 '-------------------------------------- GoogleAppsScript完全入門 ~GoogleApps & G Suiteの最新プログラミングガイド~, VBAやGoogle Apps Scriptのツール開発と研修をセットで依頼される企業が増えている理由. 結合されたセルの入力内容を消去したいです。(書式などはそのまま) こういった場合は、マクロを組みなおしたほうがいいのでしょうか? Sheets("Sheet1").Range("A1:C5").SpecialCells(xlConstants, 23).ClearContents Else Excelで、VBAを使っているのですが、結合されたセルの値を よろしくお願いします。, myRangeです。 Sheets(\"3\").Range(Cells(6, 3), Cells(6, 7)).ClearContents For Each c In Sheets("Sheet1").Range("A5:D10") これまでは、どうにか解決するという場当たり的な対応していましたが、これを機会に少し上級の参考書でVBAを基本から勉強してみようかと思っています。, いえ。 Next i 図のようにフィルタ抽出するセルが結合されています。このままだと、3行ある下の2行は折りたたまれてしまいます。該当する行を全て表示したい。オートフィルタにこだわりませんが、何かいい知恵がありましたら、よろしくお願いします。裏 再計算に時間がかかっているのでしょうか? 入力するシートはC4:Z100までが1台分、以下、Z1200まで12台分の車両別に分かれていて、 以上です。, 最後に整理していただき、ありがとうございました。 各々のシートのクリアする選択セルは同一です。 いろいろ勉強になりました。 今後、シート及び選択セルが増える予定ですが、 どうしてもできません。 これは、結合セル(A3:A5)が全て含まれているのでOK。 Cellsの書き方のほうが変数を使う時に便利なのですが、なんでこんな違いがでてしまうのでしょうか? ? End Sub  現在、自宅のPCから質問を入力しているので、会社PCに書いていたプログラミングとは違うかもしれません。 この説明では不足していると思いますが、補足をいたしますので、 Sub データ消去() このようにClearContentsメソッドで結合セルをクリアーする場合は ws2.Range("a1:b2").ClearContents MackyNo1 の回答でもやってみましたが、うまく行きました。 入力作業をするのがExcel初心者の人なので、関数が入っているセルを、 ClearContentsを使う方法を使ってうまく行きました。 ●ClearContentsを使う方法 のようにしてはいかがでしょう, 早々の回答ありがとうございました。 End Sub '----------------------------------------------- 上書き・消去しないよう保護をかけて入力可能なシートのみ選択・入力できるようにしてあります。 ●ClearContentsメソッドは結合セルの一部を指定できない● Empty、失念しておりました。。(^^;;; そもそも それぞれのシートをアクティブにしないとclearcontentsできないのでしょうか? となっているのですが、実行してみると 以上です。, MyRangeさん Sheets("3").Range("B11:AF15").ClearConmments 質問者のコードのように この方がセルの内容が初期値になるのでお勧めです。 Sheets("3").Range("B5:AF9").ClearContents どなたかご教授頂けないでしょうか? エクセル側とVBAをごちゃまぜにしていたようです。(^^;;; (1)Range("A1:A6").Value = Empty  というマクロを見つけたのでカスタマイズして試してみましたが、 '-------------------------------------- 私が何か勘違いしてるのかしらん? マクロはまだ初心者で色々と勉強している最中です。 Copyright © 2015-2020 いつも隣にITのお仕事 All Rights Reserved. 上の構文が上手くゆかず困り果てました。 Sub Sample() c.ClearContents コメントも消去する方法はあるのでしょうか。 A1セルに文字列で5桁のID番号を入力するとI4のセルに今日の日付が入るようにマクロを作っています。 End Sub 誰かの疑問に誰かが答えることでQ&Aが出来上がり、後で見に来たたくさんの人の悩みの解決に役立てられています。 ところで本当はこのあとB列をコピー&値貼り付けして計算式を数値に直してようやく終了ではないでしょうか? 今回は改めて基本的な事柄を再確認することができ あなたもQ&Aで誰かの悩みに答えてみませんか?. Cells(i, 1).ClearContents そこら辺りの煩わしさがあるので、あっさりと どこか間違っていますか?, win2000 officeXpです。 ●長さ0の文字列””を代入する場合 Sub Cellsdel() Sheets("2").Range("B11:AF15").ClearConmments 入力するセルは飛び飛びになっています。 Next   今回のようなコードを使用した場合はRange("A65536").End(xlUp).Selectなどで最下行セルを特定するときなどに、確かに問題が発生する可能性がありますね。 Sheets("3").Range("B11:AF15").ClearContents です。, MackyNo1さん、 Aセルをブランク領域で選択してマクロを実行しますとセルが結合します。 セルの表示形式が文字列の場合は本当の空白セルになりませんよね? どうすればよいでしょうか。 Range("$I$4") = "0000/00/00"  また、この方法があればもっと便利なんですが、このマクロにあるセル(B5:AF9)はロックがはずされていますので、それぞれのシート内のロックがはずされているセルを探し出し、そのセルの値とコメントを削除できるようなマクロはあるのでしょうか? ロックされていないセルのデータだけを一括で消去出来るマクロがないかと探していましたが、過去ログで、 c.ClearContents End If 現在 Cells(i, 1).Value = "" Sub 指定のセル範囲の値だけをクリアする()  WORKシートをSelecしてセルをSelect、Selection.ClearContentsだと上手くいくのですが、画面のちらつきが気になるので、できるならば、先頭ページから遷移せずに実行させたいです。 こちらを試してみたのですが、計算式が多いのと、別シートへ反映させているためか、 | よろしくお願いいたします。, あなたを助けてくれる人がここにいる 車両別に毎日の日報データを入力するシートがあるのですが、 ブログを報告する, https://www.amazon.co.jp/dp/4098251329 日本で最初の、そして…, (12/13追記 タイトルや表記に過剰な表現があり、セル結合を全否定するかのような印象を与えてしまいました。そのような意図はなかったのですが、, (主にBeat Saberを想定した)バーチャルモーションキャプチャーを調整するための方法, waifu2xとffmpegで30fpsHD動画を60fpsFullHD動画にした, AAA~ZZZの間で「名称・略称として使われていない組み合わせ」をスクレイピングで調べる. 今回はありがとうございました。 photo credit: orangey bits for jko via photopin (license), みなさん、こんにちは! 仰るとおりです。 #その場合でもRange("A1:A6").Value = Emptyで良いはずだけど。, 解答ありがとうございました。 結合されたセルの一部を変更することは出来ません となってしまいました。 End Sub, いつもお世話になります。 Set ws2 = Worksheets("Sheet2") Dim c As Range Dim c As Range End Sub, VBA初心者です。 1ヶ月ごとに入力したデータを消去し、新たなデータを入力していくのですが、  Dim i As Long 実行時エラー1004 話が難しくなってきましたが、結局、一部(A3:A5)が結合している範囲(A1:A6)のデータをクリアするには、(1)または(2)が良いということでしょうか。 Private Sub Worksheet_Change(ByVal Target As Range) のように結合セル全セルを指定するのはいいが、 これからもよろしくお願いします。, いつもお世話になっております。 For Each c In Sheets("Sheet1").Range("A5:D10") となってしまいました。 Next ↓ 「数値が入るべきセルに””を入れると拙い場合云々」 Sheets("1").Range("B5:AF9").ClearContents Sheets("1").Range("B11:AF15").ClearContents Sheets(\"2\").Range(Cells(6, 3), Cells(6, 8)).ClearContents   Range("A1:A6").Value = Empty Sheets("3").Range("B5:AF9").ClearConmments If Target.Address = "$A$1" Then Range("I4").Value = Date これからもよろしくお願いします。, Cells(i, 1).ClearContents このコードはA列のみです。A列からM列またはL列までと指定するにはどうすれば良いですか? Sub Cellsdel() 詳解!    WorkSheets("WORK").Range("A5:B5", Range("A5:B5").End(x|down)). End Sub, 横から失礼。 c = "" Sub CLEAR_CONTENTS() ws2.Range(Cells(1, 1), Cells(2, 2)).ClearContents と出てしまいます。  もし、ヒントだけでもお分かりになる方がいらっしゃいましたら、ご教授いただければと思います。, こんにちは。 以上です。, 回答ありがとうございました。 何かいい方法はあるでしょうか。, 下記の2つともA1:B2の中身を削除するものですが、test1の書き方だと対象となるシートがアクティブではないとエラーになります。test2は問題なし。 「実行エラー1004 結合されたセルの一部を変更することはできません」 Sub test11() 現在アクティブではないシートをアクティブにしないでclearcontentsするとアプリ定義、オブジェクト定義エラーになってしまいます。 End Sub, セル内のデータをクリアする以下のマクロを設定しました。 どなたかご存知の方がいらっしゃいましたら教えてください。, こんにちは、いつもお世話になっています。 というマクロを見つけたのでカスタマイズして試してみましたが、 Range("A1:A6").ClearContents Sheets("1").Range("B11:AF15").ClearConmments Sheets("2").Range("B11:AF15").ClearContents どなたか教えていただけませんか? 以前の質問させて頂いたときに、以下の変更箇所を教えていただいたので、 結合されたセルの一部を変更することは出来ません 質問者さん、回答2の 1ヶ月ごとに入力したデータを消去し、新たなデータを入力していくのですが、 Sheets("2").Range("B5:AF9").ClearContents Set ws1 = Worksheets("Sheet1")  Next i ↓ Sub test1() Worksheets("A").Range("B5:AF9").ClearContents End Sub 結合されています。Range(”A1:A6”)のデータをクリアするために以下 実行時エラー1004 Worksheets("B").Range("B5:AF9").ClearContents 車両別に毎日の日報データを入力するシートがあるのですが、 End Sub ws1.Range(Cells(1, 1), Cells(2, 2)).ClearContents range("A1:A6").clearcontents Set blanks = Rng.SpecialCells(xlCellTypeBlanks) この説明では不足していると思いますが、補足をいたしますので、 If c.Locked = False Then Set ws2 = Worksheets("Sheet2") 私は、VBAについては入門書を読んだだけで、ほとんど参考書を読まず、必要に応じて試行錯誤して実戦的に覚えた自己流のマクロなので、実際に不都合が発生するまで問題に気がつかないこともたびたびありました(それで少しずつノウハウがわかるようになってきましたが)。 Range("A1").Value = "" End Sub End Sub Else で、ちょと整理してみますと、セルA3:A5が結合セルとして。 Range("$I$4").ClearContents If Range("A1") = “” 現在、マクロを使用して複数のシートの特定セル内の値を消去するマクロを    Cells(i, "A").MergeArea.ClearContents >●長さ0の文字列””を代入する場合 数値項目だった場合でも表示形式は変わりませんので、 お三方に感謝せねばなりません。 ・クリアしたいのは、WORKシートのA5、B5セル以下のデータが入力されている個所すべて Range("$I$4") = "0000/00/00" Next 後学のために教えていただけると幸いです。, ClearContentsと""(長さ0の文字列)は、 もっと簡単な方法はないのでしょうか? 『一部(A3:A5)が結合している範囲(A1:A6)のデータをクリアするには』 入力作業をするのがExcel初心者の人なので、関数が入っているセルを、 Sheets(\"1\").Range(Cells(6, 3), Cells(6, 8)).ClearContents どなたか教えてください。よろしくお願いします。 これからも目から鱗の回答期待しています。 を使ってクリアしようとするとエラーになってしまいます。 'c.Clear '書式も含めて、全て消すならこれ一行 For i = 1 To 6 ロックされていないセルのデータだけを一括で消去出来るマクロがないかと探しています。 参考に End If Range("A3:A5").ClearContents Range("A1:A6").ClearContents 以前同じ質問をさせていただいたのですが、 Sub test() それに end-uさん、MackyNo1さん、質問をしてくださったyamato99さん このままだと、例えば人口順に並べ替えるとエリアがめちゃめちゃになってしまうと思います。相対セル指定はソート後も一つ上のセルを参照すると思い知った経験があります。, Excel中級への最初の難関とも言えるVLOOKUP関数。使いこなせればこれほど便利な関数もないのですが、データの準備方法に問題があると、なかなかマスターすることができません。今回の記事では、そのデータ準備で気を付けるポイントについてお伝えします。, Excelを使っていて飛び飛びになっている空白を埋めたいとき、または飛び飛びになっている値を全て特定の文字列に置換したいときなどありますよね。そんな時に便利なジャンプ機能とその使い方について紹介をします。, エクセルで画像扱うのって、面倒だなーって思いませんか?表計算ソフトですからね…画像処理は苦手なんでしょう。それでもどうしても画像を扱わなくてはならない場合に助けとなるテクニックをいくつか紹介しますね。, エクセルにある、フォームコントロールのチェックボックスとActiveXコントロールのチェックボックスのうち、ActiveXコントロールのチェックボックスをご紹介しています。フォームコントロールに比べてフォントやテキストの配置などの項目を変更することができるので、より細かいカスタマイズができますよ!, データ入力の際に便利な入力規則のリスト。項目の増減によって参照範囲の変更していませんか?OFFSET関数・COUNTA関数を組み合わせて使った参照範囲を自動で変更してくれる小技をご紹介いたします。, エクセルVBAでInternet Explorerを操作する初心者向けのシリーズ。今回は「画像タイプの送信ボタン」をname属性を使用してクリックする方法についてお伝えします。, エクセルVBAでIEによるスクレイピングをするときに便利なクラスの作り方をシリーズでお伝えしています。InternetExplorerを操作するクラスでWebページを開くメソッドを追加する方法です。, エクセルVBAでAccessデータベースを操作する方法についてシリーズでお伝えしています。ADODBレコードセットの並び順について確認しつつ、Sortメソッドを使って並び替えをする方法についてです。, 2019/11/25に「パーフェクトExcel VBA」が発売されます。事前予約などの判断材料にしていただけるように、本記事で「パーフェクトExcel VBA」のまえがき全文を掲載させていただきますね。, 当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。, マネーフォワードクラウド請求書の請求書一覧の全件をスプレッドシートに書き出すスクリプト, GASでマネーフォワードクラウド請求書の請求書一覧をスプレッドシートに書き出す方法.