• ベストアンサー

エクセルのテーブルを解除する方法(VBA)

現在、エクセル起動時に、ListObjectsを使用してテーブルを作成しています。 作成後、保存して、再度、エクセルを起動すると、下記エラーが発生します。 "テーブルは、他のテーブルと重ねることはできません" そこで、エクセルを終了時に作成したテーブルを解除しようと思ったのですが、 この方法がわかりません。 画面からだと、デザイン->範囲に変換で可能なのですが、 これをVBAで行うにはどのようにすればよいのでしょうか。 どなたかご教授ねがいます。。

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

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

>画面からだと、デザイン->範囲に変換 Ver2007以降ですね。 2003ならマクロ記録されますが2007以降は録れないみたいです。 Unlistメソッドです。 全部のテーブルを解除するなら Dim Lst As ListObject For Each Lst In Sheets("xxx").ListObjects   Lst.Unlist Next ..な感じ。 ヘルプを辿る場合、 『Excel 2007 開発者用リファレンス > リファレンス > ListObject オブジェクト > メソッド』 を見てください。 うまく辿れない場合、 VBEでF2キー[オブジェクトブラウザ]。 [ ListObject ]で検索して 『'ListObject'のメンバ』の中から当たりを付けたメソッドを選択して[F1]キー。 ..です。

freak110
質問者

お礼

ご連絡が遅れて申し訳ございません。。 Unlistメソッドでうまくいきました!! ありがとうございます!! >『Excel 2007 開発者用リファレンス > リファレンス > ListObject オブジェクト > メソッド』 こんな便利なものがあったんですね。。 勉強になりました!!

