- ベストアンサー
EXCELのマクロがわかりません
- 現在、A列にデータが並んでいるのですが、これを7つ区切りにして、別シートに行列を入れ替えて貼り付けるマクロを作っているのですが、VBは素人でわかりません。
- 作成したマクロは、元データセルのA1からA7までをコピーして、作成データセルのB2を起点として、コピーした内容の行列入れ替えを行い貼り付け、元データのコピー範囲を7つづつ下にずらし、作成データの貼り付け起点を1つづつ下にずらして、元データのA列の最後まで繰り返すものです。
- Range文で引っかかってしまうので、構文的におかしいかわかりません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。KenKen_SP です。 こんな感じでできますけど、行列の入れ替えに時間がかかるので 処理速度はかなり遅いですね、、 処理件数が膨大で、転記するのは値だけなら配列を使うと早く なりそうです。取り合えず。 Sub Sample() Dim SH1 As Worksheet Dim SH2 As Worksheet Dim rngTARGET As Range Dim i As Long Set SH1 = ThisWorkbook.Sheets("元データ") Set SH2 = ThisWorkbook.Sheets("作成データ") Application.ScreenUpdating = False i = 1 Set rngTARGET = SH1.Range("A1:A7") Do rngTARGET.Copy SH2.Cells(i, "B").PasteSpecial Transpose:=True Set rngTARGET = rngTARGET.Offset(7) i = i + 1 Loop Until rngTARGET.Cells(1, 1).Value = "" Set rngTARGET = Nothing Set SH1 = Nothing Set SH2 = Nothing End Sub
その他の回答 (1)
- KenKen_SP
- ベストアンサー率62% (785/1258)
こんにちは。KenKen_SP です。 > Range("開始セル番号:終了セル番号").Select 詳しく見てませんが、取り合えず文法が違います。 Range(開始セル番号 & ":" & 終了セル番号).Select としてみては?
お礼
ありがとうございます! なにぶん、VBを知らないもので、 基本的な文法も怪しいのです・・・ ご指摘ありがとうございました!
お礼
今テストしたら出来ました! ありがとうございました!