質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

解決済

2回答

2818閲覧

【Excel】コメント一括抽出

退会済みユーザー

退会済みユーザー

総合スコア0

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2020/02/20 23:52

Excelのコメントを他のシートに書き出したいと考えてします。
一行だけ抽出するのは以下で出来ているのですが
ある程度の範囲(例えばJ15:AN232)を一括で抽出するには
どのようにすればいいでしょうか。


Sub コメント抽出()

Const C As Integer = 5 Const D As Integer = 9 Dim FR As Variant Dim LR As Variant Dim R As Variant FR = 3 LR = 300 Application.ScreenUpdating = False Application.Calculation = xlCalculationManual For R = FR To LR Cells(R, D).Value = Cells(R, C).NoteText Next R ActiveSheet.Range("A1").AutoFilter Field:=9, Criteria1:="<>" MsgBox "抽出しました" Application.ScreenUpdating = Ture Application.Calculation = xlCalculationAutomatic

End Sub

ご教授よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ttyp03

2020/02/21 00:24

抽出先はどこになりますか?現状のコードでは5列目を対象に9列目に書き出しているようですが。
退会済みユーザー

退会済みユーザー

2020/02/21 04:17

ありがとうございます。 別のシート(例えばシート名が「抽出」)の任意の範囲にしたいと考えています。
guest

回答2

0

Rangeを使って範囲指定すれば一括でコピー可能ですよ。
注意事項としてはコピー先もコピー元と同じ広さの範囲を指定する必要があります。
特に指定されてないのでコピー先は仮ですが。

VBA

1' A1形式 2Range("J300:AN517").Value = Range("J15:AN232").NoteText 3' Cells指定 4Range(Cells(300, 10), Cells(517, 40)).Value = Range(Cells(15, 10), Cells(232, 40)).NoteText

投稿2020/02/21 00:43

yureighost

総合スコア2183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/02/21 14:07

Range(Cells(15, 78), Cells(232, 109)).Value = Range(Cells(15, 10), Cells(232, 41)).NoteText で試しましたが抽出されないようです…。 何か過不足があるのでしょうか。
退会済みユーザー

退会済みユーザー

2020/02/21 14:42

ちなみに Range("E1:G3").Value = Range("A1:C3").NoteText でテストをすると「A1」のコメントのみが「A1:C3」に出力されます。
yureighost

2020/02/21 21:01

そのコード部分のみでテストされてますか? 別なところも含めているならその部分のソースを張り直してください。
退会済みユーザー

退会済みユーザー

2020/02/25 02:05

このコードのみでテストしています。 お手数をおかけして申し訳ありません。
yureighost

2020/02/25 09:14

こちらではこのコードでそう言った動作をしないので確認が難しいのですが。
guest

0

ベストアンサー

こんなコードでいかがでしょう
対象始点セルから終点までの範囲にあるコメントをすべてコメント貼り付け対象のセルA列に出力しB列にアドレスを貼り付けます。

VBA

1Sub test() 2対象シート = "Sheet1" 3コメント貼り付け対象 = "Sheet2" 4範囲始点 = "A1" 5範囲終点 = "X100" 6j = 0 7 8Application.ScreenUpdating = False 9Sheets(対象シート).Select 10For i = 0 To Range(範囲終点).Column 11 For x = 0 To Range(範囲終点).Row 12 If Range(範囲始点).Offset(x, i).NoteText <> "" Then 13 With Range(範囲始点) 14 Sheets(コメント貼り付け対象).Range("A1").Offset(j, 0) = .Offset(x, i).NoteText 15 Sheets(コメント貼り付け対象).Range("A1").Offset(j, 1) = .Offset(x, i).Address 16 End With 17 j = j + 1 18 End If 19 Next x 20Next i 21Application.ScreenUpdating = True 22Sheets(コメント貼り付け対象).Select 23 24End Sub 25

投稿2020/02/22 10:57

編集2020/02/22 11:15
abratani

総合スコア23

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/02/25 02:06

すばらしいです。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問