0

したがって、ユーザーにパスワードの入力を求めるパスワードで保護されたExcelファイルを開きたいのですが、ユーザーにプロンプ​​トを表示する前に、ファイルに実際にパスワードが必要であることを確認したいと思います。

私の現在のアプローチはこれであり、機能します。

CREATE OBJECT app 'EXCEL.APPLICATION'.
CALL METHOD OF app 'WORKBOOKS' = workbook.
CALL METHOD OF workbook 'OPEN'
  EXPORTING
  #1 = arch               "filename
  #2 = 0                  "Update links
  #3 = 0                  "ReadOnly
  #4 = 1                  "Format
  #5 = gv_password.       "password

 IF sy-subrc NE 0.

  CALL METHOD OF app 'QUIT'.
  FREE OBJECT app. FREE OBJECT workbook.
  CLEAR: app, workbook.
  CREATE OBJECT app 'EXCEL.APPLICATION'.

  gv_password = <user_entered_password>

  CALL METHOD OF app 'WORKBOOKS' = workbook.

  CALL METHOD OF workbook 'OPEN'
    EXPORTING
    #1 = arch               "filename
    #2 = 0                  "Update links
    #3 = 0                  "ReadOnly
    #4 = 1                  "Format
    #5 = gv_password.       "password

ENDIF.

これは基本的に、空白のパスワードを使用して Excel ファイルを開こうとし、失敗した場合はユーザーにプロンプ​​トを表示します。ただし、これは特に高速またはエレガントなソリューションではありません。より良い方法はありますか?おそらく、開こうとする前にプロパティを直接確認しますか? ありがとう

4

1 に答える 1

2

次の情報によると、Excel ファイルを開く前にパスワードで保護されているかどうかを判断することはできません: http://www.mrexcel.com/archive/General/2130.html

その議論では、彼らは基本的にあなたがすでに行っていることを提案しています. ただし、最後のポスターは、パスワードで保護されていないファイルにパスワードを渡しても効果がないことを示唆しているため、(アプリケーションのロジックに応じて) 代わりにパスワードをいつでも事前に渡すことができます。

于 2013-04-24T09:56:26.450 に答える