• ベストアンサー

Excelのマクロを使ってコメントを表示させる

マクロを使ってセルにコメントを挿入したいのですが、どうしてもエラーが出て先に進めません。 エラー内容 実行時エラー:438 オブジェクトは、このプロパティまたはメソッドをサポートしていません。 【Excel2007 SP1】を使っています。 マクロに詳しい方、ご教授よろしくお願いします。

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

  • ベストアンサー
  • kmmk16
  • ベストアンサー率46% (32/69)
回答No.4

コードの頭に、 I40に既にコメントがあるか、ないかの判別を入れ あれば既存のコメントを消去するコード付け加えました If Not Range("I40").Comment Is Nothing Then Range("I40").ClearComments End If Range("I40").Select Range("I40").AddComment Range("I40").Comment.Visible = False Range("I40").Comment.Text Text:="aaaあああ" Range("I40").Comment.Shape.ScaleWidth 0.8, msoFalse, msoScaleFromTopLeft Range("I40").Comment.Shape.ScaleHeight 0.49, msoFalse, msoScaleFromTopLeft Application.DisplayCommentIndicator = xlCommentAndIndicator

omegadorai
質問者

お礼

ご回答ありがとうございます すごいです! 感動しました! ちょっとした工夫でできるってすごいですね♪ ありがとうございました。

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 コメントにあるところに新たに、AddComent すると、エラーになりますから、一旦、ClearComents が必要です。余計なものを省くと以下のようになります。 With Range("I40")  .ClearComents Set cmt = .AddComment With cmt  .Visible = False  .Text Text:="aaaあああ"  .Shape.DrawingObjects.ShapeRange.ScaleHeight 0.49, msoFalse, msoScaleFromTopLeft End With Set cmt = Nothing

omegadorai
質問者

お礼

ご回答ありがとうございます。 チャレンジしてましたがどうしてもうまくいきませんでした^^; ありがとうございました

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.2

Range("I40").Select Range("I40").AddComment Range("I40").Comment.Text Text:="aaaあああ" Range("I40").Comment.Shape.ScaleWidth 0.8, msoFalse, msoScaleFromTopLeft Range("I40").Comment.Shape.ScaleHeight 0.49, msoFalse, msoScaleFromTopLeft Range("I40").Comment.Visible = False Application.DisplayCommentIndicator = xlCommentAndIndicator Excel2000では、これでできました

omegadorai
質問者

お礼

ご回答ありがとうございます Excel2000ではできたのですね。 バージョンが違うと命令も変わってくることがわかりました。 ありがとうございました

  • m3_maki
  • ベストアンサー率64% (295/459)
回答No.1

> エラー内容 > 実行時エラー:438 > オブジェクトは、このプロパティまたはメソッドをサポートしていません。 で、どんなコードを書いたのですか?

omegadorai
質問者

補足

お返事ありがとうございます。   Range("I40").Select Range("I40").AddComment Range("I40").Comment.Visible = False Range("I40").Comment.Text Text:="aaaあああ" Selection.ShapeRange.ScaleWidth 0.8, msoFalse, msoScaleFromTopLeft Selection.ShapeRange.ScaleHeight 0.49, msoFalse, msoScaleFromTopLeft Application.DisplayCommentIndicator = xlCommentAndIndicator このような内容なのですが 2行目がいつも黄色くマーキングされてしまいます。

