vba を使用してシートの列 A1 を非表示にしようとしています。しかし、 「範囲クラスの隠しプロパティを設定できません」というエラーが発生しています
これが私のコードです:
ActiveWorkbook.Sheets("Project").Activate
ActiveSheet.Unprotect password
Dim cmt As comment
Dim iRow As Integer
For iRow = 1 To Application.WorksheetFunction.CountA(Columns(1))
Set cmt = Cells(iRow, 1).comment
If Not cmt Is Nothing Then
Cells(iRow + 1, 1) = Cells(iRow, 1).comment.Text
Cells(iRow, 1).comment.Delete
Else
MsgBox "No Comments"
End If
Next iRow
MsgBox ActiveSheet.ProtectionMode
ActiveSheet.Columns(1).Select
Selection.EntireColumn.Hidden = True
行でエラーが発生しています
Selection.EntireColumn.Hidden = True
シートが保護されているかどうか、およびその列のセルにコメントがあるかどうかを確認するためにMsgBoxを含めました。
1 番目の MsgBox は No Comments として返され、2 番目は false として返されます。
したがって、シートは保護されておらず、コメントも存在しません。
それでもエラーが発生する理由について混乱しています。
私を助けてください
アップデート:
コードを次のように変更しました。
ActiveWorkbook.Sheets("Project").Activate
Dim sh As Shape
Dim rangeToTest As Range
Dim lRow As Long
Dim c As Range
lRow = ActiveSheet.Range("A" & ActiveSheet.Rows.Count).End(xlUp).Row
Set rangeToTest = ActiveSheet.Range("A1:A" & lRow)
For Each c In rangeToTest
For Each sh In ActiveSheet.Shapes
sh.Delete
Next sh
Next c
ActiveSheet.Range("A1").EntireColumn.Hidden = True
そしてそれはうまくいきました。しかし、セルの上にマウスを置いたときに得られる他の列ヘッダーにコメントを追加しました。現在、コメントを受け付けていません..
図形の削除はコメントと関係がありますか?