「夫を成功」へ導く妻の秘訣 座談会

VBAを使っていて
大量の標準モジュールを解放したい場合
一つ一つ「解放」を実行していくのが面倒なのですが
自動で複数のモジュールを解放することはできないでしょうか?

何か良い方法があれば教えてください。

A 回答 (2件)

vbacを使うとか。



「いげ太の日記: Ariawase v0.6.0 解説(vbac 編)」
http://igeta-diary.blogspot.jp/2014/03/what-is-v …
    • good
    • 0

『標準モジュールを全て削除する』プログラムを作る


のが常套手段です。以下のページが参考になるかと。
http://d.hatena.ne.jp/SALINGER/20100903
http://oshiete.goo.ne.jp/qa/1799764.html
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

Q標準モジュールを削除したい。(VBA)

VBAで、VBAの標準モジュールを削除したいのですが、なかなか出来ません。たぶん、コレクションについての認識があまいからだと思います。VBComponents コレクションのobject.Remove(component)のヘルプには、VBProjects コレクションには、スタンドアロン プロジェクトを指定します。とありますが、そもそもスタンドアロンプロジェクトって何ですか?Application.VBE.VBProjects(4).VBComponents(1).とするとコレクションでなくなってしまいますが、どうやってモジュールと特定するのでしょうか?どなたか詳しい方いらっしゃいましたらご指導願います。よろしくお願いいたします。
VBIDEのライブラリーです。

Aベストアンサー

こんばんは。

VBAで、VBAのコードを扱うのは、ある程度VBAをマスターしてからの方がベターだと思うのですが、色々質問され懸命にVBAを学ぼうとされているようなので、シンプルなサンプルをひとつ。

先ず、新しいブックのシートモジュール、標準モジュール、それからUserFormに適当なコードを書いおきます。
そして以下のコードを同じブックの標準モジュールに書いて実行すると、標準モジュールだけが全て削除されます。

----------------------------------------
Sub CodeDelete()
 Dim Obj As Object
 For Each Obj In ThisWorkbook.VBProject.VBComponents
  With Obj
    If .Type = 1 Then
        Application.VBE.activeVBProject.VBComponents.Remove Obj
    End If
  End With
 Next Obj
End Sub

-----------------------------------------------
尚、これを2002以降で実行する時は、マクロ「セキュリティ」ダイアログで、「Visual Basic Projectへのアクセスを信頼する」にチェックを入れてから実行すること。

それから以前似たような質問に答えてありますので以下のURLも覗いてみてください。

http://oshiete1.goo.ne.jp/kotaeru.php3?q=1347061

