人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Excel VBAについて。 VBAでモジュールを削除したい。

こんばんわ。
VBA達人の方お助けください。

非常に込み入った計算をしているExcelシートがありまして。
このVBAにはSQLsarverへの接続文がそのまま入っているため、非常に問題があります。

いっそのことVBAでVBAのモジュール事態を解放ができないかと考えています。
どなたか、回答をお願いします。

解放ではなくて、モジュール事態の書き換えでも構いません。
よろしくお願いします。


●質問者: きあ
●カテゴリ:コンピュータ
✍キーワード:Excel VBA モジュール 接続 解放
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● hathi
●20ポイント

VBEのプロジェクトエクスプローラでモジュールを選択して、

右クッリクで解放で、(エクスポートしない)を選択すれば

良いと思います。

◎質問者からの返答

ごめんなさい、それをVBAで行いたいのです。


2 ● ycyc
●50ポイント

?Visual Basic Editorのメニュー「ツール」-「参照」設定で、「Microsoft Visual Basic for Applications Extensibility」をチェックします。

?削除したいモジュール名が"Module1"とすると

Application.VBE.ActiveVBProject.VBComponents.Remove _

Application.VBE.ActiveVBProject.VBComponents("Module1")

で削除されます。

◎質問者からの返答

ありがとうございます。試してみたいと思います。


3 ● SALINGER
●50ポイント ベストアンサー

VBProjectプロパティを使うことでVBAからモジュールを削除することはできます。

まず、全段階としてVBProjectを使うために

Microsoft Visual Basic for Applications Extensibility

を参照設定します。

次に、セキュリティを変更します。

2003ならば、ツール→マクロ→セキュリティから「信頼できる発行元」タブで

2007ならば、Excelのオプション→セキュリティセンター→セキュリティセンターの設定→マクロの設定で

「Visual Basct プロジェクトへのアクセスを信頼する」にチェックを入れます。


準備ができれば次のコードでモジュールを削除できます。

例えば、Module2を削除ならば、

Sub DelModule()
 Application.VBE.ActiveVBProject.VBComponents.Remove _
 Application.VBE.ActiveVBProject.VBComponents("Module2")
End Sub

http://support.microsoft.com/kb/410621/ja


また、標準モジュールを全部削除するならVBProjectからモジュールを取得して

削除することが可能です。


ちなみに、メモリがちゃんと開放されるのか疑問だけどこのコードを実行するモジュールも削除されました。

◎質問者からの返答

ありがとうございます。

試してみたいと思います。


4 ● ふるるP
●20ポイント

元のブックをコピーして、件のモジュールを削除したものを先に用意しておき、ファイルコピーで上書きすればいいかと。

◎質問者からの返答

むむ、必要部分だけをコピーすれば良いってことですか?

確かに別ファイルに書き出せば良いだけではありますね。

うまく使えばこっちの方が効率が良いかもしれないので、

今度試してみたいと思います。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