[[20190602141746]] 『コメントを一括で隣のセルの値としてコピペ』(てる) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『コメントを一括で隣のセルの値としてコピペ』(てる)

いつもお世話になっております。

A列にコメントが入っているセルがたくさんある場合、
これらをその右隣のB列のセルの値として表示させるには
どうしたらいいでしょうか?
出来れば一括で処理したいです。
よろしくお願いいたします。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


マクロを使うしかないように思います。
 Sub test()
    Dim r As Range
    Dim c As Range

    On Error Resume Next
    Set r = Columns(1).SpecialCells(xlCellTypeComments)
    On Error GoTo 0

    If r Is Nothing Then Exit Sub

    For Each c In r
        c.Offset(, 1).Value = c.Comment.Text
    Next

 End Sub

(マナ) 2019/06/02(日) 14:36


マナさん
ありがとうございました。
ただ、構文の意味も分からないまま使わせていただいたのですが、「実行時エラー’91’:
オブジェクト変数またはWithブロック変数が設定されていません」と言われてしまいます。
どうしたらいいのでしょうか???
(てる) 2019/06/02(日) 15:30

結合セルを使用していますか?

(マナ) 2019/06/02(日) 15:59


 こんにちは ^^ 横入り済みません、いつも勉強させていただいています。
当方のシステム環境は
WIN 10 HOME 1809
EXCEL 365 2016(買取ですが、最新バージョンがインストされる物です)
最近のアップデートでアイコンが緑の横縞模様に変わりました。^^;

 メニュー(リボン)挿入、コメント から設定したコメントは色も形状も下記コードで
設定したものとは違い、CTRL+SHIFT+O でも該当なし!で選択できません
また
Set r = Columns(1).SpecialCells(xlCellTypeComments)
はNothingが返ります。
Sub Sample3()
    If TypeName(ActiveCell.Comment) = "Nothing" Then
        ActiveCell.AddComment "これはコメントです"
    End If
End Sub
で作成された物ですとマナさんのコードが正常に作動いたします。
何か変わったのでしょうかね。。。詳細は解りません。ご報告まで
m(_ _)m
(隠居じーさん) 2019/06/02(日) 17:00

エラーがでているということは、従来タイプのコメントだと思いますが
実際はどうなのでしょうか。

新しいコメントは、今のとっころマクロで取得出来なさそうです。
https://stackoverflow.com/questions/54332281/checking-threaded-comments

(マナ) 2019/06/02(日) 18:32


 >>エラーがでているということは、従来タイプのコメントだと思いますが 
はい。
大いにあり得るかと思いますね。(ご本人に聞いてみないと解りませんが、)
自宅のエクセルを眺めてみたところ、従来の
コメントは【メモ】と名前を変えて存在していました。
まだ参考URLも無く、手探りの力技なので正しいかどうかは解りませんが
下記の様な感じで取得は出来ているようです、削除の場合は双方とも
レンジオブジェクト.ClearComments  で消えてくれたように思います。
外していましたらお許しを。。。m(_ _)m
処理対象シート名  Sheet1
 Option Explicit
Sub main()
    Dim i As Long
    Dim rr As Range
    With Worksheets("Sheet1")
      Set rr = Intersect(.UsedRange, .Columns(1))
        For i = 1 To rr.Rows.Count
            Select Case True
                Case TypeName(.Cells(i, 1).CommentThreaded) = "CommentThreaded"
                   .Cells(i, 2) = .Cells(i, 1).CommentThreaded.Text
                Case TypeName(.Cells(i, 1).Comment) = "Comment"
                   .Cells(i, 2) = .Cells(i, 1).NoteText
            End Select
        Next
    End With
    Set rr = Nothing
End Sub
(隠居じーさん) 2019/06/02(日) 19:24

あら、使えますか。
わたしは、365で最新の状態なのに
使用しているExcelバージョンではサポートされていません
となります?

(マナ) 2019/06/02(日) 19:33


大変遅くなってしまい、申し訳ありませんでした!!
確かにマナさんが仰るとおり、結合されているセルがありました。
これを解除したところ、教えていただいたVBAで処理できました。
ありがとうございました。
(てる) 2019/06/02(日) 21:02

解決されたようでよかったですね。 ^^
>>使用しているExcelバージョンではサポートされていません
そぉなのですね。。。ネットフレームワークのバージョンとか
関係するのでしょうか。最近のクラスですとアンマネージコードという
事も無いでしょうから。ちなみにヴィジュアルステュディオ2015
コミュニティ(無料版)。。。インストしてます。関係ないかもしれませんが
(隠居じーさん) 2019/06/02(日) 19:24 のコードで当方環境下では動いて
います、大変失礼いたしました。では

(隠居じーさん) 2019/06/02(日) 21:54


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.