過去ログ

                                Page     698
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼VBAを使用して既存ブックのモジュールやユーザーフォームシートを開放したい  ゴンタ 03/2/5(水) 18:20
   ┗Re:VBAを使用して既存ブックのモジュールやユーザーフォームシートを開放したい  りん 03/2/5(水) 20:16
      ┗Re:VBAを使用して既存ブックのモジュールやユーザーフォームシートを開放したい  ゴンタ 03/2/6(木) 10:36
         ┗Re:VBAを使用して既存ブックのモジュールやユーザーフォームシートを開放したい  りん 03/2/6(木) 19:32
            ┗Re:VBAを使用して既存ブックのモジュールやユーザーフォームシートを開放したい  ゴンタ 03/2/7(金) 11:43

 ───────────────────────────────────────
 ■題名 : VBAを使用して既存ブックのモジュールやユーザーフォームシートを開放したい
 ■名前 : ゴンタ
 ■日付 : 03/2/5(水) 18:20
 -------------------------------------------------------------------------
   始めまして。ゴンタと申します。
VBAを使用して既存ブックのモジュールやユーザーフォームシートを開放したいのですが
可能ですか!?どなたか分かる方教えて頂けますか!?
どうぞ宜しくお願い致します。
 ───────────────────────────────────────  ■題名 : Re:VBAを使用して既存ブックのモジュールやユーザーフォームシートを開放したい  ■名前 : りん <rin_doggie@hotmail.com>  ■日付 : 03/2/5(水) 20:16  -------------------------------------------------------------------------
   ゴンタ さん、こんばんわ。

>VBAを使用して既存ブックのモジュールやユーザーフォームシートを開放したいのですが
>可能ですか!?
可能です。

UserFormとModuleとシートやブックのイベントを削除します。

Sub test()
  If MsgBox("マクロ削除してもいい?", vbCritical + vbYesNo) = vbYes Then
   Dim wb As Workbook
   Dim vbc As Object
   '現在表示しているブックのマクロを削除(このマクロのブックを除く)
   Set wb = ActiveWorkbook
   If wb.Name <> ThisWorkbook.Name Then
     Nmax% = wb.VBProject.VBComponents.Count
     For NN% = Nmax% To 1 Step -1
       Set vbc = wb.VBProject.VBComponents(NN%)
       With vbc.CodeModule
        If vbc.Type < 100 Then
          'モジュールは無条件で削除
          wb.VBProject.VBComponents.Remove vbc
        Else
          'イベントプロシージャは見つかったら削除
          If .Countoflines > 0 Then _
           .DeleteLines 1, .Countoflines
        End If
       End With
     Next
   End If
   Set vbc = Nothing
  End If
End Sub

ユーザーフォームシートってなんですか?
XL95以前のマクロですか?
 ───────────────────────────────────────  ■題名 : Re:VBAを使用して既存ブックのモジュールやユーザーフォームシートを開放したい  ■名前 : ゴンタ  ■日付 : 03/2/6(木) 10:36  -------------------------------------------------------------------------
   ▼りん さん:
>ゴンタ さん、こんばんわ。

 こんばんは。早速のご返信ありがとうごさいます。
 こんな方法が有るのですね。素晴らしいです。
 ありがとうございます!

>ユーザーフォームシートってなんですか?
>XL95以前のマクロですか?

 すみません。。。ユーザーフォームシートでは無くユーザーフォームの間違いです。
 混同させてしまい大変申し訳有りませんでした。(謝)
 ちなみにXL2000を使用しています。

 それから、もう一件ご質問が有るのですが、
 削除したいモジュール,ユーザーフォームはプロジェクト表示をロックしています。
 ロックしたままでも削除は可能ですか!?
 また削除したモジュール,ユーザーフォームを復元する事は可能ですか!?

 私のしたい事は、モジュール,ユーザーフォーム付きのファイルを
 VBAで【OUTLOOKのオブジェクトを作成後、Mailを送信する事】
 なのですが、(ここまではVBA作成出来ています。)

 Public Sub Mail_transmission1_1() 'メール送信(マイクロツール,メーカー)
 
 '*** OUTLOOKを使用してMailを送る ***

 Dim OLApp As Object

 Dim myOlApp
 Dim myNamespace
 Dim myItem

 '*** OUTLOOKのオブジェクトを作成後、Mailを送信する ***
 Set myOlApp = CreateObject("Outlook.Application")
 Set myNamespace = myOlApp.GetNamespace("MAPI")
 Set myItem = myOlApp.CreateItem(0)   'olMailItem

 '*** Mailの宛先・題名・本文・添付ファイルを設定する ***
 '宛先を複数指定する時は ; で区切る(Ex. xxx1@yyy.zzz;xxx2@yyy.zzz)
 'myItem.To = "xxx1@yyy.zzz"     '宛先(TO)
 'myItem.CC = "xxx1@yyy.zzz"     '宛先(CC)
 'myItem.BCC = "xxx1@yyy.zzz"    '宛先(BCC)

 myItem.To = Address
  
 myItem.Subject = "zzz"
 myItem.Body = "sss"
 myItem.Attachments.Add ThisWorkbook.Path + "\" + ThisWorkbook.NAME
 myItem.CC = M_Address 

 '*** Mail送信 ***
 myItem.Send

 '*** Reste ***
 Set OLApp = Nothing
 Set myNamespace = Nothing
 Set myItem = Nothing

 End Sub

 この方法ですとモジュール,ユーザーフォーム付きのファイルを送信して
 しまいます。受信側に誤ってVBAを実行して貰いたく無い
 のでモジュール,ユーザーフォームを削除して送信したいのです。。。

 今回教えて頂いた方法の他に良い方法は有りますか!?
 プロフェッショナルな方にお力をお借りしたいのですが。。。

 
 ───────────────────────────────────────  ■題名 : Re:VBAを使用して既存ブックのモジュールやユーザーフォームシートを開放したい  ■名前 : りん <rin_doggie@hotmail.com>  ■日付 : 03/2/6(木) 19:32  -------------------------------------------------------------------------
   ゴンタ さん、こんばんわ。

> この方法ですとモジュール,ユーザーフォーム付きのファイルを送信して
> しまいます。受信側に誤ってVBAを実行して貰いたく無い
> のでモジュール,ユーザーフォームを削除して送信したいのです。。。

ThisWorkbookの中の必要なシート(マクロなし)を新しいブックにコピーして、それを送信した方が簡単だと思いますけど。
 ───────────────────────────────────────  ■題名 : Re:VBAを使用して既存ブックのモジュールやユーザーフォームシートを開放したい  ■名前 : ゴンタ  ■日付 : 03/2/7(金) 11:43  -------------------------------------------------------------------------
   ▼りん さん:
 
 りんさん。こんにちは。

>ThisWorkbookの中の必要なシート(マクロなし)を新しいブックにコピーして、それを送信した方が簡単だと思いますけど。

 そうですね。。。モジュールやユーザーフォームシートを削除するのではなく
 逆にそういう発想もできますよね。
 素晴らしいです! ありがとうごさいます!
 
 今回、ご指導頂き大変ありがとうごさいます!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 698