Excelマクロでシート保護解除の方法とは?

このQ&Aのポイント
  • Excelマクロを使用してシートの保護を解除する方法を教えてください。
  • システム抽出画面で特定の場所に値を入力する際に、シートの保護が掛かっているために処理が止まってしまいます。
  • シートの保護を解除することで、処理を続けることができるようになります。
回答を見る
  • ベストアンサー

EXCELマクロでシート保護の解除をしたいです

システム抽出画面(Excel)にO23の場所から28行づつ"K"を入れていくというのです が、 数字の合計を取る場所で、シートの保護が掛かっています シートの保護が掛かっていれば次の処理(j+56)などをさせるようには どのようにすればいいでしょうか?(↓のはずっとKを入れていくだけです) Application.WindowState = xlMaximized j = 23 Do Until j > 10000000 Range("O" & j).Select ActiveCell.FormulaR1C1 = "" ActiveCell.FormulaR1C1 = "k" j = j + 28 Loop イメージです↓ ---------------------------------- (O,23) k入力 ---------------------------------- (O,23+28) k入力 ---------------------------------- k ← 保護されていてエラー ---------------------------------- k ← ここも入れたいけど処理ストップ ----------------------------------

質問者が選んだベストアンサー

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.3

う~ん >シートの保護が掛かっていれば次の処理(j+56)などをさせるようには シートの保護が掛かっていて処理できない所は処理せず 次の処理に移行するということ? 即ち、エラーを無視して処理を継続するでいいのかな? であれば、次のコードを追加してください On Error Resume Next  '←エラーより前であれば良いので追加してください j = 23 Do Until j > 10000000     ・     ・     ・ では、如何ですか?

haru0803
質問者

お礼

On Error Resume Nextについても勉強させていただきました また、結果も問題ありませんでした お付き合い頂きありがとうございました

その他の回答 (2)

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.2

シート保護の解除をしないと、セルへの入力は出来ない シート保護の解除 入力処理 シート保護 とするのが、一般的ですがダメなのでしょうか?

haru0803
質問者

お礼

回答遅くなり申し訳ありません ただ、シート保護の解除をしないでの処理をしたいのです システムに更新をかけるため入力されては困るのです

  • haru0805
  • ベストアンサー率0% (0/1)
回答No.1

すみません、タイトルを間違えていました・・・^^; シート保護の解除をしないで、が正しいです 申し訳ありません、よろしくお願いします

