Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6095 / 13645 ツリー ←次へ | 前へ→

【47139】チェックが入っているセルのデータを選択してコピーしたい。 カド 07/3/2(金) 8:20 質問[未読]
【47140】Re:チェックが入っているセルのデータを選... ぴかる 07/3/2(金) 9:01 発言[未読]
【47141】Re:チェックが入っているセルのデータを選... カド 07/3/2(金) 9:15 質問[未読]
【47149】Re:チェックが入っているセルのデータを選... Kein 07/3/2(金) 14:00 回答[未読]
【47169】Re:チェックが入っているセルのデータを選... [名前なし] 07/3/2(金) 20:02 お礼[未読]
【47171】Re:チェックが入っているセルのデータを選... Kein 07/3/2(金) 21:02 発言[未読]
【47199】Re:チェックが入っているセルのデータを選... カド 07/3/5(月) 7:49 お礼[未読]
【47252】Re:チェックが入っているセルのデータを選... koshimizu 07/3/6(火) 11:19 質問[未読]
【47142】Re:チェックが入っているセルのデータを選... りん 07/3/2(金) 9:15 回答[未読]
【47143】Re:チェックが入っているセルのデータを選... カド 07/3/2(金) 9:54 質問[未読]
【47144】Re:チェックが入っているセルのデータを選... りん 07/3/2(金) 10:31 発言[未読]
【47168】Re:チェックが入っているセルのデータを選... [名前なし] 07/3/2(金) 19:55 お礼[未読]

【47139】チェックが入っているセルのデータを選択...
質問  カド  - 07/3/2(金) 8:20 -

引用なし
パスワード
   下記のように、B列に1と有ったら、
セルD1とD4とD6を選択して、コピーしたいのです。

どのようにすれば良いか教えてください。
よろしくお願いします。


   B   C   D     E D

1  1       ABC  
2          GGT  
3          R54
4  1       LKI
5          KOJIUH
6  1       345
7          DRT
8          DRE

【47140】Re:チェックが入っているセルのデータを...
発言  ぴかる  - 07/3/2(金) 9:01 -

引用なし
パスワード
   カドさん、おはようさんです。

少し選択の部分があいまいの様な気がします。1ヶずつなのか?飛び飛びをまとめてなのか?
そして貼り付け方法は? 具体的なコメントを追加された方がいいかもしれませんね。
私は回答する事が出来ませんが・・・

【47141】Re:チェックが入っているセルのデータを...
質問  カド  - 07/3/2(金) 9:15 -

引用なし
パスワード
   ぴかる さん 回答ありがとうございます。

>少し選択の部分があいまいの様な気がします。1ヶずつなのか?飛び飛びをまとめてなのか?

まとめてコピーしたいです。

>そして貼り付け方法は? 

貼付け方法は気にしなくて良いです。
クリップボードに遅れていればいいです。

【47142】Re:チェックが入っているセルのデータを...
回答  りん E-MAIL  - 07/3/2(金) 9:15 -

引用なし
パスワード
   カド さん、おはようございます。
>下記のように、B列に1と有ったら、
>セルD1とD4とD6を選択して、コピーしたいのです。
選択はこんな感じですが、コピーしたいというのはどこへですか?
実際にコピーするときは、
 (コピー元セル範囲).Copy Destination:=(貼付先セル範囲)
でできますので、選択は不要です。

Sub test()
  '
  Dim r1 As Range, r2 As Range, r3 As Range
  '現在アクティブなシートが対象
  With Application.ActiveSheet
   Set r1 = Application.Intersect(Columns("b:b"), UsedRange)
  End With
  '内容をチェックして選択準備
  For Each r2 In r1
   If r2.Value = 1 Then
     If r3 Is Nothing Then
      Set r3 = r2.Offset(0, 2) 'DはBの2列右
     Else
      Set r3 = Application.Union(r3, r2.Offset(0, 2)) 'Unionで範囲追加
     End If
   End If
  Next
  '
  If r3 Is Nothing Then
   MsgBox "該当セルなし", vbExclamation
  Else
   r3.Select
  End If
  Set r3 = Nothing: Set r1 = Nothing
