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
No.3
- 回答日時:
merlionXXです。
下から17行目も
Colors = Selection(1).Interior.ColorIndex '選択した1番目(結合セルの場合)の色
としたほうが無難ですね。
試したところ、結合セルが、結合してから着色するか、前もって結合させる全セルが同じ色になっていれば問題はないですが、着色しているセルとしていないセルが結合された場合はエラーになるようなのでその予防です。
merlionXXさんあがとうございました。締め切ったつもりでいてご回答いただいていたのに見過ごしていました。貴重なアドバイスのおかげでよりよいものになりました。
No.2
- 回答日時:
With Selection.AddComment
↓
With ActiveCell.AddComment
だといかがでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル: セルの枠を超えて表示
-
エクセルで画像を透過させて画...
-
Excel countif関数で取り消し線...
-
セル内の一部の文字だけをハイ...
-
エクセルで1つのセルにスクロ...
-
Excelでcsvやtxtで保存する時に...
-
VBA:結合されたセルに対する「...
-
エクセルのIF関数で、文字が...
-
エクセルのセル内の語句がはみ...
-
セルの大きさを個別に変更したい。
-
エクセルで右隣のセルより優先...
-
エクセルの白黒の反転で困って...
-
エクセルのコメントで自動サイ...
-
エクセルの入力規則プルダウン...
-
エクセルで特定の列のセルだけ...
-
エクセルで文字間隔・行間隔の...
-
エクセルで下が切れて印刷される
-
マウスポインターが白十字のまま
-
エクセルのセルの網かけ
-
エクセルで文字を打つと下に、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル: セルの枠を超えて表示
-
Excel countif関数で取り消し線...
-
セル内の一部の文字だけをハイ...
-
エクセルの白黒の反転で困って...
-
セルは大きくさせず、中の文字...
-
マウスポインターが白十字のまま
-
エクセルファイルに _x000D_ と...
-
Excelでcsvやtxtで保存する時に...
-
エクセルで画像を透過させて画...
-
エクセルで1つのセルにスクロ...
-
エクセルでセルを上下に結合し...
-
エクセルの2つのセルを内容も消...
-
セルを結合しても、文字をセル...
-
エクセルで特定の列のセルだけ...
-
エクセルの入力規則プルダウン...
-
VBA:結合されたセルに対する「...
-
エクセルで右隣のセルより優先...
-
Excel入力で勝手にエンター押さ...
-
エクセル 折り返して全体を表...
-
エクセル2013で英単語を折り返...
おすすめ情報