• ベストアンサー

エクセル マクロ 選択した複数シートにコメント挿入のやり方

はじめて質問させていただきます。 エクセルのマクロで選択された複数シートに順番に コメントを挿入する・・というのをしたいのですが うまくいきません。 "Exs.Range("A1").AddComment"の部分で 「実行時エラー:1004 アプリケーション定義またはオブジェクト定義のエラーです」 となってしまいます。 マクロの記録で試そうとも思ったのですが、 複数シートを選択すると、右クリックしても コメント挿入のメニューが表示されませんでした。 元々、複数シートへのコメント挿入はできないのでしょうか・・? ソースは以下です。 Sub Macro1() Dim Exs As Worksheet Dim sSheet As Long Dim i As Long '選択されたシート数を取得 sSheet = ActiveWindow.SelectedSheets.Count i = 1 '選択されたシート数分、A1セルにコメントをつけていく Do While i <= sSheet ActiveWindow.SelectedSheets.Item(i).Activate Set Exs = ActiveWorkbook.ActiveSheet Exs.Range("A1").ClearComments Exs.Range("A1").AddComment Exs.Range("A1").Comment.Visible = True Exs.Range("A1").Comment.Text Text:=Chr(10) & "てすとー" Exs.Range("A1").Select i = i + 1 Loop End Sub お解かりになる方いらっしゃいましたら、 なにとぞよろしくお願いいたします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

複数シートでもできるようです。Sheet4とSheet6うお指定しておいて 実行したら、Sheet4とSheet6のA1にコメント aaa が入りました。 Sub test01() Dim sh As Worksheet For Each sh In ActiveWindow.SelectedSheets MsgBox sh.Name sh.Select sh.Range("A1").ClearComments sh.Range("A1").AddComment Text:="aaa" Next sh End Sub

sumintyo
質問者

お礼

ご回答ありがとうございます。 シートをActiveではなくSelectにする必要があったのですね。 Excelオブジェクトの扱い方について勉強不足でした・・。 本当にありがとうございました。

その他の回答 (1)

  • pauNed
  • ベストアンサー率74% (129/173)
回答No.1

こんにちは。 >元々、複数シートへのコメント挿入は できないようですね。なので解除する必要があるようです。 Dim Exs As Worksheet Dim Clc As New Collection '■追加 Dim ci As Variant '■追加 '選択されたシートIndexをいったんCollectionに格納 For Each Exs In ActiveWindow.SelectedSheets Clc.Add Exs.Index Next Exs 'シートグループ解除 Sheets(1).Select '選択されたシート数分、A1セルにコメントをつけていく For Each ci In Clc With Sheets(ci).Range("A1") .ClearComments .AddComment.Text Text:=Chr(10) & "てすとー" End With Next ci な感じで。Collectionではなく、配列でもいいのでしょうけど。

sumintyo
質問者

お礼

早速のご回答ありがとうございます。 お礼が遅くなってしまって申し訳ありません。 上記の方法で実現できました。 選択シートを1シートづつActiveにするのではなく Selectにするのがポイント・・だったのですね。 本当にありがとうございました。

関連するQ&A

専門家に質問してみよう