• ベストアンサー

Excel VBAで…。

データーシート(1)のデータをレイアウトシート(2)に転記するのに 例えば sheets(1).range("A1").value=sheets(2).range("C5").value sheets(1).range("B1").value=sheets(2).range("C6").value sheets(1).range("C1").value=sheets(2).range("C7").value と言うように配置しているのですが もし、シート(1)セルB1の値が空白ならば シート(1)セルC1の値はシート(2)のセルC6に配置・・・ と言うように データがない場合は、転記後の配置は詰めて配置したいのです。 どうすればよろしいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 > データーシート(1)のデータをレイアウトシート(2)に転記するのに >sheets(1).range("A1").value=sheets(2).range("C5").value それなら、右辺と左辺が逆ではありませんか? Sub TestSample1() Dim c As Range Dim i As Integer With Worksheets("Sheet1") For Each c In Range(.Cells(1, 1), .Cells(1, 256).End(xlToLeft))  If c.Value <> "" Then    Worksheets("Sheet2").Range("C5").Offset(i).Value = c.Value    i = i + 1  End If Next c End With End Sub

fk_sap
質問者

お礼

Wendy02さん、いつもいつも迅速かつ的確なご回答、本当にありがとうございます! ほんとですね、右辺と左辺が逆 (>_<) 急いでたので…(完全な言い訳) 教えて頂いた内容で、完璧にできました! Wendy02さんからしてみたら 「こんなこと、どぉーしてわからないのぉ???」ってレベルのことなんでしょうかねー? 右も左もわからない私にとっては、本当に頼りにさせて頂いております。 もしよろしければ、今後共宜しく面倒見てやって下さいませ!

その他の回答 (2)

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.3

これでいかがでしょうか? Sub test1() Dim DATA As Variant Dim C As Range Dim count As Integer Set DATA = Sheets(1).Range("A1:C1") count = 5 For Each C In DATA If C.Value <> "" Then Sheets(2).Cells(count, 3) = C.Value count = count + 1 End If Next End Sub

fk_sap
質問者

お礼

素早いご回答ありがとうございました。 質問の説明が不十分でしたが、 シート(1)のデータの行数は固定ではないので No.1さんに教えて頂いた方法でやることにしました。 hana-hana3さんに教えて頂いた方法でも、アレンジすればできるのでしょうけど、横着をしてしまいました。 1つの結果に到達するのにも色んな方法があるんでねー。 勉強になりました。 ありがとうございました。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

サンプル(Sheet2!C5:C20の内容をSheet1!A1:T1に転記) Sub SetCell() Dim X, I As Integer For I = 5 To 20 If Sheets("Sheet2").Cells(I, 3) = "" Then GoTo NextNo X = X + 1 Sheets("Sheet1").Cells(1, X) = Sheets("Sheet2").Cells(I, 3) NextNo: Next I End Sub

fk_sap
質問者

お礼

素早いご回答ありがとうございました。 質問の説明が不十分でしたが、 シート(1)のデータの行数は固定ではないので No.1さんに教えて頂いた方法でやることにしました。 mshr1962さんに教えて頂いた方法でも、アレンジすればできるのでしょうけど、横着をしてしまいました。 1つの結果に到達するのにも色んな方法があるんでねー。 勉強になりました。 ありがとうございました。