重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

持っているマニュアルには載っていないので、質問させていただきます。
ボタンをクリックしたら、特定のExcelファイルを開くプログラムを作成中です。
    Dim oExcel As Object
oExcel = CreateObject("Excel.Application")
oExcel.Visible = True
oExcel.workbooks.Open(gxls)
oExcel.Selection.ClearContents()
こんな感じで起動するにはするのですが、現物をダブルクリックで起動したときとマクロ(VBA)の動きが異なります。
プログラム起動では保護されているセルにマクロが記述しに行こうとすると「実行時エラー ”1004”」となってしまいます。
現物をダブルクリックする場合は、問題なく動きます。

どうしてなのかどうしてもわかりません。
どなたかご教授願います。

A 回答 (2件)

原因はわかりませんが


>保護されているセルにマクロが記述しに行こうとすると「実行時エラー ”1004”」となってしまいます。
こちらが正常で
>現物をダブルクリックする場合は、問題なく動きます。
こちらが問題だと思うのですが。
実際に エクセルのシートに保護をかけて マクロで そのセルの内容を 書き換えにいったら
「実行時エラー ”1004”」 でした。
    • good
    • 0
この回答へのお礼

正しい動きはエラーが出ることなんですね。
わかりました。
ありがとうございました。
大変勉強になりました。

お礼日時:2011/05/15 17:38

質問の意味不明(何が不思議なのか)。


VBAでシートの保護されたセルに値をセットしようとすると
Sub test01()
Range("b1") = "aa"
End Sub
は実行時エラー1004で止まります。実質終了せざるを得ない。
これはVB2010からでも実質同じエクセルプログラムが走るので同じでしょう。
ーー
シートのセルに直接入力し問うとすると、エラーコメントは出るが、エクセルは続けられる。
この違いを要っているのですか。
VBの方で try catch finallyを入れるとかの話ですか。
ーー
セルでダブルクリックはセル選択なので、
エクセルでの「シートの保護」で、現在の
ロックされたセル選択の選択
ロックされていないセルの選択
のチェック状態が関係しているのかな。
    • good
    • 0
この回答へのお礼

保護されているセルにはマクロだろうと手入力だろうとできないということですね。
そもそもマクロならできると思っていたことがいけませんでした。
大変ありがとうございました。

お礼日時:2011/05/15 17:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!