- ベストアンサー
Excel-VBA コメントの書式設定
- コメントの書式設定をExcel-VBAで行いたいと思います。
- 実行時エラー'438'が発生してしまいます。
- 正常に動作するソースコードの事例を教えていただきたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
書式等の変更は、 先ず、追加したコメントを「表示」し、 表示した「コメント枠」を選択してから行いますが マクロ記録ではそこら辺りが記録されないようですね。 で、●以下2行を追加。 '------------------------------------------- Sub Macro1() Range("A2").Select Range("A2").AddComment Range("A2").Comment.Visible = False Range("A2").Comment.Text Text:="コメント" & Chr(10) & "今日は良いお天気ですね。" '●ここでコメントを表示&コメント枠を選択する Range("A2").Comment.Visible = True Range("A2").Comment.Shape.Select True '▽次で実行エラーが起きる!? Selection.ShapeRange.ScaleWidth 1.58, msoFalse, msoScaleFromTopLeft Selection.ShapeRange.ScaleHeight 1.49, msoFalse, msoScaleFromTopLeft Selection.ShapeRange.Fill.Visible = msoTrue Selection.ShapeRange.Fill.Solid '------------------------------------------------------- ■コメントに限らずマクロ記録ではたまにこういうことがあります。 以上です。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
SelectionがA2を選択したままになっているようだ。 Comment のShapeを掴んで下記のようにやるとうまく行くようだ。 この掴むというコードがマクロの記録で抜け落ちて入るようだ。 SelectionがA2を選択したままの証拠か? 下記の中で With Selection.Comment.Shape .ScaleWidth 3, msoFalse, msoScaleFromTopLeft End With でもうまく行くようだ。 ーー Sub test04() Range("A2").Select Range("A2").ClearComments 'テストのため入れるもの Range("A2").AddComment Range("A2").Comment.Visible = True Range("A2").Comment.Text Text:="コメント" & Chr(10) & "今日は良いお天気ですね。" With Range("A2").Comment.Shape .ScaleWidth 0.5, msoFalse, msoScaleFromTopLeft End With End Sub
お礼
非力ながら評価していて「掴む」の意味合いを何とか理解しました。 それと、次の書き方も試行錯誤の結果やっとの思いで成功しました。 With Selection.Comment.Shape .ScaleWidth 3, msoFalse, msoScaleFromTopLeft End With お陰様でスッキリとした記述形式に改善できました。 この度は丁重な回答どうも有り難うございました。
お礼
●以下2行を追加すること「実行エラー」…解消。 非力な私にはマクロ記録されない部分が有るのにはまいりました。 この度は早々の回答どうも有り難うございました。