• ベストアンサー

アクティブな行の特定範囲セルの値をクリアしたいのですが

こんにちは 仕事で表を作っているのですが以下の処理が出来なくて困っています。。。 A列からS列まで項目が入った表で、行は随時増えていきます。 【選択した行】の【K列からS列までの値をクリア】したいのですが どうすればよいのでしょうか? (A列~J列の値はクリアされないようにしたいです) どうかよろしくお願いいたします

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

関数ではセルデータのクリアはできないのでマクロになりますがいいですか? でもいちいちマクロ起動するより、手作業でクリアしてもそんなに手間ではない気もしますが… クリアするのが常に1行だけならMacro1、複数行の範囲をまとめてクリアすることがあるならMacro2をお試しください。 以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。マクロの実行はワークシート画面に戻ってALT+F8でマクロ一覧を開き、マクロ名を選択して「実行」ボタンです。 Sub Macro1()  Cells(ActiveCell.Row, "K").Resize(1, 9).ClearContents End Sub Sub Macro2()  If TypeName(Selection) = "Range" Then   Cells(Selection.Cells(1, 1).Row, "K").Resize(Selection.Rows.Count, 9).ClearContents  End If End Sub マクロにショートカットキーを割り当てれば、マクロの起動は楽になるでしょう。

erekimikan
質問者

お礼

ありがとうございます!! 希望通りの動作で感激しています 入力フォームを作成していたので ボタンに組み込んで使いたいと思います!

