• ベストアンサー

Excelマクロの部分的削除

エクセルの表で各行にプルダウンメニューがマクロで設定されているのですが、不要な2-3行を削除したところ、最後の1行のマクロ部分(プルダウンメニュー)だけ残って表示されてしまいました。 シート全体のマクロを削除せずに、一行の部分のみ削除する方法はありますか? 説明不足で申し訳ありませんが、教えて下さい。よろしくお願いします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

>各行にプルダウンメニューがマクロで設定されているのですが 操作で言えば、データー入力規則ーリストに当たるものでしょうか。マクロの記録では (A)セル範囲指定方式 Sub Macro1() With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=$D$1:$D$7" End With End Sub のようになります。(ただし一部削除してます) このようにセル範囲を指定してあるのでしょうか。 (B)値を直接入力方式 またはリストに表示するアイテム(各行)の値をを直接入力して Sub Macro2() With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="as,sd,fg,hj" End With End Sub のどちらでしょうか >不要な2-3行を削除したところ リストのアイテムを削除したのでしょうが、 (A)方式の、リスト表示データの入っているセルの一部をDELETEキーで値を削除したのでしょうか (B)方式の、リストに出す値をプログラム中に埋め込んだ部分を 削除したのでしょうか。 >最後の1行のマクロ部分(プルダウンメニュー)だけ残って表示されてしまいました。 この状態というのをもう少し説明してみてください。 >シート全体のマクロを削除せずに、一行の部分のみ削除する方法はありますか VBAの中で入力規則に関連する部分を削除するなら、上記のマクロ 例を基(参考)にして、どの部分のコードかを探し、コードのその部分を削除すればどうですか。 リストに表示する内容の一部を削除するのなら (A)方式では、アイテムデータ(セル範囲とセルの値)を再作成し Formula1:="=$D$1:$D$7"のセル範囲を修正する。 (B)方式ならFormula1:="as,sd,fg,hj"の””の中を修正 すればどうですか。 本当は、質問の補足がほしいのですが、想像も交えて書いてみました。

harukumar
質問者

お礼

マクロに関して無知で全くわからなかったのですが、(A)の方法でできました。 足りない言葉にも係らず助けていただいてありがとうございました。 これを機に少し勉強しようと思いました。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 おっしゃっている内容では、まったく意味が通じていません。 >プルダウンメニューがマクロで設定されている  入力規則ですか? とりあえず、コードを見せて、どのようにしたらよいか、具体的に説明してください。 私には、 >シート全体のマクロを削除せずに、一行の部分のみ削除する方法はありますか? マクロでコードウィンドウの中のコードを編集させようとする意味に思えてしまいます。 これは、出来ないとは言いませんが、一応、今は、禁じ手のひとつになっています。

harukumar
質問者

お礼

素人なもので、パニックになっていましたが、 どうにか解決できました。ありがとうございました。

