2011-09-15 22 views
1

VBAコードが実行されてExcelシートが変更されている間にExcelシートがユーザーによって変更されないようにロックする方法はありますか?VBA Excelシートを「ロックする」方法

+1

マクロの実行中に*ユーザーがワークシートデータを変更できるようにする方法が不思議です。 –

+0

私はidevelopと同じことを思っていました、あなたはタイマーかそのようなものを待っていますか? – Reafidy

答えて

4

あなたのコードがアクティブである場合は、ユーザーが同時にデータを変更する機能を持っている理由は、私はよく分からない - マクロ砂時計は対話不可能

をレンダリング表示する必要があるあなたはplsはあなたのコードを投稿することができますか?あなたは、ユーザーが何かが(コードが実行されている間、つまりは再生されない)が起こっている知っている、そしてどのくらい Walkenbachからこの例を行くことがありましょうし、プログレスバーを追加する

  1. 含んで検討することができる

    オプション仕事が

    Application.Visible = False 
    'code 
    Application.Visible = True 
    
を発生している間にExcelのApplicationが見えなくなって http://spreadsheetpage.com/index.php/tip/displaying_a_progress_indicator/
  • 便利です

  • 2

    Excel 2003からの追加の操作なしでシートを保護すると、ユーザーの入力が防止されますおよび VBAの操作。ロックされたセルとのユーザーのやりとりを防止するために、VBAを許可するには、UserInterfaceOnlyプロパティを使用します。これはVBA経由でのみ行うことができます。この方法でシートを「手作業で」保護する方法はありません。手動でシートの保護を解除すると、このプロパティは削除されます。したがって、このプロパティをワークブック/シートのオープン/アクティブ化イベントに設定することをお勧めします。

    Private Sub Workbook_Open() 
    Dim SH As Worksheet 
        ' allow some non-destructive activities 
        For Each SH In ActiveWorkbook.Worksheets 
         SH.Protect DrawingObjects:=False, Contents:=True, UserInterfaceOnly:=True, _ 
             AllowSorting:=True, AllowFiltering:=True, _ 
             AllowUsingPivotTables:=True 
        Next SH 
    End Sub 
    
    関連する問題