関連するQ&A

  • 表をテーブルに変換するマクロ(Excel2007)

    お世話になります。カテゴリ違いでしたらご指摘ください。 Excel2007で範囲A1:D8にテーブル書式を設定するマクロを作成し、作業中のブックに保存しました。 Sub テーブル書式() ' ' テーブル書式 Macro ' ' ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$D$8"), , xlYes).Name = _ "テーブル1" Range("テーブル1[#All]").Select ActiveSheet.ListObjects("テーブル1").TableStyle = "TableStyleMedium21" End Sub このマクロを別シートで実行しようとすると「実行時エラー‘1004’RangeクラスのSelectメソッドが失敗しました。」と表示されます。 表を書式付きのテーブルに変換するとき自動的にテーブル名がつけられ、それが既に記述されているテーブル名と異なるため発生するエラーかと思うのですが、VBAの知識が乏しくどのように修正すればいいのか分からず困っております。 ブック内のどのシートでもMedium21の書式付きテーブルに変換できるようにするにはどうすればよいか教えてください。 補足要求などあればご指摘ください。 よろしくお願いいたします。

  • EXCEL VBAのパスワード解除

    EXCELのマクロをVBAで作りました。コードにパスワードをかけて保存しました。今回マクロを修正することになったのですが、パスワードを忘れてしまって、開くことができなくなりました。どうにかしてパスワードを解除できないものでしょうか?よろしくお願いします。

  • エクセルのテーブルについて。

    エクセルのテーブルが解除できません。 すいませんが教えてください。 エクセル2007ですが97-2003で作業していますが(バージョンが古い人たちがいるからです・) テーブルの削除ができません。 変換となんとかのコマンドで削除できると色々と投稿回答ありましたが 変換~というコマンドがないんです。 どうすればいいでしょうか? どこかに隠れているのでしょうか?大至急教えてください。 宜しくお願い致します。

  • Excelメニューからの保存時VBA起動方法?

    Excelメニューからの保存時VBA起動方法? Excelのメニューバーに「上書き保存(S)」、「名前をつけて保存(A)」があります。 これをクリックされたとき自分で作成したVBAを呼び出したいのですがどうしたらよいでしょうか? Excelのバージョンは2003までと2007以降どちらも対応したいのです。

  • EXCELのVBAのブックの共有時のエラー

    お世話になっております。 現在エクセルのVBAを組んでおります。 その中で、フォーム等を作成して制御を行っておりますが、作成時は問題なく動作するのですが、作成後、エクセルのメニューにあります「ツール」→「ブックの共有」を行い共有をかけて保存し、再起動した後にフォームの表示を行うと「問題が発生しましたため、エクセルを終了します。」と表示され正常にフォームが表示されません。 原因や確認すべき所をご存知の方は、どのようにすればよいか教えていただけないでしょうか? よろしくお願いします。

  • VBAでのブック・シートの保護・解除について

    エクセル2010のVBAでのブック、シートの保護&解除の方法について教えて頂きたく、 質問させて頂きます。 消されては困るシートや数式がある関係で、ブックオープン時にVBAでブックとシートにそれぞれパスワードをかけて保護しています。 VBAではシートの削除、作成、コピーなどを行っているため、VBA実行時のみ、保護を解除させるようにしたいと思います。 ただ、対象のシート自体にも入力したい項目があるため、その箇所については保護を解除しておく必要があります。 そして、VBA実行後、再度、その箇所以外にパスワードで保護をかけ直します。 イメージとしては下記のような流れになります。 対象ブック:ブックA 対象シート:シート1 パスワード:1234(それぞれ) 常時保護を解除しておきたいセル:range("A6:H106") 1.(オープン時には、)ブック保護&特定のセル以外のシート保護 2.VBA実行時には全ての保護解除 3.VBA終了時に、1の状態に戻る どうぞよろしくお願い致します。

  • EXCELのVBAで入力状態を解除する方法

    おはようございます。 EXCELのVBAで分からない為、ご教授してもらえないでしょうか? 表上でダブルクリックをすると入力状態に移行しますが その入力状態に入らないようにするマクロを組むことはできますでしょうか? 現在Worksheet_BeforeDoubleClickから行列Noを取得し 範囲内であればマクロを走らせるものを作成しています。 行列ともに場所を変えないで入力状態のみ解除したいのです。 これはできるものなのでしょうか? 行を1つ移動させ、戻すようなマクロは試したのですが、できませんでした。。 ご教授、よろしくお願い致します。

  • エクセルVBAでピボットテーブルを新規ブックに

    既存のエクセル(A2~F3600)データをピボットテーブルで新規ブックに張り付け?発生?させるVBA構文をご教示ください。初心者です宜しくお願いします。

  • access2003でVBAを使ってEXCELファイルをコピーしたい。

    access、VBA初心者です。 会社でaccess2003を使ってexcelファイルを管理しようと思っています。 自動保存を防止するために非連結フォームで「保存ボタン」を押すことによってテーブルへデータを保存するようにしています。(ここまではできました) テーブルに保存するデータの1つにexcelファイルへのパス(ハイパーリンク)を保存したいのですが、 1.ファイルを参照するダイアログボックスを使って任意のecxelファイルを参照し 2.そのexcelファイルのコピーを作成し 3.オートナンバーのように名前を変更して 4.一定の保存場所へ保存。(保存場所は固定) 5.保存先のパスをテーブルに保存。 という作業を行いたいのですが、 どういった形で作成すればよいのかわかりません。 フォーム上に何を配置し、VBAをどういう構文で書けばいいのかもわかりません。 要は、後々に、誰がいつ作ったエクセルファイルなのかを引き出せるものができればいいので、もっといい方法があれば教えていただきたいです。よろしくお願いします。

  • EXCEL VBA で終了出来ますか?

    いつもお世話になります。 OfficeXPを使用しています。 EXCELのVBAでファイルを開き、定型処理をさせているのですが、定型処理完了後にEXCELを終了させたいと思っています。しかしEXCELの終了マクロをうまく作ることが出来ません。(終了時のメッセージを出さないようにしたいです) ActiveWorkbook("test.xls").Closeで終了させようとしたのですが、「test.xlsを保存しますか」というメッセージが出てきてしまいます。メッセージを出さずになおかつ保存せずに終了させたいのですが、何方か良い方法を教えて頂けないでしょうか?

専門家に質問してみよう