プロが教える店舗&オフィスのセキュリティ対策術

http://oshiete1.goo.ne.jp/qa2903797.html
たびたびすみません。最後にひとつだけお願いします。
お教えいただいた下のコードは順調に動作するのですが、
対象セルが結合セルの場合、エラーが出てしまいます。
とまってしまうコードの部分は
With Selection.AddComment
です。
エラーメッセージにはプロシージャの呼び出し、
または引数が不正です。(Error 5)と書いてあります。
結合セルは動作しないものでしょうか?


Sub test01()

Dim x As String
Dim ThisSheet_Name As String
Dim Sheet_Name As String
Dim Range_Name As String
Dim I As Integer, n As Integer
Dim Ans As Integer
Dim myComment As String '新規追加
Dim Colors As Integer '新規追加

ThisSheet_Name = ActiveSheet.Name '設定シート

Select Case Workbooks.Count
Case 1
MsgBox "チェックするファイルがありません。"
Exit Sub
Case 2
For n = 1 To 2
If Workbooks(n).Name <> ThisWorkbook.Name Then
x = Workbooks(n).Name '開いている“もうひとつのブック”の名前
End If
Next
Case Else
MsgBox "他に開いているファイルが複数のため対象を特定できません。"
Exit Sub
End Select

I = 0

Do While (1)

With ThisWorkbook.Sheets(ThisSheet_Name)

If .Range("A3").Offset(I, 0).Value = "" Then
MsgBox "検査項目は以上です。"
ThisWorkbook.Activate
Exit Do 'A列の3行目以下が、空白なら終わる
End If

Sheet_Name = .Range("A3").Offset(I, 0).Value
Range_Name = .Range("B3").Offset(I, 0).Value
myComment = .Range("C3").Offset(I, 0).Value

End With

Windows(x).Activate
Sheets(Sheet_Name).Select
Range(Range_Name).Select
Colors = Selection.Interior.ColorIndex '新規追加
Selection.Interior.ColorIndex = 6

With Selection.AddComment
.Visible = True
.Text myComment
End With

Range(Range_Name).Select

Ans = MsgBox("「次をチェックしますか?」", vbYesNo)

Selection.Interior.ColorIndex = Colors '修正
Selection.ClearComments '新規追加

If Ans = vbYes Then
I = I + 1
Else
Exit Do
End If

Loop

End Sub

A 回答 (3件)

merlionXXです。



下から17行目も

Colors = Selection(1).Interior.ColorIndex '選択した1番目(結合セルの場合)の色

としたほうが無難ですね。
試したところ、結合セルが、結合してから着色するか、前もって結合させる全セルが同じ色になっていれば問題はないですが、着色しているセルとしていないセルが結合された場合はエラーになるようなのでその予防です。
    • good
    • 0
この回答へのお礼

merlionXXさんあがとうございました。締め切ったつもりでいてご回答いただいていたのに見過ごしていました。貴重なアドバイスのおかげでよりよいものになりました。

お礼日時:2007/04/13 21:48

With Selection.AddComment


        ↓
With ActiveCell.AddComment

だといかがでしょうか。
    • good
    • 0
この回答へのお礼

misatoannaさんこんにちは。解決できました。

お礼日時:2007/04/08 16:15

merlionXXです。


いろいろあるのねぇ。(笑)

下から15行目の
With Selection.AddComment
.Visible = True
.Text myComment
End With

を、

With Selection(1).AddComment'選択範囲の1番目にコメント
.Visible = True
.Text myComment
End With

に変えてみて。
    • good
    • 0
この回答へのお礼

何度も申し訳ございませんでした。うまくいきました。(汗、、、)

お礼日時:2007/04/08 16:14

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