• 締切済み
  • 暇なときにでも

ExcelのVBAでシートを直接Selectする方法

次のようなVBAがあります。 For intAge = 6 To 11  Range(strBase & intAge).Select  Selection.Copy  Windows(strMasterName).Activate  Sheets(strBase).Select  Range(strBase & intAge & "_" & strNo).Select  Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, Blanks:= _   False, Transpose:=False  Windows(strFileName).Activate  Sheets(strBase).Select Next intAge 2つのファイルを開いていて、1つのファイルから別のファイルにデータを連続してコピーしています。 WindowsをActivateして、SheetsをSelectしてからRangeをSelectしているのですが、 直接、WindowsのSheetsのRangeをSelectする方法はないのでしょうか? Windows(strFileName).Sheets(strBase).Range(strBase & intAge).Select としたらエラーが発生してダメでした。 わかる方いらっしゃいましたら、よろしくお願いいたします。 (これで十分動いているのですが、もう少し、簡潔な文にしたいのです)

共感・応援の気持ちを伝えよう!

  • 回答数5
  • 閲覧数695
  • ありがとう数5

みんなの回答

  • 回答No.5
  • ebis
  • ベストアンサー率27% (17/61)

No.1で回答した者です。 値を入れたい場合、Valueプロパティを指定しますが RangeオブジェクトはデフォルトがValueですので無指定でよかったはずです。 気になったのは "_"& srtNo の部分ですが、これは必要でしょうか For intAge = 6 To 11 Workbooks(strMasterName).Worksheets(strBase).Range(strBase & intAge) = _ Workbooks(strFileName).Worksheets(strBase).Range(strBase & intAge) Next intAge これではダメでしょうか

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。 「"_"& srtNo 」の部分は、学校番号が入ります。 このVBAはFDで各学校からもらったデータをまとめるものです。 したがって、「"_"& srtNo 」の部分がないとどの学校の場所にコピーするのかわからなくなります。 また、私が作ったVBA(キーボードマクロの編集)でも、うまく動いていたので「"_"& srtNo 」が問題とは思えないのですが。 WorkbooksとWorksheetsをHelpで見たのですが、オブジェクトとプロパティがあり私には理解できませんでした。 ebisさんのを参考にいろいろ試してみようと思います。 ありがとうございます。

