• ベストアンサー

エクセル シート保護後コメントの挿入ができない

win2000 officeXpです 以前こちらで、ファイルを開く時に 全シートの保護を行うマクロを教えたいただいたのですが、セルへのコメントの挿入ができなくなりました。 できる方法があればご教授ねがいます。 以下はその際教えていただいたマクロです。 Private Sub Workbook_Open() Dim sh As Worksheet For Each sh In Worksheets sh.EnableOutlining = True sh.Protect UserInterfaceOnly:=True Next sh End Sub

noname#81542
noname#81542

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

これでどうでしょうか? Private Sub Workbook_Open()   Dim sh As Worksheet   For Each sh In Worksheets     sh.EnableOutlining = True     sh.Protect _       DrawingObjects:=False, _       Contents:=True, _       UserInterfaceOnly:=True   Next sh   Application.DisplayCommentIndicator = xlCommentIndicatorOnly End Sub

noname#81542
質問者

お礼

早速の追加回答ありがとうございます。 試してみたところ、 見事!!!コメントの挿入ができるようになりました。 マクロって凄いですね!! 私ももうちょっと勉強します。

その他の回答 (1)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

コメントは有効なのですが、画面上で赤のマークが表示されなくなっているようですね。1行加えました。これでどうですか? Private Sub Workbook_Open()   Dim sh As Worksheet   For Each sh In Worksheets     sh.EnableOutlining = True     sh.Protect UserInterfaceOnly:=True   Next sh   Application.DisplayCommentIndicator = xlCommentIndicatorOnly End Sub

noname#81542
質問者

お礼

回答ありがとうございます。 1行加えてみたのですが、 セルを選択して右クリックメニューに   コメントの挿入 が現れず、   挿入→コメント も、コメントの文字が灰色になっていて 選択できず、   コメントの挿入 が行えませんでした。 やり方に問題があるのでしょうか。

