コメントの編集をするには? | |
---|---|
[195745] コメントの編集をするには?- ■親トピック/記事引用/メール受信=OFF■ □投稿者/ チューリップ -(2023/05/27(21:41)) □U R L/ A列からAB列で700行ののデータベースで、ある行の内容を確認する時、 横にスクロールしなければならないというデメリットがあります。 そこで、A列をクリックすると、Q列〜AB列の内容をコメントで表示させる コードを作成しました。しかし、このままでは字が小さく見づらいです。 フォントサイズの設定や、コメントの位置を変更するコードを 追記したのですがエラーになりました。 どこがいけないのかわかりません。 ご教授、よろしくお願いいたします。 Sub setComment(r As Long) Dim c As Long '列のカウンタ Dim LastCol As Long '最終列 Dim cmt As String 'コメント LastCol = Cells(4, Columns.Count).End(xlToLeft).Column '開始行4行目の最終列を求める For c = 17 To LastCol '表示する範囲 Q列から最終列 If c = 17 Then cmt = Cells(4, c).Value & ":" & Cells(r, c).Value Else cmt = cmt & vbCrLf & _ Cells(4, c).Value & ":" & Cells(r, c).Value End If Next c With Cells(r, "A") .ClearComments 'コメントがすでに入っていたら削除 .AddComment(cmt).Shape.TextFrame.AutoSize = True 'コメントの大きさを自動調整 ' .AddComment(cmt).Shape.TextFrame.Characters.Font.Size = 12 'コメントのフォントサイズ ' .AddComment(cmt).Shape.Left = .Offset(, 4).Left 'コメントの左端を設定 End With End Sub ※コメントブロックを解除するとエラーになります。 ↓デーベースのシートに記入 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Row >= 4 And Target.Column = 1 Then If Cells(Target.Row, 1).Value <> "" Then Call setComment(Target.Row) Else Cells(Target.Row, 1).ClearComments End If End If End Sub この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
[195746] Re[1]: コメントの編集をするには?- ■記事引用/メール受信=OFF■ □投稿者/ 半平太 -(2023/05/28(15:42)) □U R L/ > With Cells(r, "A") > .ClearComments 'コメントがすでに入っていたら削除 > .AddComment(cmt).Shape.TextFrame.AutoSize = True 'コメントの大きさを自動調整 >' .AddComment(cmt).Shape.TextFrame.Characters.Font.Size = 12 'コメントのフォントサイズ >' .AddComment(cmt).Shape.Left = .Offset(, 4).Left 'コメントの左端を設定 > > End With こんな事かな? With Cells(r, "A") .ClearComments 'コメントがすでに入っていたら削除 With .AddComment(cmt).Shape .TextFrame.AutoSize = True 'コメントの大きさを自動調整 .TextFrame.Characters.Font.Size = 12 'コメントのフォントサイズ .Left = ActiveCell.Offset(, 4).Left 'コメントの左端を設定 ActiveCell.Comment.Visible = True End With End With |
[195747] Re[2]: コメントの編集をするには?- ■記事引用/メール受信=OFF■ □投稿者/ チューリップ -(2023/05/28(17:25)) □U R L/ 半平太さん、ありがとうございます。 with〜end withの中にさらに.AddComment(cmt).Shapeをwith〜end withで 囲むとは…。「凄い」としか言いようがありません。 エラーにはなりませんでしたが、この状態ではコメントが表示されたままで 画面上に残ってしまいます。 最後の「ActiveCell.Comment.Visible = True」を非コメントにしたら セルをクリックした時のみ、コメントが表示され「解決した!!」と 思ったのもつかの間。 .Left = ActiveCell.Offset(, 4).Left 'コメントの左端を設定 この条件が満たされません。 .ActiveCell を削除したら、エラーになってしまいます。 大変申し訳ありませんが、あと少しご教授頂ければ幸いです。 |
[195748] Re[3]: コメントの編集をするには?- ■記事引用/メール受信=OFF■ □投稿者/ 半平太 -(2023/05/28(19:24)) □U R L/ >最後の「ActiveCell.Comment.Visible = True」を非コメントにしたら >セルをクリックした時のみ、コメントが表示され「解決した!!」と >思ったのもつかの間。 >.Left = ActiveCell.Offset(, 4).Left 'コメントの左端を設定 >この条件が満たされません。 多分、それは仕方ない事ではないかと思うのですが、 何か策があるかも知れませんので、識者のレスをお待ちください。 |
[195749] Re[4]: コメントの編集をするには?- ■記事引用/メール受信=OFF■ □投稿者/ チューリップ -(2023/05/28(20:21)) □U R L/ 半平太さん、ありがとうございます。 やはり難しい案件ですかね…。 しばらく、他の方のレスを待つとします。 |
[195750] Re[3]: コメントの編集をするには?- ■記事引用/メール受信=OFF■ □投稿者/ マナ -(2023/05/28(20:35)) □U R L/ >.Left = ActiveCell.Offset(, 4).Left 'コメントの左端を設定 >この条件が満たされません。 > どういう意味でしょうか? > > > |
[195751] Re[4]: コメントの編集をするには?- ■記事引用/メール受信=OFF■ □投稿者/ チューリップ -(2023/05/28(21:59)) □U R L/ マナさん、ありがとうございます。 >.Left = ActiveCell.Offset(, 4).Left 'コメントの左端を設定 >この条件が満たされません。 >どういう意味でしょうか? コメントの左端の位置を設定するコードです。 このコードでコメントの左端の位置をD列に表示させるという事です。 |
[195752] Re[5]: コメントの編集をするには?- ■記事引用/メール受信=OFF■ □投稿者/ マナ -(2023/05/28(22:23)) □U R L/ >.Left = ActiveCell.Offset(, 4).Left 'コメントの左端を設定 これだと、どういう点が問題なのでしょうか。 |
[195753] Re[6]: コメントの編集をするには?- ■記事引用/メール受信=OFF■ □投稿者/ チューリップ -(2023/05/28(22:37)) □U R L/ マナさん、回答ありがとうございます。 以下、コードをUPします。 Sub setComment(r As Long) '自動メモ追加機能 Dim c As Long '列のカウンタ Dim LastCol As Long '最終列 Dim cmt As String 'コメント LastCol = Cells(4, Columns.Count).End(xlToLeft).Column '開始行4行目の最終列を求める For c = 17 To LastCol '表示する範囲 Q列から最終列 If c = 17 Then cmt = Cells(4, c).Value & ":" & Cells(r, c).Value Else cmt = cmt & vbCrLf & _ Cells(4, c).Value & ":" & Cells(r, c).Value End If Next c With Cells(r, "A") .ClearComments 'コメントがすでに入っていたら削除 With .AddComment(cmt).Shape .TextFrame.AutoSize = True 'コメントの大きさを自動調整 .TextFrame.Characters.Font.Size = 12 'コメントのフォントサイズ .Left = ActiveCell.Offset(, 5).Left 'コメントの左端の位置を変更 End With End With End Sub ↓デーベースのシートに記入 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Row >= 4 And Target.Column = 1 Then If Cells(Target.Row, 1).Value <> "" Then Call setComment(Target.Row) Else Cells(Target.Row, 1).ClearComments End If End If End Sub このコードでは、文字サイズの問題は解決しましたが、コメントの位置が A列の近くに表示されたままです。 意図的に、表示位置を変更することが出来ません。 この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
[195754] Re[7]: コメントの編集をするには?- ■記事引用/メール受信=OFF■ □投稿者/ マナ -(2023/05/28(23:24)) □U R L/ 毎回、A列のコメントを全部削除して Private Sub Worksheet_SelectionChange(ByVal Target As Range) Columns("A").ClearComments If Target.Row >= 4 And Target.Column = 1 Then If Cells(Target.Row, 1).Value <> "" Then Call setComment(Target.Row) ' Else ' Cells(Target.Row, 1).ClearComments そのうえで、↓を復活せてはどうでしょうか ActiveCell.Comment.Visible = True この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
[195755] Re[8]: コメントの編集をするには?- ■ / 記事引用/メール受信=OFF■ □投稿者/ チューリップ -(2023/05/29(12:34)) □U R L/ マナさん ありがとうございます。 思い描いたとおりに動きました!! 標準モジュールばかり焦点をあててましたが シートモジュールの部分を変更するだけで 問題解決するとは…。流石です。 この度は、大変お世話になりました。 |
このトピックに書きこむ |
---|