2017-09-22 3 views
1

ユーザーから隠されたコントロールを含むシートを持つExcelファイルを電子メールで送信しようとしています。EXCEL VBAシートおよび電子メールの問題を隠す

現在、ボタンをクリックするとシートが隠され、VBAコードを使用してメールが送信されます。

ただし、2つの問題があります。このシートを再表示するには 1)、Iは、イミディエイトウィンドウに、VBAコードに移動して、シート内の各WSについて

を入力する必要があります。ws.Visible =真:次

..and入力しますヒット。

シニアマネージャが実行してレポートを電子メール送信するので、これを行うより良い方法がありますか?

2)電子メールで送信されたファイル、誰でもVBAコードにアクセスでき、直接のウィンドウ...手順に従い、タブを再表示します。ソースファイルに影響を与えずに電子メールで送信されるファイルに永久に隠す方法を教えてください。

Dim sheet As Worksheet 

Set sheet = ActiveSheet 

' this hides the sheet so that it can only be made visible using VBA 
sheet.Visible = xlSheetVeryHidden 
ActiveWorkbook.Sheets("Admin").Visible = xlSheetVeryHidden 
Worksheets("sheet1").Activate 
ActiveWorkbook.SaveCopyAs Filename:=ActiveWorkbook.Path & "\MyReport - " & Format(Date, "mm-dd-yyyy") & ".xlsm" 

「電子メールにコードが続く...

答えて

1

は、新しいサブを作ってみて、ユーザーが再表示にプッシュすることができ、ボタンを持っています。ここでは

は、私はそれを隠すために使用していたコードですすべてのシート

Sub UnhideAllSheets() 
    Dim ws As Worksheet 

    For Each ws In ActiveWorkbook.Worksheets 
     ws.Visible = xlSheetVisible 
    Next ws 

End Sub 
+0

素晴らしい提案、ありがとうございます! UnhideAllSheets onボタンをクリックして、私が考えている問題は、それを見えるようにすると、それをクリックしてそのファイルを取得したタブを再表示することができます。提案してください! – SilverFish

+0

ボタンを使用する代わりに、マクロのキーボードショートカットを設定する方法はありますか? – Robby

+0

@Robby、良いアイデアのように聞こえます。どうすればキーボードショートカットを使ってマクロを起動させるのかを教えてください。ありがとう – SilverFish

1

はあなたが手動で入力しているコードを実行するために別のマクロを作成することができ、シートを再表示するには。

VBAコードを非表示にするには、エディタで、[ツール]> [VBAProjectのプロパティ]> [保護]を選択し、パスワードの有無にかかわらずロックすることを選択できます。

関連する問題