関連するQ&A

  • エクセル2003→2016変換でマクロ動かない?

    エクセル2003で動いたマクロが、エクセル2016に互換モードの変換でVerUPすると、マクロの途中でエラー停止してしまいます。 まず、 (1)実行時エラー'438' 「オブジェクトは、このプロパティまたはメソッドをサポートしていません」と表示され、 Worksheets("111111").SpinButton2.BackColor = &H8000000F で停止。 さらにそれをコメントアウトで、再実行すると次に (2) UserForm2.Show で停止。 それもコメントアウトで進めると、その後の処理がだいぶすっ飛ばされてしまったりしているのですが、どう直せばよいのか分かりません。 これらの状況で、原因がわかるでしょうか?

  • [ExcelVBA] objExcel.Sheetsのような感じで、objExcelのマクロを作動させたい

    objExcelにオブジェクトがある状態で、 objExcel.Sheets(1).cells(1,1) でセルの情報が取得できます。 これと同じような感じで、マクロを作動させることはできるのでしょうか? objExcel.Module1.マクロ名 を実行しても、 エラー'438' オブジェクトは、このプロパティまたはメソッドをサポートしていません。 となってしまいます。 取得済みのオブジェクトのマクロを作動させられれば どのような方法でもいいのですが。アドバイスいただけたら幸いです。

  • Excelのマクロ>セルにカーソルがあたったらコメントを表示する

    こんにちはtmgmです。 Excelのマクロについての質問です。 私はよくExcelでコメントを挿入します。コメントは(非表示の場合は)本来マウスカーソルが当たると表示されますが、これをマクロを使ってちょっと改造したいです。その改造したい内容というのは、”セルにカーソルが当たったときだけコメントを表示する”というものです。仕事がらプログラムを組むことが多く、マウスをあまり使いません。ですのでExcelのコメントをキーボード操作で確認したいというのが本来の目標です。 どなたかお分かりになる方、いらっしゃいましたらご返答宜しく御願いします。

  • Excel VBA : セルのコメントの書式設定をするマクロを教えて下さい。

    タイトルどおりですが、マクロの記録で生成されたスクリプトを実行してもエラーになってしまいます。 どう記述すれば良いのか、教えて下さい。 やりたいことは、次の設定の操作をVBAで行いたいです。 セルに既に設定されているコメントの書式設定の "プロパティ" タブの "オブジェクトの位置関係" を、"セルに合わせて移動するがサイズ変更はしない" に設定です。 つまり、セル毎に噴出しのように表示されるコメントの、その枠を右クリックして、"コメントの書式設定" で開くダイアログの設定を自動化したいです。 セル1つ分の設定マクロで十分です。 変更したいコメントがあまりにも多くて困っております。 よろしくお願い致します。

  • エクセルのコメントについて

    お世話になります。 仕事でエクセルを使用しており、たくさんのセルにコメントを挿入して作業をおります。行挿入や行削除を頻繁に行うのですが、挿入や削除を行うと、挿入や削除をしていない行のコメントの位置がずれていってしまいます。コメントの書式設定はプロパティで「セルに合わせて移動するが、大きさは変更しない」にしておりますが、行挿入等の処理をするとコメント位置が大幅にずれてしまいます。マクロは不勉強ながら理解できておりませんので、通常の操作で行挿入・削除されてもコメントがセルにくっついていくようにできませんでしょうか。ご教示お願いいたします。

  • マクロを使ってコメントを大量に挿入したい。Excel2002

    都市名が北から並んでいる表があり、各都市名にカーソルを合わせると各都市に応じたコメントが表示されるようにしたいです。表示させたいコメントの種類が5種類あり、塗りつぶし効果でコメントの背景に画像を表示させたりと、1つのコメントを作るのにちょっと手間がかかります。 少しでも手早くと思い、マクロの記録で手順を5パターン登録して、マクロの実行でコメントを表示させたいと考えております。でサンプルをひとつ作成し実行したのですがエラーになってしまいます。 (1)End with以降のselection.shaperange.fill~以降が駄目みたいで「オブジェクトはこのプロパティーまたはメソッドをサポートしていません」とエラーメッセージが表示されます。何がいけないのでしょうか? (2)G62のセルにコメントを挿入したいときのサンプルなんですが、G62だけじゃなくてどこのセルにでも対応できるようにしたいんですがどう書き直せば良いのでしょうか? 800字以内との規制があるみたいで関係ないと思われるエラー以降の部分を削除させて頂きました。何卒宜しくお願いいたします。 Sub Macro1() ' Macro1 Macro ' Range("G62").AddComment Range("G62").Comment.Visible = False Range("G62").Comment.Text Text:="" With Selection.Font .Name = "MS Pゴシック" .FontStyle = "太字" .Size = 9 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With Selection.ShapeRange.Fill.Transparency = 0# Selection.ShapeRange.Line.Weight = 0.75 Selection.ShapeRange.Line.DashStyle =     中略  End Sub

  • マクロエラー

    OFFICE2007を使い始めて間もないのですが、Excel2007では、なぜ2003のマクロがスムーズに働かないのか。特に、シートを変えて実行するマクロが、単純なはずでもいちいちプロパティやメソッドがひっかかる。お恥ずかしいのですが、お教えください。

  • エクセルVBA 現在のセルの4個上のセルの値

    こんにちは、 エクセルマクロの質問です。 イミディエイトウィンドウにて 現在のセルの4個上の値を表示しようと以下の文を入力したところエラーになりました。 ?cells(activecell.row-4,activecell.colum).value で 「実行時エラー 438 オブジェクトはこのプロパティまたまメソッドをサポートしてません。」 なぜでしょう? ?activecell.Row-4  ?activecell.colum はそれぞれ 正しく表示されます。

  • アクティブウィンドウの判定

    現在アクティブなウィンドウを判定し、電卓のウィンドウならマクロを実行させるというようなマクロを組みたいのですが、 If ActiveWindow.Value = ("電卓") Then これでは「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」となります。 どのように記述したら良いのでしょうか?ご教授よろしくお願いします。

  • excelマクロ実行エラーで原因が分からない

    複数行を選択して非表示にするマクロを組んでますが、PCによっては実行エラーがでるPCと出ないPCとで2通りで原因が分かりません。 Range( _ "11:11,17:17,23:23,29:29,35:35,41:41,55:55,67:67,73:73,79:79,85:85,91:91,111:111,117:117,123:123,129:129,135:135,141:141,147:147,153:153,159:159" _ ).Select Selection.EntireRow.Hidden = True 最後の行でエラーがでて 「実行時エラー'-2147417848(80010108): 'EntireRow’メソッドは失敗しました:’Range’オブジェクト」とでます。 また、実行したPCもWin-XP+EXCEL2003とVersionは同じです。 なぜ一方にはエラーがでるのか分かりません。どなたかヒントでもいただけないでしょうか?

専門家に質問してみよう