- ベストアンサー
EXCELでセルの内容をクリアーしたい
下記のような表でEセルに済が入ったらその行の内容をクリアーしてブランクセルにしたいのですが。 例 A1 B1 C1 D1 E1 8/25 静岡 りんご 100個 済 ←この列を消したい 8/26 岡山 バナナ 120個 8/27 岐阜 みかん 260個 できるでしょうか?よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
No.1 & No.2です。 > 実際には1を入れるセルはDDなのです。 > そして、消去したいのはCW~DCまでです。 DDの 1 は残しておくのでしょうか? ↓で試してみてください。 '-------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) With Target If .Column = 108 Then If .Value = 1 Then Range(Cells(.Row, "CW"), Cells(.Row, "DC")).ClearContents End If End If End With End Sub '--------------------------------------- DDの 1 も消すのでしたら Range(Cells(.Row, "CW"), Cells(.Row, "DC")).ClearContents の "DC" を "DD" に修正してください。
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17070)
(1)関数では行を削除することはできません。 関数は値しか返さず、セル、行、列の削除、挿入はできません. (2)したがってVBAにならざるを得ません。 (3)ただし質問の目的という条件にあえば下記のようなことができます。 sheet1の別の範囲とかSheet2でよければという条件です。 (imogasi方式) 例データ Sheet1のA2:C10 a 1 x 済 b 2 y 1 c 3 z 2 d 4 v 済 e 5 w 3 f 6 s 済 g 7 y 4 d 5 t e 6 j D列に済の漢字を入れる(一定の文字を1種入れる) D2セルに =IF(D2="済","",MAX($F$1:F1)+1) と入れてD10まで複写。 Sheet2のA2に =INDEX(Sheet1!$A$1:$C$10,MATCH(ROW()-1,Sheet1!$E$1:$E$10,0),1) と入れてA10まで複写する。 Shhet2のB2に=INDEX(Sheet1!$A$1:$C$10,MATCH(ROW()-1,Sheet1!$E$1:$E$10,0),2) と入れてB10まで複写する。 C2に =INDEX(Sheet1!$A$1:$C$10,MATCH(ROW()-1,Sheet1!$E$1:$E$10,0),3) と入れてC!0まで複写する。 結果 は済のない行が出ます。 済をSheet1のD列で増やすと、Sheet2は1行ヘリ、消すと1行増えます b 2 y c 3 z e 5 w g 7 y #N/A #N/A #N/A #N/A #N/A #N/A #N/A #N/A #N/A #N/Aは=IF(ISERROR(上記式),"",上記式)で消してください。
- shiotan99
- ベストアンサー率68% (140/203)
すみません、No.2です。 EntireRow.ClearContents の前にピリオドが必要なのですが、 ピリオドが消えてしまったようです。 コードを貼り付けてから、EntireRow の前にピリオドを入力して、TABキーを押してください。
- shiotan99
- ベストアンサー率68% (140/203)
こんにちは~ > 実際には入力に面倒な済ではなく A でも B でもいいのです。 ★ E列に 1 を入力すれば、その行全体をブランクにします。 該当するシートのシートタブを右クリックして、「コードの表示」を選択 右のコードウィンドウに↓のコードをコピーして貼り付けてください。 '--------------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) With Target If .Column = 5 Then If .Value = 1 Then EntireRow.ClearContents End If End If End With End Sub '---------------------------------------------- 右上の閉じるボタン(×)をクリックして、EXCELに戻ってください。
補足
説明がたりなくてごめんなさい! 実際には1を入れるセルはDDなのです。 そして、消去したいのはCW~DCまでです。 この行には他にもいろいろ入っていて行全体が消去されるとこまるのです。 どうもすみません。
- thrush76
- ベストアンサー率27% (38/137)
E列でソートをかけて、「済」を寄せ集めてはどうでしょう。 元に戻しやすいように、違う列に連番を振っておくと良いかもしれません。
お礼
早速の回答有難うございます。 ソートをかけることは考えたのですが、集めてクリアーという手順が増えますので、できれば済が入った時点でさっとクリアーできるとありがたいのですが.... 実際には入力に面倒な済ではなく A でも B でもいいのです。
補足
マクロを使ってもいいのですが、ソートさせるところまではできるのですが、済の入ったところだけをクリアーさせるところがわかりません。
お礼
うまくいきました!べりナイスです。 どうも、ありがとうございました。