• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAで任意の範囲内のセル2個ずつを総当りでコピー)

VBAを使用して任意の範囲内のセル2個ずつを総当りでコピーする方法

このQ&Aのポイント
  • VBAを使用して、任意の範囲内のセル2個ずつを総当りでコピーする方法についての質問です。
  • シートAのセル2個ずつをコピーしてシートBに貼り付けた後、シートBの計算結果をシートCに代入します。
  • 実際の作業では、シートAの列数が130以上になり、VBAの作業回数が8,000回以上になりますが、試行錯誤してもうまくいかないため、質問させていただきました。

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

ループの回し方に注意すれば簡単な話しですよ。 サンプルですのでエラー処理は行っていません。 Sub Sample()   Dim nTotal As Long   Dim i, j, nRow As Long   nTotal = Sheets("SheetA").Range("A1").End(xlToRight).Column   For i = 1 To (nTotal - 1)     For j = (i + 1) To nTotal       Sheets("SheetB").Range("A1") = Sheets("SheetA").Cells(1, i)       Sheets("SheetB").Range("B1") = Sheets("SheetA").Cells(1, j)          nRow = nRow + 1       Sheets("SheetC").Cells(nRow, 1) = Sheets("SheetB").Range("C1")       Sheets("SheetC").Cells(nRow, 2) = Sheets("SheetB").Range("D1")     Next j   Next i End Sub

ta147258
質問者

お礼

ありがとうございます! このままで目指してたの結果を出す事ができました。 この10日間、必要に迫られて本屋に通ったりネットで調べたり いろいろ教えてもらったりしたのですが、思うように行かず、 最後の望みをここに託しておりました。 mt2008さん、本当に感謝いたします! 今までVBAの知識は『0』だったのですが、今回試行錯誤してみたことで、 VBAは思ってた以上に様々な事が出来る、という事が解り、 今後も勉強を続けて行きたいと思っています。 ありがとうございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

問題の説明文が長く複雑で、計算式が入っている、などといっているが、判りにくい。VBAでも計算できるのでは。VBAに一本化しては。 コピーなどといっているが、セルの値(データ)を使っているだけのようだ。わざわざコピーなどといわない。 シートAの4行ぐらいの例を挙げて(今は1行しか書いてない、少なすぎる)、シートCのA列がどうなってほしいのか書いて質問したら。 どうせ総当りなら、For Nextのネストしかないでしょう。課題丸投げのようだが、少しやってみましたか。 シートCのA列とB列は同じ値ではないのか。であればA列だけの質問にては。 シートBも途中経過のようであるが、作る理由は。作るにしても(本題が出来れば自ずと判るから)質問しなくても良いのでは。 少し自分でやって、判らない点に質問を絞ること。

ta147258
質問者

補足

質問を読んでいただきありがとうございます。 全てをVBAに一本化できれば早いのかもしれませんが、私にVBAの知識が全くないので 後々他のデータを付け足す場合はシートBの中の関数だけをいじれば済むようにしたいのです。 シートAの1行目はそれぞれの地域のコード番号で、 2行目以下には地域の総人口や学童数、就業人口、年代別人口数、 年度別人口数など、75行のデータが入っており、 シートBのA1とB2にコード番号を入れることで、 シートBの2行目~75行目にシートAのデータが入るように関数を 入れてあります。 その地域データを使った今後の人口増減予測、交通事故率予測、 犯罪率推移予測等が、シートBのC1~S1に計算結果で 出るようになっており、それをシートCにまとめたいのです。 判りにくく申し訳ありません。

関連するQ&A