戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
コメントの編集をするには?

    [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


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [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/

      マナさん ありがとうございます。

      思い描いたとおりに動きました!!

      標準モジュールばかり焦点をあててましたが
      シートモジュールの部分を変更するだけで
      問題解決するとは…。流石です。

      この度は、大変お世話になりました。



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G