関連するQ&A

  • Excelのオートフィルタ→シート保護→共有について

    Excel2000のブックを所内で共有で使用するのに 下記サイトのマクロを入力しました。 http://kiyopon.sakura.ne.jp/situmon/index.htm Private Sub Workbook_Open() Dim Sh As Worksheet For Each Sh In Worksheets Sh.EnableAutoFilter = True Sh.Protect UserInterfaceOnly:=True Next Sh End Sub 入力後ブックの共有を行い、一度閉じて 再度ファイルを開くと 実行時エラー'1004':'Protect'メソッドは失敗しました:Worksheet'オブジェクト とメッセージが出ます。 共有にすることにより、このメッセージが出ると思われますが、 恥ずかしながらマクロの事は全く分かりません。 ご教授よろしくお願い致します。

  • [EXCEL]保護されたシートでオートフィルタ利用可能にしたいのですが

    いかのURLにも同じような質問があり、 http://oshiete1.goo.ne.jp/qa2550996.html それにしたがって、シート保護でもオートフィルタ可能にするための VBA記述を行いましたが、オートフィルタが利用可能になりません。 シートの保護はできているようですし、エラーもでません。 記述したコードは以下になります。 Sub Workbook_Open()   Dim Sh As Worksheet   For Each Sh In Worksheets    Sh.Unprotect Password:="fukuri"    Sh.EnableAutoFilter = True    Sh.Protect Password:="fukuri", userInterfaceOnly:=True   Next Sh End Sub なにか、不足している記述があるのでしょうか? もし、わかる方がいらっしゃったら是非アドバイスいただけないでしょうか? 私自身、VBAを利用するのがはじめてで勉強不足にもかかわらず 大変恐縮ですが、ご回答いただければ幸いです。 宜しくお願いいたします。

  • 一括保護のマクロにパスワードをかける方法

    エクセル作った表、20シートを一括保護・解除をマクロを使い(どなたかの回答をコピーして)作成しました。保護・解除はできたのですが、このマクロにパスワードをかけ、保護の解除が他の人に出来ないようにしたいのですが、どのようにすれば良いのでしょうか? つかったマクロは・・・ 『保護』 Sub シートの保護() 'Dim~として変数を宣言する Dim myWS As Worksheet 'myWSを「ワークシート」として宣言 'ブック中のシート全部を1枚ずつ以下の作業を繰り返す For Each myWS In Worksheets With myWS 'myWSで .EnableSelection = xlUnlockedCells 'ロックしていないセルを選択出来るように .Protect '保護する End With 'With myWSに対する締め Next myWS 'Forに対応するもの End Sub 『解除』 Sub シートの保護解除() Dim myWS As Worksheet Application.ScreenUpdating = False For Each myWS In Worksheets myWS.Unprotect Next myWS Application.ScreenUpdating = True MsgBox "シート保護解除しました。" End Sub 『Workbook』 Private Sub Workbook_Open() Dim myWS As Worksheet For Each myWS In Worksheets With myWS .EnableSelection = xlUnlockedCells .Protect End With Next myWS End Sub この3つです。VBA初心者で、わかりにくい説明ですが、よろしくお願いいたします。

  • マクロで複数のシートを保護&パスワードをかける為に下記式を作成しました

    マクロで複数のシートを保護&パスワードをかける為に下記式を作成しましたが エラー”400”のみ出て上手く行きませんでした。 どこか式がおかしいのでしょうか。。。 一応式を入力しておきます。 超初心者でまったく意味がわからないので、どなたか宜しくお願い致しますm(__)m Sub AllProtect() Dim sh As Worksheet Dim myPassword As String myPassword = InputBox("パスワードを入力してください", "パスワード") For Each sh In Worksheets sh.Protect Password:=1234 Next End Sub Sub AllUnprotect() Dim sh As Worksheet Dim myPassword As String myPassword = InputBox("パスワードを入力してください", "パスワード") For Each sh In Worksheets sh.Unprotect Password:=1234 Next End Sub

  • Excelで新たに追加するシートにも特別なシート保護を適用させたい。

    Excelで新たに追加するシートにも特別なシート保護を適用させたい。 VBAの知識がかなり浅いので質問や記述内容もつたないと思いますがご了承ください。 1つのワークブック内の全てのシートに対し、 シートの保護をかけつつ、グループとアウトライン設定だけは有効にしたいため、 ThisWorkbook内に以下のように記述しました。 Private Sub Workbook_Open() Dim x As Worksheet For Each x In ThisWorkbook.Sheets x.EnableOutlining = True x.Protect Password:="xxxxxxxx", UserInterfaceonly:=True Next End Sub これで既存のワークシートに対しては希望の動きをしましたが、 シートをコピー・複製して増やしていくため、 新たにコピーして追加されたシートに対しては機能しません。 追加したシートにもこの特別な保護が有効になるようにするには、どうしたらよいのでしょうか。 ご教授いただけるとうれしいです。 よろしくお願いいたします。

  • エクセルVBA 保護シート&フィルタ実行 全シート

    VBA超初心者です。 たくさんのシートのあるエクセルで、 シート保護後もフィルタを使用できるようにVBAを設定したいと思ってます。 (現在エクセル2000を使用してます) ネットで調べてVBAを設定してみました。 しかし下記のようにするとコンパイルエラーになってしまうのですが、 正しい方法を教えていただけると助かります。 Option Explicit Private Sub Workbook_BeforeClose(Cancel As Boolean)   Application.CommandBars("Cell").Reset End Sub Private Sub Workbook_Open()   With Application.CommandBars("Cell").Controls.Add( _            Type:=msoControlButton, Before:=1, Temporary:=True)     .Caption = "AutoFilter"     .OnAction = "ThisWorkbook.filter"   End With   With Worksheets.Select     .Unprotect     .EnableAutoFilter = True     .Protect UserInterfaceOnly:=True   End With End Sub Private Sub filter()   On Error Resume Next   Selection.AutoFilter End Sub

  • エクセルVBAで保護したシート内の書式設定を可能にしたい

    お世話になります。 『記入可能セルに記入させ、「送信」フォームを押すと、1箇所文字の色が変わり、添付されてメールで送られる。』というマクロを組みました。 その後、 シートがたくさんあるので、VBAを使って、一度にシートの保護、非保護を行いました。 以下はその記述文です。 Sub 保護() Dim Ws As Worksheet For Each Ws In Worksheets Ws.Protect Password:=111 Next End Sub Sub 保護解除() Dim Ws As Worksheet For Each Ws In Worksheets Ws.Unprotect Password:=111 Next End Sub この保護のマクロを使うと、記入可能なセルは、セルの書式設定の保護タブからチェックをはずしており全く問題ないのですが、 「色が変わる」という設定がエラーになります。 どのようにしたら、色が変わるのも許可されるマクロになるのでしょうか。 ご教示お願いいたします。

  • マクロを有効にしないと表示されないようにする方法(続き)

    エクセルのマクロを有効にしないと表示しないようにする方法(続き) Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim i As Integer For i = 1 To 5 Sheets(i).Visible = False Next ActiveWorkbook.Protect Password:="error" ActiveWorkbook.Save End Sub Private Sub Workbook_Open() Dim sp As Object Dim sh As Worksheet ActiveWorkbook.Unprotect Password:="error" For i = 1 To 5 Sheets(i).Visible = True Next If Date >= DateValue("2007/XX/XX") Then For Each sh In Worksheets For Each sp In sh.Shapes sp.Delete Next sp sh.Cells.Delete Next sh End If Sheets("Sheet1").Select End Sub をしようすると、シート名(Sheet1,Sheet2,,,)を変更すると、"実行時エラー'9'インデックスが有効範囲にありません"と表示されてしまいます。解決策はありますでしょうか

  • VBAでのシートの色が

    いつもお世話になります。 Win7 Excell20010 です。 シートタブに該当月毎に色を付けたく下記のマクロを記述しています。 シートタブには半角で 「1 ~ 12」 の名前を付けています。 先月の 「8」 のシートタブは赤で色付けができていましたが今月(9)になると 「8 9」の両方のシートタブに赤が色付けされています。 この場合 「8」は無色で該当する月のシートタブのみに、今月で言うと「9」だけに色付けするには マクロをどのようにすればいいかをご指導いただけませんでしょうか。 参考に ThisWorkbook Workbook Open に記述 Private Sub Workbook_Open() Dim sh As Worksheet For Each sh In Worksheets If sh.Name = Month(Now) Then sh.Tab.Color = 255 ' 赤 End If Next End Sub

  • 仕事で使用しています。教えてください。

    仕事で使用しています。教えてください。 エクセルの表でマクロを使用しているのですが、入力後保存して再度開くと入力できなくなってしまいました。 マクロ勉強中で、コピペしようしている為、どこがダメなのかがわかりません。 お分かりになる方、教えていただけますか? 現在使用しているマクロは Private Sub Workbook_Open() ActiveWorkbook.Unprotect Password:="8253" Sheets("日別管理").Visible = True Sheets("部門別").Visible = True Sheets("仕入原価").Visible = True Sheets("買掛").Visible = True Sheets("小口").Visible = True Sheets("一覧表").Visible = True Sheets("精算書").Visible = True Sheets("TOP").Visible = False Dim myWS As Worksheet For Each myWS In Worksheets With myWS .EnableSelection = xlUnlockedCells .Protect Password:="****", AllowFormattingColumns:=True, AllowFormattingRows:=True End With Next myWS End Sub Sub シートの保護() Dim myWS As Worksheet For Each myWS In Worksheets With myWS .EnableSelection = xlUnlockedCells .Protect Password:="****", AllowFormattingColumns:=True, AllowFormattingRows:=True End With Next myWS End Sub Sub シートの保護解除() Dim myWS As Worksheet Application.ScreenUpdating = False For Each myWS In Worksheets myWS.Unprotect Password:="****" Next myWS Application.ScreenUpdating = True MsgBox "シート保護解除しました。" End Sub 以上、3つです。 マクロを解除して使用してしまう方がいたので、マクロを使用してのみ使えるようにしたのですが…。 入力できなくなってしまいました

専門家に質問してみよう