関連するQ&A

  • ■EXCELの表で一行おきに行削除する方法?教えて

    タイトル通りなのですが、EXCELで4000行の表で一行おきに削除しなければいけない事が発生したのです。手作業で一行ごとに削除は出来ますが自動的にすばやく削除する方法があれば教えていただけませんか? 関数かマクロか何か手立ては有りますでしょうか?

  • エクセルマクロ 教えてください

    エクセルで、二行おきに行を一行挿入するマクロを組みたいのですがどうしたらよいでしょうか

  • エクセルマクロ-条件付き繰り返し

    マクロ初心者です。(エクセル2003使用) シート1にある表で、M列が空白以外(処理済みなどの値がある場合)である場合、その行全体をコピーし、シート2の最終行に貼り付けして、シート1からはその行を削除するマクロを作成したいと思っていますができません。 すみませんが、どなたかご教授願います。 (シート1の表) ・8行目が題目となっており、A9から表となっています。 ・表の全体サイズは、横がAからMまでで、縦はC(シー)の管理番号行分までとなっています。(Mは、空欄があったり値(処理済みなどの値)が入っていたりしています) (考えているマクロ) ・Loopの回数は、Cの管理番号が終わるまで ・IFでCに値があり、Mが空欄だった場合は、そのまま(何もしない) ・Cに値があり、Mに値があった場合は、その行全体を選択しコピーし、シート3の最終行に貼り付け、シート1のその行は削除する Sub 処理済み() Range("C9").Select Do While ActiveCell.Value = "" ActiveCell.Offset(1).Select Loop If ActiveCell.Offset(, 10).Value = "" Then そのまま Else If ActiveCell.Offset(, 10).Value = "値があったら" Then その行全体を Select.Copy Sheets("Sheet2").Select Dim 下 下 = Range("A").End(xlDown).Row ペースト 削除 End If End Sub すみませんが、どなたか教えていただけましたら助かります。 よろしくお願いいたします。

  • エクセル マクロ 連続する空白行の削除

    エクセルのマクロ処理で、連続する空白行を削除するにはどうしたらいいでしょうか。 行いたい処理は、データ間に存在する一行のみの空白行は残し、二行以上連続する空白行を一行の空白行に縮めるといったことです。

  • Excel 指定行削除マクロ

    Excel の表で、「行削除」ボタンを押したとき、次の手順で動くマクロを作りたいと思っています。 1.メッセージボックスで削除する行のクリックをうながす。 2.該当行がクリックされ、メッセージボックスのOKボタンが押される。 3.2番目のメッセージボックスに変えて、クリックされた行の A 列のセル(名称欄)   の値(○○)をボックスに取り込んで「○○を削除します」と表示させる。 4.OKボタンが押されたら、その行全体を削除する。 なるべく簡便な方法を教えてください。よろしくお願いします。

  • エクセルのシートについて

    エクセルのシート1に一覧表を作り、1行・2行・・・と、各行に対して、1行目の内容をシート2へ、2行目の内容をシート3へ、各行が変わるにつれ同様に違うシートへ行の内容を入力していきたいのですが、わかりません。よろしくお願いします。

  • 【マクロ】データが1つもない行を削除する

    添付した画像のようなファイルがあります。 この表の中で、データが一つもない行は削除して、上詰めにするマクロを実行したいです。 また、このシートの表は11行で終わっていますが、 他のシートは25行目で終わっていたりとバラバラです。 すべてのシートでこの処理を行いたいと思っていますので、 他のシートで処理を行ってもエラーのでないマクロを教えていただけたら幸いです。 ちなみに、 ・各シートに表はひとつづつ。 ・各シートの表の開始セルは同じ。 ・全シートに対して一気に処理を行いたい。←指定した処理をすべてのシートで行うマクロは作成済なので大丈夫です。

  • Excelで空白行を削除するマクロは?

    マウスやキーボードを使った記録式でマクロを作っています。 その中でシート上に散らばっている数十行の空白行を削除する行程が必要です。 しかし、マウスやキーに依るメニューでは「空白行の削除」と言うのが有りません。 VBEに直接打ち込まないといけない様です。 ステートメントが分かる方が要らしたら教えてください。

  • エクセルのマクロ機能について

    もう一度 助けてください エクセルの集計表である列の移動 並べ替えをエクセルのマクロ機能でつくりました ボタンを押すだけで うまくいっていたのですが データーが増え行を増やそうと 前のマクロを削除して また最初から作ろうとしたところ 記録できません 静的変数が64KBを超えたとかでます 編集 削除しようにも実行とキャンセルしか使えません いろいろほん(VBA)を見ましたが 私のレペルでは100年無理です 簡単なエクセルのマクロにも 範囲があるんですか あるひとつのシートだけマクロを残しています 手作業の集計や決まった作業はたいへんです

  • エクセルマクロで印刷範囲の設定

    エクセルのsheet1に表があります。 この表を印刷ボタンを押すだけで印刷できるようにしようと思います。データの最後の行までのページを印刷できるようにするマクロを教えてください。 ちなみに、今ある最後のデータより下の行もずっと罫線が引いてあります。 また、印刷だけだったら普通に 印刷>ページの指定 でできるよと思われるかもしれませんが、その他の機能もマクロでつくっている最後の段階なのでマクロでお願いいたします。 分かりにくい文章ですがよろしくお願いします。

専門家に質問してみよう