End Sub

【47143】Re:チェックが入っているセルのデータを...
質問  カド  - 07/3/2(金) 9:54 -

引用なし
パスワード
   りん さん 回答ありがとうございます。

>選択はこんな感じですが、コピーしたいというのはどこへですか?
>実際にコピーするときは、
> (コピー元セル範囲).Copy Destination:=(貼付先セル範囲)
>でできますので、選択は不要です。

貼付けは別のアプリケーションにしますので、
クリップボードへコピーされていればいいです。


>   Set r1 = Application.Intersect(Columns("b:b"), UsedRange)

ここでエラーが出て止まってしまいます。
実行時エラー 424
オブジェクトが必要です。
と出ます。

【47144】Re:チェックが入っているセルのデータを...
発言  りん E-MAIL  - 07/3/2(金) 10:31 -

引用なし
パスワード
   カド さん、おはようございます。

>Sub test()
>  Dim r1 As Range, r2 As Range, r3 As Range
>  '現在アクティブなシートが対象
>  With Application.ActiveSheet
   Set r1 = Application.Intersect(.Columns("b:b"), .UsedRange)
>  End With
すみません。
点を打つのを忘れてました。

あと、

 r3.Seect → r3.Copy

でコピーします。

【47149】Re:チェックが入っているセルのデータを...
回答  Kein  - 07/3/2(金) 14:00 -

引用なし
パスワード
   Range("D1", Range("D65536").End(xlUp)).Offset(, -2) _
.SpecialCells(2, 1).EntireRow.Copy

で、どうでしょーか ? もしB列の数値が数式の計算結果なら

>SpecialCells(2, 1)


SpecialCells(3, 1)

に変更して下さい。

【47168】Re:チェックが入っているセルのデータを...
お礼  [名前なし]  - 07/3/2(金) 19:55 -

引用なし
パスワード
   りん さん 回答ありがとうございます。

>点を打つのを忘れてました。
自分で間違いを見つけようと思ったのですが、
どうしても分かりませんでしたが、点ですか。


もちろん、こんどはうまくいきました。

【47169】Re:チェックが入っているセルのデータを...
お礼  [名前なし]  - 07/3/2(金) 20:02 -

引用なし
パスワード
   Kein さん 回答ありがとうございます。

非常にシンプルですね。
コピーしたいセルの行ごと選ばれてしまいますので、
ちょっと求めていることとは違いますが、
あとは自分で工夫すればいいのかもしれないですね。

【47171】Re:チェックが入っているセルのデータを...
発言  Kein  - 07/3/2(金) 21:02 -

引用なし
パスワード
   あー・・そうでした。D列の値だけをコピーすればいいのですね。
それなら

With Range("D1", Range("D65536").End(xlUp))
  Intersect(.Offset(, -2).SpecialCells(2, 1).EntireRow, .Cells).Copy
End With

と、して下さい。

【47199】Re:チェックが入っているセルのデータを...
お礼  カド  - 07/3/5(月) 7:49 -

引用なし
パスワード
   Kein さん 回答ありがとうございます。
ばっちりうまく行きました。

【47252】Re:チェックが入っているセルのデータを...
質問  koshimizu  - 07/3/6(火) 11:19 -

引用なし
パスワード
   Kein さん
>Range("D1", Range("D65536").End(xlUp)).Offset(, -2) _
>.SpecialCells(2, 1).EntireRow.Copy
>
>で、どうでしょーか ? もしB列の数値が数式の計算結果なら
>
>>SpecialCells(2, 1)
>↓
>
>SpecialCells(3, 1)
>
>に変更して下さい。

Range("D1", Range("D65536").End(xlUp)).Offset(, -2)まではOKなのですが
SpecialCellsが?です
B列の数値が数式の計算結果ならSpecialCells(2, 1)と(3, 1)の違いがわかりません。また、B列が1であったらは、どこで指定しているのですか。
ヘルプを見てもさっぱりです。宜しくお願いします

6095 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free