関連するQ&A

  • Excel vba selectが効かない

    2と3の2つのエクセルファイルがあります。縦の列を新しいファイルの横の行に コピーしていきたいプログラムです。 2のファイルの1シート目の"C8:C25" 3のファイルの1シート目の"C9:C65" を新しい1のファイルの1シート目の1行目にコピーするプログラムを 作っていますが1シート目はpasteされるのですが 3のファイル2シート目からselectの指定が"C9:C65"ではなく、B9からQ65の指定になってしまい思ったコピーができません(★のところ)、1シート目はうまくいっているのでどうして3のファイルの2シート目のからうまくいかないかわかりません。 5シートまででテストをしているのですが実際は各々255シートありもってくる列も 12列あります。とりあえずCの列だけ5シートで試してみています。 Dim i As Long Dim N As Long i = 1 N = 1 Do While i <= 5 ''C列''' Workbooks(2).Worksheets(i).Activate   '2のファイル Worksheets(i).Range("C8:C25").Select   'もってくるところ Selection.Copy Workbooks(1).Worksheets(1).Activate   '1新しいファイル Range("C" & N).Select   '貼り付けるところ Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks:=False, Transpose:=True Workbooks(3).Worksheets(i).Activate   '3のファイル Workbooks(3).Worksheets(i).Range("C9:C65").Select  '★もってくるところ Selection.Copy Workbooks(1).Worksheets(1).Activate   '1新しいファイル Range("U" & N).Select   '貼り付けるところ Selection.PasteSpecial Paste:=xlPasteValues, operation:=xlNone, skipblanks:=False, Transpose:=True i=i+1 N=N+1 LOOP

  • マクロについて教えてください

    マクロの超初心者です。 数式を入力しているのではなく、配付物をエクセルで作成しているのですが、同じもの(氏名や項目は違いますが)を100枚ほど作成しているのでマクロを・・・と思ったのですがやり方が全く分かりません。 sheet1からsheet2に下記のようにデータを写したいのですが、やり方を教えてください。 ●氏名が入力されています sheet1(A9) → sheet2(C2) sheet1(E9) → sheet2(C5) sheet1(I9) → sheet2(C8) ●項目1 sheet1(A8) → sheet2(E3) sheet1(E8) → sheet2(E6) sheet1(I8) → sheet2(E9) ●項目2 sheet1(A18~D18の結合セル) → sheet2(E2) sheet1(E18~H18の結合セル) → sheet2(E5) sheet1(I18~L18の結合セル) → sheet2(E8) と反映させたいのですが、250行あるのですが、 簡単にマクロで出来ないでしょうか?? ちなみに↓コレが上記の内容で作ってみたものです。 わかりずらい質問でスイマセン。 Range("A9").Select Selection.Copy Sheets("sheet2").Select Range("C2").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Sheets("sheet1").Select Range("E9").Select Application.CutCopyMode = False Selection.Copy Sheets("sheet2").Select Range("C5").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Sheets("sheet1").Select Range("I9").Select Application.CutCopyMode = False Selection.Copy Sheets("sheet2").Select Range("C8").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Sheets("sheet1").Select Range("A8").Select Application.CutCopyMode = False Selection.Copy Sheets("sheet2").Select Range("E3").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Sheets("sheet1").Select Range("E8").Select Application.CutCopyMode = False Selection.Copy Sheets("sheet2").Select Range("E6").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Sheets("sheet1").Select Range("I8").Select Application.CutCopyMode = False Selection.Copy Sheets("sheet2").Select Range("E9").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Sheets("sheet1").Select Range("A18:D18").Select Application.CutCopyMode = False Selection.Copy Sheets("sheet2").Select Range("E2").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Sheets("sheet1").Select Range("E18:H18").Select Application.CutCopyMode = False Selection.Copy Sheets("sheet2").Select Range("E5").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Sheets("sheet1").Select Range("I18:L18").Select Application.CutCopyMode = False Selection.Copy Sheets("sheet2").Select Range("E8").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False End Sub

  • エクセルマクロ 繰り返して、別のシートへコピーしたい

    エクセルマクロ 繰り返して、別のシートへコピーしたい マクロ初心者のため、やり方が全くわかりません。 どなたか教えてください。 やりたいことは、 コピーするシートはあらかじめ作成しています。 簡素化の方法がわからないので、 とりあえず自分で作ってみたものが下にあるものです。 繰り返す方法がわからないので、 どなたか教えてください。 よろしくお願いします。 以下、作成したマクロです。 1行目から10行目まで繰り返したくて、 1行目から2行目のセルの移動の差は10行目までかわりません。 '1行目 Sheets("Sheet1").Select Range("B14:C14").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Range("A1").Select Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False Sheets("Sheet1").Select Range("B15:C17").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Range("B1").Select Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False '2行目 Sheets("Sheet1").Select Range("B18:C18").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Range("A2").Select Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False Sheets("Sheet1").Select Range("B19:C21").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Range("B2").Select Range("B2").Select Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False

  • 回答No.4

簡略し過すぎたでしょうか・・・・ Windows(strFileName).Sheets(strBase).Range(strBase & intAge) = Workbooks(strMasterName).Sheets(strBase).Range(strBase & intAge & "_" & strNo).Text という意味だったのですが。。。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。 しかし、「438 オブジェクトは、このプロパティまたはメソッドをサポートしていません」というメッセージが出ました。 Windowsオブジェクト(プロパティ?)には入力時にでるプロパティ等のリストにSheetsの候補が出てきませんでした。 Windowsに関係ありそうなプロパティにActiveSheetというやつがありました。 2つのWindow上でアクティブなシート同士のコピーができそうです。 いろいろ試してみようと思います。 重ね重ねありがとうございます。

  • 回答No.3

値のコピーだけをしたいのであれば、 Range("A1") = Range("A2").Text でも可能なのですが、、、

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。 しかし、試してはいないのですが、上記の方法ですと、同じシート内でないとうまくいかない気がします。 私がやりたいのは、別のファイル(ブック)のデータをコピーするので、少なくとも、ファイル名とかを指定してやらなければならないと思います。 イメージは Hogehoge("ファイルA.xls").Range("A1")=Hogehoge("ファイルB.xls").Range("A2").Text という感じですが、(もちろん、Hogehogeには何かオブジェクトが入るのですが) うまく表現できなくてすみません。

  • 回答No.2

よくわかっておりませんが、、、間違っていたら失礼。。。 Selectionを使用しないで、そのまま対象を指定したらどうでしょうか? For intAge = 6 To 11 Windows(strFileName).Sheets(strBase).Range(strBase & intAge).Copy Workbooks(strMasterName).Sheets(strBase).Range(strBase & intAge & "_" & strNo).PasteSpecial xlValues, xlNone, False, False Next intAge

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。 ただ、「438 オブジェクトは、このプロパティまたはメソッドをサポートしていません」というメッセージが出ました。 実は、いろいろ試した結果、 Application.Goto Reference:=strBase & intAge Selection.copy Windows(strMasterName).Activate Application.Goto Reference:=strBase & intAge & "_" & strNo Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _  False, Transpose:=False としても動きました。(キーボードマクロからの編集です) この方が、前のより少し、文章が簡潔になりました。 (でも、もし、TAGOSAKU7さんのような方法ができたらもっと簡潔なのですが)

  • 回答No.1
  • ebis
  • ベストアンサー率27% (17/61)

自信はないのですが、これではだめでしょうか。 For intAge = 6 To 11 Workbooks(strMasterName).Worksheets(strBase).Range(strBase & intAge & "_" & srtNo) = _ Workbooks(strFileName).Worksheets(strBase).Range(strBase & intAge) Next intAge

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。 でも、「1004 アプリケーション定義またはオブジェクト定義のエラーです」というメッセージが出ました。(私が適当に設定した時のエラーと同じです) また、もし、このエラーが出なかったとしても、この方法では、そのままコピーされてしまうのではないのでしょうか? 実は、コピー元は計算式が入っていて、その結果だけをコピーするため、「値のコピー」を行っています。 私も、あまりよくわかっていないので、間違っているかもしれませんが。 とにかく、お答えいただいたことには感謝しています。

関連するQ&A

  • excel2000のVBAでループ内でループさせる方法

    excel2000でVBAを組んでいるのですが下記のような構文でループさせている中でループをさせたいのですがエラーメッセージ "Nextに対するForがありません"と出てしまいます。構文を以下に示しますので間違っている点をご指摘いただけたらと思います。 Dim h As Integer Dim I As Integer For h = 1 To 2 If h = 1 Then F_Name = "回送依頼(通常と翌月).xls" ElseIf h = 2 Then F_Name = "回送依頼(当日).xls" End If Windows(F_Name).Activate ActiveSheet.Unprotect For I = 1 To 2 'ループ内ループ If I = 1 Then S_Name = "通常" ElseIf I = 2 Then S_Name = "通常2" End If Sheets(S_Name).Activate Range("c7:i16").Select Selection.Copy Windows("請求書.xls").Activate Sheets("3").Select Selection.PasteSpecial Paste:=xlValues, _ Operation:=xlNone, SkipBlanks:=False, Transpose:=False Windows(F_Name).Activate ActiveSheet.Unprotect Sheets(S_Name).Activate Range("b7:b16").Select Selection.Copy Windows("請求書.xls").Activate Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False '値貼付 Next I ActiveWorkbook.Save ActiveWorkbook.Close Next h

  • マクロ教えてください(繰り返しの方法)

    マクロ、VBAは超初心者です。 Sheets("optimizer").Select Range("C7").Select Selection.Copy Range("E6").Select ActiveSheet.Paste SolverOk SetCell:="$F$34", MaxMinVal:=1, ValueOf:="0", ByChange:="$F$28:$O$28" SolverSolve Userfinish:=True Range("F28:Q28").Select Selection.Copy Sheets("table").Select Range("D7").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Sheets("optimizer").Select Range("C8").Select Selection.Copy Range("E6").Select ActiveSheet.Paste SolverOk SetCell:="$F$34", MaxMinVal:=1, ValueOf:="0", ByChange:="$F$28:$O$28" SolverSolve Userfinish:=True Range("F28:Q28").Select Selection.Copy Sheets("table").Select Range("D8").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False 上のように同じことを何回も繰り返すのですが、2行目の Range("C8").SelectがC9, C10, C11・・・・、また下から3行目の Range("D8").SelectがD9, D10, D11・・・と貼り付けていくところだけを変えていきたいのです。 今は長いプロシージャを書いているのですが、簡単でする方法があればご教授ください。 宜しくお願いいたします。

  • こんなマクロなんですが。

    下記のマクロでエクセルの表からデータ(文字列)を取得するようにしたいとおもっています。 Range("B23").Select Selection.Copy Range("F23").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Application.CutCopyMode = False Range("B24").Select Selection.Copy Range("F24").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Range("B25").Select Application.CutCopyMode = False Sheets("September 03").Copy Before:=Sheets(2)          ←ここ Selection.Copy Sheets("September 03 (2)").Select                   ←ここ Sheets("September 03 (2)").Name = "September 10"       ←ここ Range("B33").Select Application.CutCopyMode = False ActiveWindow.SmallScroll Down:=-15 Range("F12:L18").SelectEnd Sub と、まだ続くんですが、とりあえずここまでで。 番地のデータを取り込むようにしたいんですが、うまくいきません。 ←ここ っていうのがまさにそれです。

  • Excelでマクロを繰り返したい。

    Excelでマクロを記録したら以下のようになりました このマクロを以下の条件で繰り返したいのですが。 Sub Macro1() '------------- '----------------------- ' Sheets("Sheet1").Select Selection.AutoFilter Field:=4, Criteria1:="=5*", Operator:=xlAnd, _ Criteria2:="<>5@*" Range("A3:A302").Select Selection.Copy Sheets("Sheet2").Select Range("A3").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Sheet1").Select Range("A1").Select Selection.AutoFilter Field:=4, Criteria1:="=6*", Operator:=xlAnd, _ Criteria2:="<>6@*" Range("A3:A302").Select Selection.Copy Sheets("Sheet2").Select Range("B3").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Sheet1").Select Selection.AutoFilter Field:=4, Criteria1:="=7*", Operator:=xlAnd, _ Criteria2:="<>7@*" Range("A3:A302").Select Selection.Copy Sheets("Sheet2").Select Range("A103").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Sheet1").Select Range("A1").Select Selection.AutoFilter Field:=4, Criteria1:="=8*", Operator:=xlAnd, _ Criteria2:="<>8@*" Range("A3:A302").Select Selection.Copy Sheets("Sheet2").Select Range("B103").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub 条件= Field:は4~35位まで変動します 一連の動作をコピーして手作業で数字を変えてみたのですが プロージャが大きすぎてエラーになってしまいます。 何か良い方法は無いでしょうか?。

  • エクセルで複数ファイルからコピーをする。

    すみませんが、BOOK1に複数のファイルから部分的にコピーして貼り付けるという作業をしたいのですが、ど素人なもんでわかりません。マクロで記録したモノをいじってみてるのですが、根本的にコードが分かっていなくギブアップです。  やりたいことは、フォルダーの中の970305日報1、970305日報2、970306日報1、970306日報2のようなファイルが山ほどあるのですが、 この970305の日報1と2を開き、それぞれファイルの決まった列を順番にをBook1の行へ行列を入れ替えて貼りつけていき(1日が1行)保存して閉じてから、次の日970306のデータをBOOK1の2行目に貼り付けるということをしたいのですが、どなたか教えていただければ助かります。よろしくお願いします。 Sub Macro2() Dim MyFile As String, MyPath As String Dim wb As Workbook, tb As Workbook Set tb = ThisWorkbook MyPath = tb.Path & "\" MyFile = Dir(MyPath & "*.xls", vbNormal) Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Do While MyFile <> "" If MyFile <> tb.Name Then Set wb = Workbooks.Open(MyPath & MyFile) With ActiveSheet Windows("970305日報1.xls").Activate Range("B34:B38").Select Application.CutCopyMode = False Selection.Copy Windows("日報リスト.xls").Activate Range("C1").Select Selection.PasteSpecial Paste:=xlPasteAll,         Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True Windows("970305日報1.xls").Activate Range("C33:C38").Select Application.CutCopyMode = False Selection.Copy Windows("日報リスト.xls").Activate Range("H1").Select Selection.PasteSpecial Paste:=xlPasteAll,       Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True Application.CutCopyMode = False ActiveWorkbook.Save Windows("970305日報1.xls").Activate ActiveWindow.Close Windows("970305日報2.xls").Activate Range("B31:B36").Select Selection.Copy Windows("日報リスト.xls").Activate Range("N1").Select Selection.PasteSpecial Paste:=xlPasteAll,   Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True Windows("970305日報2.xls").Activate Range("D31:D36").Select Application.CutCopyMode = False Selection.Copy Windows("日報リスト.xls").Activate Range("T1").Select Selection.PasteSpecial Paste:=xlPasteAll,   Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True Application.CutCopyMode = False ActiveWorkbook.Save Windows("970305日報2.xls").Activate ActiveWindow.Close Windows("970306日報1.xls").Activate Range("B34:B38").Select Application.CutCopyMode = False Selection.Copy Windows("日報リスト.xls").Activate Range("C2").Select Selection.PasteSpecial Paste:=xlPasteAll,   Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True Windows("970306日報1.xls").Activate Range("C33:C38").Select Application.CutCopyMode = False Selection.Copy Windows("日報リスト.xls").Activate Range("H2").Select Selection.PasteSpecial Paste:=xlPasteAll,   Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True Application.CutCopyMode = False ActiveWorkbook.Save Windows("970306日報1.xls").Activate ActiveWindow.Close -----------------------------------------

  • エクセル VBA 各シートに貼り付け

    いつも皆様には大変お世話になっております。 表題に書いたようにコピーしたものを貼り付けしたいのですがうまく動きません。 Sheets("A").Select Range("B8:B38").Select Selection.Copy For Each sh In Worksheets If sh.Name <> "A" Then Range("B12:B42").Select Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Range("F38").Select ActiveWindow.SmallScroll Down:=-12 End If Next と言った様な構文を書いているのですが Aのファイル内のみでコピーして貼り付けをやってしまいます。 ちなみにシートはB,C,Dなど各種あります。 よろしくお願いいたします。

  • Excelの終了時に「クリップボードに…」を出なくする方法

    Aファイル上でBファイルを開いて、BファイルのデータをAファイルにコピーして、Bファイルを閉じるマクロ(VBA)を作っています。 しかし、Bファイルを閉じるとき「クリップボードにデータがあり、他のアプリケーションで使用する場合は…」とかいうメッセージが出ます。 他のアプリケーションで使う予定はないので、このメッセージを出さずにBファイルを閉じたいのですが、どなたかおわかりの方、教えてください。 ちなみに、マクロの最後の部分は次のようになっています。 Application.Goto Reference:=strName Selection.Copy Windows(strMasterName).Activate Application.Goto Reference:=strName & strNo Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Windows(strFileName).Activate Sheets(strBase).Select ActiveWindow.Close Windows(strMasterName).Activate Application.ScreenUpdating = True MsgBox "コピーが終了しました"

  • EXCEL VBAでコピーする時に四捨五入できますか?

    いつもお世話になります。 下記マクロを自動で作ったのですが、例えば(1)でセレクトした各セルには、0.1234567・・・といった、小数点以下10桁程度のデータが入っています。 これを(2)でペーストする時に、見た目だけではなく、データ自体を小数点以下3桁にしたい場合、何かよい方法はないものでしょうか? 宜しくお願いします。 (1)Range("T6:V10","T6:V10,AA6:AC10,AH6:AJ10").Select  Selection.Copy  Sheets("Data").Select  Range("D39").Select (2)Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= False, Transpose:=True

  • エクセルVBA での繰り返し処理について

    エクセルVBA での繰り返し処理について 以下の作業を20回繰り返そうとしています(別シートから持ってきた値を「行列を入れ替えて」貼り付け)    Sheets("初期設定").Select Range("A6:C6").Select Selection.Copy Sheets(TS).Select Range("B4").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=True   「初期設定」シートの方は1行ずつ並んでいるので、「2回目」の「2行目」は   「 Range("A7:C7").Select」になり、   「TS」シートの20行後に貼り付けたいので、「2回目」の「5行目」は   「Range("B24").Select」 になります   これを、for ~ next を使い、以下のようにしてみましたが、上手くいきません。    For j = 6 To 26 For k = 4 To 384 Step 20 Sheets("初期設定").Select Range(Cells(j, 1), Cells(j, 3)).Select Selection.Copy Sheets(TS).Select Cells(k, 2).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=True Next k Next j  1分程度ループし続けた後、「初期設定」シートの最終行だけが貼り付けられてしまいました。 どこをどのように直せばいいのかお教えください。 よろしくお願いいたします。

  • Excel 繰り返しマクロ

    下記のようなマクロを使ってn個あるシートの内容を「集計」シートにコピーさせるようにしました。 (自動マクロとの組合せなので、スマートではないかもしれませんが) でも、これだと「集計」シートもコピー作業を行ってしまうので、 「集計」シートはコピー作業をしないように除外したいのですが、どうしたら良いのでしょう? 実際にはシート数は30程度、コピペ項目は1シートあたり30項目程度あります。 よろしくお願いします。 ------------------------- Sub テスト2() ' For i = 1 To Worksheets.Count '案件番号等コピー ' Sheets(i).Select Range("D3").Select Application.CutCopyMode = False Selection.Copy Sheets("集計").Select Range("A4").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False '案件名 Sheets(i).Select Range("F3").Select Application.CutCopyMode = False Selection.Copy Sheets("集計").Select Range("B4").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False '国名 Sheets(i).Select Range("E3").Select Application.CutCopyMode = False Selection.Copy Sheets("集計").Select Range("C4").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False '選択セルの解放 Application.CutCopyMode = False '行挿入 ' Sheets("集計").Select Rows("4:4").Select Selection.Insert Shift:=xlDown Next i End Sub