• ベストアンサー

マクロ実行ボタンを自動削除したい

エクセル2007をしています マクロで次のような設定をしました 取り込んだデーターを別のエクセルファイルへコピー 数式が入っているので全体を値コピー マクロボタンを削除 終了 ですがマクロボタンが消えません 元ファイルには必要ですがコピーしたものには必要ありません マクロボタン削除を実行させるためにはどうすればいいですか

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

  • ベストアンサー
  • fmajin
  • ベストアンサー率61% (75/122)
回答No.5

No.3の回答者です。 No.2の補足についている内容を見ましたが、「ボタンを削除」というコードは含まれていないようです。ムダも多いようですよ。 これくらいのコードを読み解くようにしないと、マクロを使うのは危険です。データを破壊する可能性がありますから。 とりあず次のようなコードを追加すれば実現できると思いますけど、「ボタン 1」というのは、ボタンについているオブジェクト名で、これはそのときによって違いますし、コピーした際などに変化することもあるので扱いがちょっと面倒です。 ActiveSheet.Shapes("ボタン 1").Delete コードを拝見したところ、シートを複製して挿入する必要性はなく、別ブックに新規シートを用意して、そちらに「データ変換」シートのセルをコピーして値貼り付けすればいいのでは?

GPPPPPPPPP
質問者

お礼

コードを解読できました(^_^; マクロを組み直したらボタンの削除できました わからないときはコードを読めば解決かしら とても役に立ちましたm(_ _)mペコリ

GPPPPPPPPP
質問者

補足

試してみましたが解決しませんでした マクロははじめたばかりでドシロウトです あなたの言うとおり コードにはそれらしきものがありませんね 読むのを忘れてました エクセルには便利な機能があり マクロは自動作成なのでそこまで目がいきとどきませんでした これからはコードにも注目したいと思います 解決に向けて自分でも頑張ってみます

その他の回答 (4)

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.4

#1です。 >試してみましたが解決しませんでした マクロがエラーになったのでしょうか? だとしたらどこでエラーになったのでしょうか? どのようなマクロを組んだのでしょうか?

GPPPPPPPPP
質問者

補足

マクロはエラーになってません。 コピーしたシートを別ファイルに移動したあとの 「マクロボタンを削除」が実行されません

  • fmajin
  • ベストアンサー率61% (75/122)
回答No.3

確かに、どんな設計になっているかが大変重要だと思います。 ただ、どうもセルのコピーをした際に、マクロボタンも貼り付けられて、その貼り付けられたボタンを削除したいということなのでは? だとしたら、そもそもボタンは貼り付けられないようにすれば済む話かもしれません。マクロボタンを右クリックして、[コントロールの書式設定]コマンドを実行し、[プロパティ]パネルで[セルに合わせて移動やサイズ変更をしない]オプションをオンにすれば、セルをコピーする際にボタンは貼り付けられなくなると思います。 手作業で確認できると思いますから、試してみてください。

GPPPPPPPPP
質問者

補足

試してみましたが解決しませんでした

  • kuma56
  • ベストアンサー率31% (1423/4528)
回答No.2

直接の回答でなくて申し訳ないが・・・・・ >マクロで次のような設定をしました っとありますが、目的を文章化するのではなく、実際にはVBAにどのように記述されているのかによって、回答が違ってくるかもしれません。 特に、"マクロボタンを削除"の部分は、記述の仕方があっているのか?ミスタイプはないか?等々 意外と本人が気がつかない所でミスが紛れ込んでいるかも知れません。 そもそも"マクロボタン"はどういう風に作ってありますか? ツールバーに作ったのか?シート上にフォームやオートシェイプで作ったのか? また、"ですがマクロボタンが消えません"っとありますが、このときマクロはエラー表示で止まるのでしょうか? それとも、何らかの処理をしているようでマクロ自体は終了しているが、ボタンが消えないのか? この辺りを、もう少しハッキリさせると、より的確なアドバイスがもらえるかも知れませんよ。

GPPPPPPPPP
質問者

補足

Sub Macro4() ' ' Macro4 Macro ' ' Range("M15").Select Sheets("データ変換").Select Sheets("データ変換").Copy Before:=Workbooks("でぶ管理200806から.xls").Sheets(1) Selection.Cut Cells.Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "" Range("J3").Select ActiveCell.FormulaR1C1 = "" Range("H3").Select End Sub 表示は上記のようです お願いします

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

別ブックから対照のブックを操作するようにすれば、 マクロでマクロを削除などの作業は不要になります。 Dim wb As Workbook Set wb = ActiveWorkbook MsgBox Wb.Worksheets(1).Cells(1,1).Value Set wb = Nothing

GPPPPPPPPP
質問者

補足

試してみましたが解決しませんでした

関連するQ&A