関連するQ&A

  • エクセル マクロ VBA について

    以下はセルB2.C2.D2.E2.F2をアクティブセルから右方向へ入力しています。ここでの入力とは"=" + "セルB2" というものです。一つずつ入力している為マクロが長くなります。短くシンプルなものにしたいです。ご教示お願いします。 ActiveCell.FormulaR1C1 = "=R2C2" ActiveCell.Offset(0, 1).Select ActiveCell.FormulaR1C1 = "=R2C3" ActiveCell.Offset(0, 1).Select ActiveCell.FormulaR1C1 = "=R2C4" ActiveCell.Offset(0, 1).Select ActiveCell.FormulaR1C1 = "=R2C5" ActiveCell.Offset(0, 1).Select ActiveCell.FormulaR1C1 = "=R2C6"

  • とほほのエクセルマクロ

    以下の文の[-1899]の部分を可変型にしたいのですが。 どなたかご存知有りませんか? ActiveCell.FormulaR1C1 = "=COUNTIF(R[-1899]C:R[-1]C,""いっしょだよ"")" ==================================== マクロの説明です。 ==================================== エクセルマクロでsheet1にデータを入力していって、 sheet1のD列内に同一のコードがないかをチェックするために sheet1のコピーを作成してD列でソートしてから D列の1行目=2行目ならK列に”いっしょだよ”という メッセージを出すようにIF文を書きこんでいきます。 最後にこの”いっしょだよ”というメッセージが何件あったかを見たいので、 一番下の行+1行目に ActiveCell.FormulaR1C1 = "=COUNTIF(R[-1899]C:R[-1]C,""いっしょだよ"")" という文を入れたのですがこれだと自分が居る一つ上のセルから 1899上までしか行かないのですが、毎回データを入力して行数は増えていってしまいます。 どのような、文にしたらよいのか教えてください。 お願いいたします。

  • エクセルのマクロの作り方

    マクロ初心者です。 今勉強している最中ですが、以下の物を作りました。 Sub Macro1() ' ' Macro1 Macro ' ' Sheets("Sheet2").Select Range("A4").Select ActiveCell.Formula = "=Sheet1!IM4" ActiveCell.Offset(3, 0).Select ActiveCell.FormulaR1C1 = "=Sheet1!R[-3]C[240]" ActiveCell.Offset(3, 0).Select ActiveCell.FormulaR1C1 = "=sheet1!r[-6]c[234]" ActiveCell.Offset(3, 0).Select ActiveCell.FormulaR1C1 = "=sheet1!r[-9]c[228]" End Sub わかる人はもうお分かりかもしれませんが、ループという機能でもっと簡単にできるように思います。 これを手打ちしていくのであれば、手間がかかってしまい、マクロの意味がないというか… [-3]→[-6]→[-9]と、縦に参照したいセルが3つずつ上がっていき、横には左に6ずつ移動していきます。正確にはアクティブセルが移動しているのでってことなのでしょうけど…(たぶん…) 最初が絶対参照になっていて2回目以降から相対参照になっているのは、1回目で絶対参照にすれば、そのセルを基準として相対参照でRC[-6]でループさせられるかなっと思ったからです。。。結局そうなりませんでしたが… 作りたいのは、sheet2のA4とsheet1のIM4、sheet2のA7とsheet1のIG4をイコールにし、それを間隔は同じでsheet2のA127まで繰り返したものです。 本を買って、ネットで検索して色々とやったのですが、どうにもわからなく。。。 どうかよろしくお願いします。

  • エクセルVBAでの関数

    下記、コードでセルに関数を入れるようにしてるのですが 関数で得られた値をセルに反映されるようにしたいのですが Dimを使用してもどう指定してよいのかわからず苦戦しております。 宜しくお願い致します。 Range("F1").Select Do Until ActiveCell.Offset(0, -1).Value = ""       With ActiveCell .FormulaR1C1 = "=MID(RC[-1],2,3)" .Offset(1, 0).Select End With Loop Range("A1").Select Do Until ActiveCell.Offset(0, 2).Value = "" With ActiveCell .FormulaR1C1 = "=RC[11]&RC[5]&Rc[8]&rc[9]&rc[3]" .Offset(1, 0).Select End With Loop

  • Excelでsheetに保護をかけたらマクロは動きませんか?

    マクロ初心者です。 Excelでsheetに保護をかけてしまうとマクロは動か なくなるものなのでしょうか?ちなみに、マクロで コピー等の処理を行うセルのロックは解除しておいた のですが…。 sheetを2つ作って、一方の保護付きsheetに情報を 入力をしておき、もう一方の保護無しsheetに同じ 情報をコピーした上でマクロ処理させる、という 方法は考えたのですが、もっとスマートな方法を ご存知でしたら教えて下さい。よろしくお願い致し ます。

  • エクセルマクロの記述について

    マクロの記述で、 Range(”G15”).Select ActiveCell.FormulaR1C1=”=シート名!R[-8]C[5]” というのは、どのような操作を表しているのでしょうか? どなたか教えて下さい。 よろしくお願いします。

  • エクセル マクロについて

    Book1で入力データ作成し、保存次第、添付画像の黄色部分に、自動転記する様マクロを組みたいと考えています。 現在、勉強中で、簡単な下記の様なマクロはできました。 これを応用して実践してみたいのですが、何を加えればよいのか、アドバイス頂けたら幸いです。 --------- Sub Macro1() ' ' Macro1 Macro ' ' a = ActiveCell.Value Range("A2").Select ChDir "C:\Users\takana\Desktop" Workbooks.Open Filename:="C:\Users\takana\Desktop\転記.xlsx" Sheets("Sheet2").Select ActiveCell.FormulaR1C1 = "" Range("B2").Select ActiveCell.FormulaR1C1 = a Range("B3").Select End Sub -----------

  • excel2003のマクロで全シートを選択したい場合

    初心者です、お願いします。 Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select Sheets("Sheet1").Activate Range("E1").Select Selection.NumberFormatLocal = "G/標準" ’現在文字列 ActiveCell.FormulaR1C1 = "7/1/2008" Range("F1").Select Selection.NumberFormatLocal = "G/標準"  ’現在文字列    ActiveCell.FormulaR1C1 = "5/31/2009"  上記の記述で1行目、全シートの選択を指定したいのです。 どのように変えたら良いかどなたか教えてください。

  • Excel VBA セルの指定の方法

    VBAの初心者です。処理1 のサブルーチンを使わずに直接記述すれば、エラーはでませんが、以下のように記述すればエラーが出てしまいます。宜しくお願いします。 Sub Macro10() i = 1 Do Until Cells(i, 1) = "" 処理1 i = i + 1 Loop End Sub Sub 処理1() Cells(i, 2).Select  ← ここでエラーになります。        ActiveCell.FormulaR1C1 = "◎" End Sub

  • excel2007マクロに関しまして

    excel2007マクロに関して不明な点があるので教えて頂きたいです。 シートが50枚ありそれぞれのシートのN列4~15行に対し そのシートのC列4~15行の値を60倍したものを記載したいのですが 下記入力内容中の Range("N " & j ).Select のところでRange メソッドの失敗が生じてしまいます。 その他にも不備があればご指摘頂きたいです。 宜しくお願いします。 Sub Macro6() ' ' Macro6 Macro ' Dim i, j As Integer For i = 1 To 50 With Sheets("ds1_" & i) Range("N3").Select ActiveCell.FormulaR1C1 = "Q(cum/m)" For j = 4 To 15 Range("N " & j ).Select ActiveCell.FormulaR1C1 = "=RC[-11]*60" Next j End With Next i End Sub

専門家に質問してみよう