後は自力で!・(^^;;;
以上です。

 

こんばんは。

VBAで、VBAのコードを扱うのは、ある程度VBAをマスターしてからの方がベターだと思うのですが、色々質問され懸命にVBAを学ぼうとされているようなので、シンプルなサンプルをひとつ。

先ず、新しいブックのシートモジュール、標準モジュール、それからUserFormに適当なコードを書いおきます。
そして以下のコードを同じブックの標準モジュールに書いて実行すると、標準モジュールだけが全て削除されます。

----------------------------------------
Sub CodeDelete()
 Dim Obj As Obje...続きを読む

Qマクロを消すマクロは不可能?

エクセルにてマクロを利用し作業しています。

メール等で送るときに手作業でマクロを消去してますが
これを「マクロ」を使ってできないものでしょうか?

検索したのですが該当するものがないようなので
教えていただけますでしょうか?

Aベストアンサー

おはようございます。
コードをコードで弄るのはあまりお奨めできませんが、下記のコードを試してみてください。
Excel2000で動作確認済みです。
但し、必ずコピーを取ってからにしてくだされ。
Wendy02さんの話では2002以降はできないそうですのでその時は無視願います。
-----------------------------------------------

Sub CodeDelete()
 Dim Obj As Object
 For Each Obj In ThisWorkbook.VBProject.VBComponents
  With Obj
    If .Type = 100 Then
      With .CodeModule
        .DeleteLines 1, .CountOfLines
      End With
    Else
      Application.VBE.activeVBProject.VBComponents.Remove Obj
    End If
  End With
 Next Obj
End Sub

-----------------------------------------------
以上です。

おはようございます。
コードをコードで弄るのはあまりお奨めできませんが、下記のコードを試してみてください。
Excel2000で動作確認済みです。
但し、必ずコピーを取ってからにしてくだされ。
Wendy02さんの話では2002以降はできないそうですのでその時は無視願います。
-----------------------------------------------

Sub CodeDelete()
 Dim Obj As Object
 For Each Obj In ThisWorkbook.VBProject.VBComponents
  With Obj
    If .Type = 100 Then
      With .CodeModule
...続きを読む

Qエクセル マクロが削除できないです・・・

あるエクセルファイルを開くと、マクロを有効にするかどうか聞いてくるのが面倒で、ヘルプに従って削除しようとしたのですが、【ツール】⇒【マクロ】⇒【マクロ】⇒マクロの保存先ボックスで→作業中のブックを選択しても、マクロがひとつも表示されず、削除できません。
どうしたら削除できますでしょうか?
お教えいただけましたら非常に嬉しいです。
よろしくお願い致します。

Aベストアンサー

VBE画面で
通常左部分にプロジェクトエクスプローラーがでてなければ
表示ープロジェクトエクスプローラーで出す
VBAProject(Book1)の下に明細が出ているかチェック
Microsoft Excel Objectsの下のSheet1ーThisWorkbook
までを1つつダブルクリックしてコード画面にコードが現れるかチェック
現れたら削除
ーー
フォーム
フォームのUserform1など1つずつ右クリックして、UserForm1(2,3などもありえる)の解放などをクリックして解放
ーー
標準モジュール
Module1,Module2などあるもの全部について、右クリックしてモジュールの解放をクリクして解放する。
ーー
クラスモジュール
あればClass1の解放などを行う。
ーーー
http://technet2.microsoft.com/Office/ja-JP/library/83308fb0-db8d-484b-a5ae-0757c162076b1041.mspx?mfr=true
にあるように、原理的にセキュリティ上危険なのは
ActiveX コントロール、
アドイン、および
Visual Basic for Applications (VBA) マクロ(上記)
なのだがAddoinについてはツールーAddinで導入済みのAddin名は
判るが、エクセル付属のものもあり、情報・勉強不足(すみません)で、どう区別するのか判らない。

VBE画面で
通常左部分にプロジェクトエクスプローラーがでてなければ
表示ープロジェクトエクスプローラーで出す
VBAProject(Book1)の下に明細が出ているかチェック
Microsoft Excel Objectsの下のSheet1ーThisWorkbook
までを1つつダブルクリックしてコード画面にコードが現れるかチェック
現れたら削除
ーー
フォーム
フォームのUserform1など1つずつ右クリックして、UserForm1(2,3などもありえる)の解放などをクリックして解放
ーー
標準モジュール
Module1,Module2などあるもの全部について...続きを読む

Qエクセル:標準モジュールを一括削除して保存するVBA

No.2169774の関連質問になってしまいます。
よろしくお願いします。

◆あるエクセルファイルの任意のシートを残して、その他のシートの一括削除をして、新しい名前で保存する方法をNo.2169774で教えていただきました。

◆その同じもとのエクセルファイルの任意のシート以外の他のシートを削除するだけでなく、『VBAprojectで保護をかけている標準モジュールをすべて一括削除すること』は可能なのでしょうか?

◆目的は、任意のシートのみを残して、VBAの書き込みもすべて削除してしまい、第三者があらたにVBAを書き込むことを含めて自由に使用できるようにしたいのです。

質問がわかりにくければ申し訳ありません。どうか、よろしくご指導をお願い申し上げます。

Aベストアンサー

↓の作業をマクロの自動記録したら参考になるコードが得られます。

シートタブを右クリック

移動またはコピー

移動先ブック名→新規ブック
コピーを作成するにチェック

新規ブックに名前をつけて保存

QEXCEL VBA で現在開いているブックのファイル名を取得する方法

EXCEL2003 VBAで業務を簡素化するために、現在開いているブックのファイル名を取得する方法が分かりません。
作業手順をマクロを使って処理していますが、オリジナルのワークブックをファイル名を変えて保存し、以後、このワークブックを読み込んで使用しています。
このときのVBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり、以後の業務に使用できません。
常にファイル名を取得出来るVBAをどなたか、教えて下さい。

Aベストアンサー

>現在開いているブックのファイル名
 ちょっと曖昧な表現かなぁという気もいたしますが、VBAが書いてあるブックのブック名は
ThisWorkbook.Name
で、現在 "アクティブにして" 操作対象になっているブックの名前は
ActiveWorkbook.Name
ですね。

 しかし、
>VBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり
というような文脈からすると、
ThisWorkbook.Name
の方ですかね。

QEXCEL VBAで全選択範囲の解除

EXCEL VBAで
Cells.Select
と書くと、全セルが選択状態になりますが、
これを解除するには、どう書けばよいのでしょうか?

Aベストアンサー

その1
A1 など、適当なセルを選択する。
(回答#1と同じ)

その2
全選択する前の選択範囲に戻る。

全選択前に
変数 = Selection.Address で記憶

全選択後
Range(変数).Select で元の選択範囲を選択

QVBAコードの書き換え?置き換え?

いつもお世話になっております。

VBAの超初心者です。

VBEでコードの置き換えは出来るのでしょうか?
例えば、コード内にある”マクロ”という文字列をVBAという変数に置き換えたい場合、現在は一つ一つコピペで置き換えています。エクセルの置換みたいな機能はないのでしょうか?

どなたかよろしくお願いいたします。

Aベストアンサー

Ctrl+Hで置換のダイアログを出し,ふつーに置換できます。標準的な操作手順ですね。

置換対象範囲は
○現在のプロシジャ(sub~end sub等の範囲)
○カレントモジュール(現在のModule1等の範囲)
○カレントプロジェクト(Module1,Module2など,現在のプロジェクトに含まれる範囲)
○選択された文字列
から選べます。

Qユーザーフォームのインポートの仕方

大変いつもお世話になります 。

UserForm1というオブジェクト名のユーザーフォームをコピーしたくていろいろ試してるのですが
よくわからなく困っています。。。

エクスポートして UserForm1.frmになったのをインポートすると、すでに名前が使用されているとかメッセージが出てインポートできません。なので UserForm1.frm を UserForm2.frmに名前を変更してチャレンジしたのですが、それでも同様の結果です。何かコツがあるのでしょうか?モジュールの場合のインポートとは要領が違うのでしょうか?

お時間ある方いらっしゃいましたら是非お願いします。。。。

Aベストアンサー

>エクスポートして UserForm1.frmになったのをインポートすると、すでに名前が使用されているとかメッセージが出てインポートできません。なので UserForm1.frm を UserForm2.frmに名前を変更してチャレンジしたのですが

Userform1をエクスポート
Userform1のオブジェクト名を UserForm2に変更
Usefrom1..frmをインポートする
この手順で如何でしょうか。

Q【Excel VBA】マクロでExcel自体を終了させたい

環境:WindowsXP、Excel2003

マクロでエクセルを終了(ブックを閉じて、アプリケーション自体も終了)させたいのですが、以下のコードではアプリケーションが閉じてくれません。

ThisWorkbook.Close
ExcObj.Quit
Application.Quit

どこか悪いところはありますでしょうか?

よろしくお願いします。

Aベストアンサー

普通に考えれば質問者のコードで上手くいきそうですが
hana-hana3さんの回答にもあるようにThisWorkBook.Closeでコード終了となりますので
Application.QuitをThisWorkBook.Closeの前にもってこないといけません。
Application.Quitはそれがあるプロシージャのコードが全て終わるまで
その実行を保留するちょと特別動作をします。

'-------------------------------------
 Application.Quit
 ThisWorkbook.Close
'-------------------------------------
 
 

Qエクセル VBA ユーザーフォームを閉じる

ユーザーフォームを開く時は
UserForm1.Showですが
閉じる時は?
UserForm1.Close
だとコンパイルエラーになります。
End
にするしかないですか?

Aベストアンサー

Unload Me とか Unload UserForm1 でユーザーフォームを閉じることができます。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング