2

以下は私のC#コードです。パスワードを渡して保護されたシートのロックを解除しようとしていますが、それでもシートのロックを解除していません。シートにマクロを追加する必要があります。

コード:

const string excelFile = @"c:\temp\VBA\test.xlsm";
var excelApplication = new ExcelInterop.Application { Visible = true };
var targetExcelFile = excelApplication.Workbooks.Open(FileName:excelFile,Password:"12asQOl");

ここでは「sendKeys」を使用できません。助けてください。

ありがとう

4

2 に答える 2

1

コードでは、ドキュメントのパスワードを渡します。ブックの保護を解除しているわけではありません。

次のコードを使用して、ブックの保護を解除します。

targetExcelFile.Unprotect(password);

問題があれば教えてください。

于 2013-03-05T14:09:17.570 に答える
1

VBA を使用する場合の 1 つのアドバイス: 実行しようとしていることのマクロの記録を開始してから、生成されたコードを確認します。

シートの保護を解除するのではなく、保護されたファイルを開こうとしているようです。

次のような古いコードを見つけました (これは VB です)。

Dim WSheet As Worksheet
For Each WSheet In Worksheets
    If WSheet.ProtectContents = True Then
        WSheet.Unprotect Password:=MyPassword
    Else
        WSheet.Protect Password:=MyPassword
    End If
Next WSheet
于 2013-03-05T13:59:20.413 に答える