• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:転記について教えてください)

Worksheet転記の方法についての質問

このQ&Aのポイント
  • Worksheetのデータを転記する方法について教えてください。
  • 現在のコードではA12からJ12までのデータを転記することができますが、順番に右に転記する方法が分かりません。
  • 正しい方法や他のアプローチがあれば教えていただきたいです。

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

  • ベストアンサー
回答No.4

こーゆー事? Sub Test() Dim A As Range Dim I As Range Dim J As Long Set A = Worksheets("Sheet1").[A12:J34] For Each I In A J = J + 1 Worksheets("Sheet2").Cells(1,J).Value = I.value Next I End Sub シート2は1行目しか使わず、横に横にズラズラッと並べていくという事ですよね? ところで、変数名は、もう少し工夫して、パッと見てすぐに何の変数だか分かるような名前を付けた方が良いです。

quindecillion
質問者

お礼

希望通りの実行結果になりました。 説明不足で申し分けありませんでした。 後は実行の度に最終行に追加ですが、こちらは頑張ってみます。 変数名についても考えて行きたいと思います。 この度はありがとうございました。

その他の回答 (4)

回答No.5

!失礼、変なところで改行されてしまいました。 Set A=の後の改行は無しで。

quindecillion
質問者

お礼

コピペしたときに変な改行は入ってなかったのでそのまま実行できました。 この度はありがとうございました。

回答No.3

何故、指定範囲のデータを「わざわざ1つ1つ」FOR~NEXTループを使って取り出しているのか、理由が分かりませんが…。 転記したいだけなら、 Worksheets("Sheet1").[A12:J34].Copy Worksheets("Sheet2").[A1].PasteSpecial で出来ますが、そういう事ではないんでしょうか?

quindecillion
質問者

お礼

意味不明な質問に対して御回答頂きありがとうございます。

quindecillion
質問者

補足

ご連絡が遅くなり申し分けありません。 説明の仕方が下手で申し分けありませんでした。 先の回答者様の補足にもう少し詳しく書かせて頂きました。 単純に全ての値の転記ではなく、シート1のA12はシート2のA1 シート1のA13はシート2のK1としていきたいと考えております。 ご呈示頂いた方法は全てのコピーですので望んでいたものと違っております。 単純転記ではありませんのでご了承ください。 説明不足が招いた結果だと思いますが、今一度ご教授頂ければ幸いです。

noname#203218
noname#203218
回答No.2

シート1のA12~J34のデータをシート2のA1~J23に転記したい。という趣旨と解釈しました。 作られたコードを修正するとすると、Sub test()のようになります。ワークシート2のfor~nextにFor i = 12 To 34を追加し、 Worksheets(2).Cells(i - 11, j) = A(i, j)とするだけです。 変数Aを使用する事なっていますが、今回のケースでは変数は無くても転記は可能で、sub test2()のようになります。 変数の宣言を配列Aしかしていませんが、変数i,jも必ず宣言するようにしましょう。 Sub test() Dim A(34, 10) As Integer Dim i, j As long For i = 12 To 34 '大文字なのは小文字にしてもなぜか治らなくなったからです For j = 1 To 10 A(i, j) = Worksheets(1).Cells(i, j) Next j '初心者なのでどのnextか分かるように一応書いています Next i For i = 12 To 34 For j = 1 To 10 Worksheets(2).Cells(i - 11, j) = A(i, j) Next j Next End Sub Sub test2() Dim i, j As long For i = 12 To 34 '大文字なのは小文字にしてもなぜか治らなくなったからです For j = 1 To 10 Worksheets(2).Cells(i - 11, j) = Worksheets(1).Cells(i, j).Value Next j '初心者なのでどのnextか分かるように一応書いています Next i End Sub

quindecillion
質問者

お礼

意味不明な質問に対して御回答頂きありがとうございます。

quindecillion
質問者

補足

ご連絡が遅くなり申し分けありません。 説明の仕方が下手で申し分けありませんでした。 先の回答者様の補足にもう少し詳しく書かせて頂きました。 単純に全ての値の転記ではなく、シート1のA12はシート2のA1 シート1のA13はシート2のK1としていきたいと考えております。 ご呈示頂いた方法は全てのコピーですので望んでいたものと違っております。説明不足が招いた結果だと思いますが、今一度ご教授頂ければ幸いです。

  • karorumon
  • ベストアンサー率26% (25/94)
回答No.1

んー・・・ Range("B5").Select というのと、 Cells(5, 2).Select というのは同じ場所を指しています。 Cells(行,列)という意味です。 なので、縦にどんどん転記していきたいのなら、行をカウントアップすれば良いですし、 列をどんどんずらして右に転記していきたいのなら、列をカウントアップすれば良いと思います。 ちょっとコードの見方がわかりにくいので、 実際どういった動作をさせたいのか 文章にて書いていただけると助かります。(A1にあるものをB1に転記して・・・など)

quindecillion
質問者

お礼

意味不明な質問に対して御回答頂きありがとうございます。

quindecillion
質問者

補足

ご連絡が遅くなり申し分けありません。 説明の仕方が下手で申し分けありませんでした。 シート1のA12~J12をシート2のA1~J1へ シート1のA13~J13をシート2のK1~T1へ シート1のA14~J14をシート2のU1~AD1へ  細かく書くと(左側シート1、右側シート2)   A12はA1   B12はB1   C12はC1   D12はD1   繰り返しで   J12はJ1   A13はK1   B13はL1   C13はM1    以下同様にシート1はA34~J34までです。 シート2はどこまで行くかわかりませんがXFDまであるので入るのでは無いかと思っています。 非常にわかりにくい説明で申し訳ありませんが、ご理解頂ければ幸いです。

関連するQ&A