関連するQ&A

  • セルの値が0はクリアするマクロ

    エクセル2003です。 ある集計表において 4行目のH列からAM列まで 数値データがあります。 最終行は常に変化します この表内にてセルの値が0のセルは セル内を空白にしたいです。 以下のマクロを作成しましたが If Cells(処理行, 8).Value = 0 Then Cells(処理行, 8).ClearContents をあと(処理行, 13)から(処理行,31) まで記述しなければなりません。 構文的にも処理的にも不利? と思うので、なにかいい方法を教えてください。 Sub 数字0クリア() '2012年2月3日節分 Dim 最終行 '最終列をG列で求めます 最終行 = Cells(Rows.Count, 7).End(xlUp).Row Application.ScreenUpdating = False For 処理行 = 4 To 最終行 If Cells(処理行, 8).Value = 0 Then Cells(処理行, 8).ClearContents End If If Cells(処理行, 9).Value = 0 Then Cells(処理行, 9).ClearContents End If If Cells(処理行, 10).Value = 0 Then Cells(処理行, 10).ClearContents End If If Cells(処理行, 11).Value = 0 Then Cells(処理行, 11).ClearContents End If If Cells(処理行, 12).Value = 0 Then Cells(処理行, 12).ClearContents End If If Cells(処理行, 13).Value = 0 Then Cells(処理行, 13).ClearContents End If Next 処理行 Application.ScreenUpdating = True MsgBox "終了しました" End Sub

  • 【エクセル】歯抜けの空白欄に上段と同じ値を入れたい

    エクセル(2010)で ある表に ところどころ空欄があり、 そこに上段と同じ値を入れたいです。 随時発生する作業のため マクロ(もしくはVBA)が組めればと考えておりますが、 初心者につき、ご教示いただけますでしょうか。 A列:項番 B列:大項目 C列:中項目 D列:小項目 E列:備考 ※1行目:項目名、2行目以降:値 という表で、 A列のナンバリング・D列の小項目 以外は 上と同じ扱いとなるため空欄となってしまっていますが、 アクセス(DB)に取り込むため、空欄の無い形にしたいのです。 ※ちなみに、A列・D列は空欄が無い状態=最終行以下は空白です。 よろしくお願い致します。

  • C# dataGridViewの値だけクリア

    DataSorceにDataTableを指定したdataGridViewの行や列を消さずに表の中身の値だけクリアするにはどうしたらいいのでしょう。 DataTable.Clear()メソッドを使用したら列ヘッダーは残ったのですが、全ての行が行ヘッダーごと消えてしまいました。

  • マクロ 特定のセル値のみクリアする

    エクセルの超初心者です。 B1~K45に参加率の値が入っています。 この範囲にある 0.0% という値のみクリアすることはできるのでしょうか? すべてのセルを消去するには、 Sub ClearCell() Range("B1:K45").Clear End Sub でいいと思うのですが、指定した値のみクリアするにはどのようなプログラムになりますか? また例えば 5.0%以下のみの値をクリアするということもできるのでしょうか? 宜しくお願いします。

  • VBA特定セルの値により、他のセルの値を変更する

    いつもお世話になっております。 以下のような表で・・・       {A}     {B}  {C}   {D}   {E}   {F}    {G}    {H}    {I}   {J}    {K} {1} 氏名  住所  電話   1月   3月   7月   10月   処理(1) 処理(2) 処理(3) 処理(4)    {2} A     XXX  000-00  (1)   (2)   (3)    (4)   1月   3月   7月  10月 {3} B  TTT    000-0  空白   (1)    (1)    空白  3月   空白   空白  空白 {4} C  GGG    010   空白   (3)    (4)    空白  空白   空白 3月  7月 A~Cには氏名・住所・電話 がはいっており、D~Gには月がはいっており、H~Kには処理の名前が入っています。1行目は見出しです。 (H列以降、処理は増える可能性あり。) マクロで、(H2:KのlastRow = Cells(65536, "A").End(xlUp).Row)までに、その処理が何月に行われたかを入れたいのですが、 DEFGが(1)-(2)-(3)-(4) の場合、HIJK には1月-3月-7月-10月と入り、 DEFGが□-(1)-□-□ の場合、HIJK には3月-□-□-□と入り、 DEFGが□-(2)-□-□ の場合、HIJK には□-3月-□-□と入り、 DEFGが□-□-(4)-(4) の場合、HIJK には□-□-7月-□と入るようにマクロを組みたいのです。 (□は空白です。) 自分でも何度も組んでいるのですがエラーも出ずで、まったく動かず・・・ どなたかご教授ください。おねがいします!!!

  • セルの値によって、入力可能なセルを動的に変更したい

    こんにちは。 Excelで、以下のような動作をしたいと考えています。 B列に入った値が'1'のときは、同じ行のC列・E列・H列にしか入力できないようにする。 B列に入った値が'2'のときは、同じ行のD列・F列・G列・H列にしか入力できないようにする。 (遷移できない列は、選択不可能とする) ある列に入力した値によって、動的にセルのロックを変更する・・・?というイメージなのですが、 具体的な実現方法がわかりません。 実現方法を教えていただけないでしょうか。 よろしくお願いします!!

  • ExcelVBA : 一定範囲の行追加

    いつもお世話になっております。 現在表を作成しており、項目を随時追加できるマクロを作成したいと思っております。 下記の条件でのマクロ記述を教えて頂けないでしょうか。 ・現在アクティブになっているセルと同じ列の特定範囲の行を追加したい。 例: 列1のどこかのセルがアクティブの時、A1からK1までの行を追加。 以上、よろしくお願い致します。

  • VBAで範囲を有するセルの記載位置を入れ替える

    お世話になります。 あるデータを扱うため、sheet_1に以下のような表を作成し管理を行っております。 sheetは複数存在するので、敢えてsheet_1とします。 (sheet_1)      B列ーC列ーD列ーF列ーG列ーH列ーI列ーJ列ーK列ーL列・・・  3行  A   A   A   A   B   B   B   B   C   C  4行  A   A   A   A   B   B   B   B   C   C  5行  A   A   A   A   B   B   B   B   C   C  6行  A   A   A   A   B   B   B   B   C   C  7行  F   F   F   F   G   G   G   G   H   H  8行  F   F   F   F   G   G   G   G   H   H  9行  F   F   F   F   G   G   G   G   H   H 10行  F   F   F   F   G   G   G   G   H   H 11行  K   K   K   K   L    L   L   L   M   M 12行 以下、上記のように続く 4列毎×4行毎の16セル分の範囲を1情報として扱っているのですが、VBAを利用して記入された横方向の情報を下部行(例えば150行目)で縦に置き換える方法をご教授いただきたく投稿致しました。 変換元の対象範囲はB3:BM126です。 (sheet_1)       B列ーC列ーD列ーF列ーG列ーH列ーI列ーJ列ーK列ーL列・・・ 150行  A   A   A   A   F   F   F   F   K   K 151行  A   A   A   A   F   F   F   F   K   K 152行  A   A   A   A   F   F   F   F   K   K 153行  A   A   A   A   F   F   F   F   K   K 154行  B   B   B   B   G   G   G   G   L   L 155行  B   B   B   B   G   G   G   G   L   L 156行  B   B   B   B   G   G   G   G   L   L 157行  B   B   B   B   G   G   G   G   L   L 158行  C   C   C   C   H   H   H   H   M   M 159行 以下、上記のように続く 同一sheet内ではなく、新たにsheetを作成して同じ結果を求める方法でも構いませんので、恐れ入りますがご教授宜しくお願い致します。

  • 【VBA】特定の範囲で同じ値を含むセルの色を変える

    Excelのマクロに関して質問です。 特定の範囲(複数行と複数列)内で重複した値(セル内の最初の4文字が同じもの)を含むセルの色を変えたいです。 さらに、重複した値ごとに色分けをしたいです。例えば重複した値[1111]と重複した値[1112]の時では、前者が赤色で後者は青色、更に他の重複する値はまた別の色でというように、 要は、どのセルとセルが重複しているか色分けをして一目瞭然にしたいです。 ※なお特定の範囲は以下の変数を利用します。 dataRow = Workbooks(booksName).Worksheets(sheetsName).Range("A2").End(xlDown).Row 'データの入っている最終行を取得 dataColum = Workbooks(booksName).Worksheets(sheetsName).Range("A1").End(xlToRight).Column 'データの入っている最終列を取得 どなたか知恵をお貸し下さい。よろしくお願いします。

  • 【VBA】特定の範囲で同じ値を含むセルの色を変える

    Excelのマクロに関して質問です。 特定の範囲(複数行と複数列)内で重複した値(セル内の最初の4文字が同じもの)を含むセルの色を変えたいです。 さらに、重複した値ごとに色分けをしたいです。例えば重複した値[1111]と重複した値[1112]の時では、前者が赤色で後者は青色、更に他の重複する値はまた別の色でというように、 要は、どのセルとセルが重複しているか色分けをして一目瞭然にしたいです。 ※なお特定の範囲は以下の変数を利用します。 dataRow = Workbooks(booksName).Worksheets(sheetsName).Range("A2").End(xlDown).Row 'データの入っている最終行を取得 dataColum = Workbooks(booksName).Worksheets(sheetsName).Range("A1").End(xlToRight).Column 'データの入っている最終列を取得 どなたか知恵をお貸し下さい。よろしくお願いします。.

専門家に質問してみよう