• 締切済み

エクセルVBAで保護シートの数式取得

ワークシートが保護されていても、そのセルA1にある数式をVBAで取得する場合 Sub test01() MsgBox Sheets("Sheet1").Range("A1").Formula End Sub でできます。 しかし、このセルが書式設定で、「保護」→「表示しない」にチェックをいれられていると「実行時エラー1004」となり取得できません。 パスワードがわかっていれば保護を解除して問題はないのですが、わからない場合、数式を取得する方法はないでしょうか?

みんなの回答

  • NuboChan
  • ベストアンサー率47% (785/1650)
回答No.4

zip経由で見ることができそうですが 保護関係なので詳細はweb情報をチェックしてみて下さい。

emaxemax
質問者

お礼

ありがとうございます。なんとか解決しました。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.3

No.1は間違ってました。 パスワードなしでやってました。

emaxemax
質問者

お礼

はい、ありがとうございます。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2

No.1の訂正です。 MsgBox .Range("A1").Formula ↓ MsgBox .Formula

emaxemax
質問者

お礼

ありがとうございます。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.1

ロックしたセルに、シート保護を解除せずにデータを書き込む。 https://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_030_040.html 上記のサイトで説明しているWorkbook_Openを設定して With Sheets("Sheet1").Range("A1") .FormulaHidden = False MsgBox .Range("A1").Formula .FormulaHidden = True End With で試してみてください。

emaxemax
質問者

お礼

ありがとうございます。これはパスワードがわからないと使えませんね。

関連するQ&A