エクセルマクロシートの集計

このQ&Aのポイント
  • エクセル・マクロを使用して、複数の単票と集計表を一致した行にデータを転記したい。
  • 単票の名称は「○課△係」で、シート数は2〜10程度で変動する。
  • 集計表は「集計」という名称の1シートで、単票から集計表へのデータ転記を繰り返して集計表を完成させたいが、エラーが出て実行できない。
回答を見る
  • ベストアンサー

エクセル マクロ シートの集計

エクセル・マクロについての質問です。1つのブックに、複数の単票と集計表があります。単票の名称はすべて「○課△係」で、2~10シート程度でシート数は変動します。集計表は1シートで、名称は”「集計」です(その他に1シート有り)。単票と集計表のA列が一致した行(の特定の列)に、単票から集計表へデータを転記します。単票ごとに処理を繰り返し、集計表を完成させたいのですが、エラーが出て実行できません。お忙しいところ誠に恐縮ですが、ご教授方宜しくお願いいたします。 Sub 集計() Dim T As Worksheet Dim p As Long, q As Long, n As Long, m As Long, y As Long T.Name = "*課*係" For Each T In Worksheets For n = 10 To 50 ' p = T.Cells(n, 1) For m = 2 To 550 If Sheets("集計").Cells(m, 1) = p Then y = 5 + T.Range("B4") Sheets("集計").Cells(m, y).Value = q Exit For End If Next End Sub

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

エラーが出るのは文法的におかしいからです。 お書きになったコードを文法的に修正すると以下のようになります。 これでエラーはなると思いますが、集計シートには0しか転記されないと思います。 Sheets("集計").Cells(m, y).Value = q で使っている変数qがどこにも定義されていないようですから。 Sub 集計()   Dim T As Worksheet   Dim p As Long, q As Long, n As Long, m As Long, y As Long   For Each T In Worksheets     If T.Name Like "*課*係" Then       For n = 10 To 50         p = T.Cells(n, 1).Value         For m = 2 To 550           If Sheets("集計").Cells(m, 1).Value = p Then             y = 5 + T.Range("B4").Value             Sheets("集計").Cells(m, y).Value = q             Exit For           End If         Next m       Next n     End If   Next End Sub

shtokk2778
質問者

お礼

qを定義?したら実行されました! ありがとうございました!

その他の回答 (1)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

まずNEXTが2個足りません T.Name = "*課*係" の意味が私には分かりません。多分これはエラーになるでしょう。 それと qに値が代入されていません y = 5 + T.Range("B4") B4の値に5を足した数を集計シートのセルの列数に指定するのでいいのですか? > 単票と集計表のA列が一致した行(の特定の列)に、単票から集計表へデータを転記します。 これがどの列を指すのか分からないのでそこの指定が正しいのかどうかは不明です。 また、この場合1個でもデータが見つかると次を探しませんがそれでいいのでしょうか? もし、一致するデータが複数合って検索するのでしたら FINDを利用すればいかがでしょうか ヘルプに使用例があります。 また、両方ともデータが無い場合も一致したとみなされると思われます。 それと For Each T In Worksheets If T.Name <> "集計" Then やりたいこと End If のような流れになると思われます。

shtokk2778
質問者

お礼

回答いただき、本当にありがとうございます。参考になりました。

関連するQ&A

  • マクロ シート内容の比べについて

    下記のソースで実行したら、 MyStr1(0) = "AAAAAA" & Chr(10) & "BBBBBB" ' の行で "実行時エラー'9'" "インデックスが有効範囲にありません。" というエラーが出ています。 調べても、わからないから、ここで質問をさせて頂きます。 最初に"Old""New""TEMP"3枚のシートが既存しています。 やりたいのは、"Old"シートと"New"シートの内容を検索して、異なる部分を探すことです。 ---------------------------------------------------------------- Sub Macro1() ' M = 3 N = 2 Sheets("Old").Select Sheets("Old").Copy Before:=Sheets(1) Sheets("Old (2)").Select Sheets("Old (2)").Name = "TTT" Dim MyStr1() As String Dim K As Long ReDim MyStr(K) MyStr1(0) = "AAAAAA" & Chr(10) & "BBBBBB" 'エラーになった行 MyStr1(1) = "CCCC" MyStr1(2) = "DDDDD" MyStr1(3) = "FFFFFFFFF" MyStr1(4) = "EEEEEEE" MyStr1(5) = "SSSSSSSSS" MyStr1(6) = "GGGGGGGGG" For K = 0 To 6 X = 1 Y = 1 M = 3 N = N + 1 For Y = 1 To 100 For X = 1 To 300 'セル1の判断ループ If Sheets("Old").Cells(X, Y) = MyStr1(K) Then For M = 3 To 300 X = X + 1 If Sheets("Old").Cells(X, Y) <> Sheets("New").Cells(X, Y) Then Sheets("TTT").Cells(X, Y).Select With Selection.Interior .ColorIndex = 1 .Pattern = xlSolid End With Selection.Font.ColorIndex = 6 End If Next M End If Next X Next Y Next K End Sub ----------------------------------------------------------- 以上、宜しくお願いします。

  • エクセルVBAマクロの質問です。

    マクロ初心者です。行き詰まってます。 sheet1には300件程度のデータがあります。 このデータの3列目の値を、VLOOKUPでsheet3のA1:B30範囲から参照します。そこで取得した回数分、sheet1の各行のデータをsheet2にコピーしたいんです。 そこで、コード文を作ってみましたが、マクロがうまく動きません。 すみませんが、お知恵を貸していただけないでしょうか? Dim Z as Long Dim L As Long Dim P As Long Dim Kensaku As String Dim M4 As Range Dim PRow As Long Dim i As Long Set M4 =Sheets(“sheet3”).Range(“A1:B30“) L = Sheets(“sheet1”).Range(“A1”).End(xlup).Row For Z = 1 to L-1 Kensaku = Sheets(“sheet1”).Cells(Z+1,3).Value P=Worksheetfunction.Vlookup(Kensaku,M4,2,False)    For i = 1 to P      Prow=Sheets(“sheet2”).Range("A1").End(xlDown).Row      Sheets(“sheet1”).Rows(Z+1).Copy Sheets(“sheet2”).Rows(Prow)    Nexti Next Z

  • エクセル2000マクロ、チームの合計を別のシートに

    グラウンドゴルフで、1チーム5名、50チームで全員が2ラウンドのゲームのチーム別成績順位表を作ろうとしています。 ”2ラウンド集計”のワークシートに団体戦の個人成績表がありますので、これを元に、”チーム別”ワークシートに各チームだけの成績を抜き出して表示したくて、次のマクロをした結果、添付した画像のようになります。 解決方法を教えていただきたくよろしくお願いいたします。 Sub チーム成績順() ' ' チーム成績順 Macro ' マクロ記録日 : 2013/8/16 ユーザー名 : HAYAO MAEBARA ' 'Dim n Sheets("チーム別").Activate For n = 1 To 50 Cells(n + 4, 2).Value = Sheets("2ラウンド集計").Cells(n * 5 + 5, 2).Value Cells(n + 4, 3).Value = Sheets("2ラウンド集計").Cells(n * 5 + 5, 3).Value Cells(n + 4, 4).Value = Sheets("2ラウンド集計").Cells(n * 5 + 5, 4).Value Cells(n + 4, 6).Value = Sheets("2ラウンド集計").Cells(n * 5 + 5, 6).Value Cells(n + 4, 7).Value = Sheets("2ラウンド集計").Cells(n * 5 + 5, 7).Value Cells(n + 4, 8).Value = Sheets("2ラウンド集計").Cells(n + 9, 8).Value + Cells(n + 10, 8).Value + Cells(n + 11, 8).Value + Cells(n + 12, 8).Value + Cells(n + 13, 8).Value Cells(n + 4, 9).Value = Sheets("2ラウンド集計").Cells(n + 9, 9).Value + Cells(n + 10, 9).Value + Cells(n + 11, 9).Value + Cells(n + 12, 9).Value + Cells(n + 13, 9).Value Cells(n + 4, 10).Value = Sheets("2ラウンド集計").Cells(n + 9, 10).Value + Cells(n + 10, 10).Value + Cells(n + 11, 10).Value + Cells(n + 12, 10).Value + Cells(n + 13, 10).Value Cells(n + 4, 11).Value = Sheets("2ラウンド集計").Cells(n + 9, 11).Value + Cells(n + 10, 11).Value + Cells(n + 11, 11).Value + Cells(n + 12, 11).Value + Cells(n + 13, 11).Value Cells(n + 4, 12).Value = Sheets("2ラウンド集計").Cells(n + 9, 12).Value + Cells(n + 10, 12).Value + Cells(n + 11, 12).Value + Cells(n + 12, 12).Value + Cells(n + 13, 12).Value Cells(n + 4, 13).Value = Sheets("2ラウンド集計").Cells(n + 9, 13).Value + Cells(n + 10, 13).Value + Cells(n + 11, 13).Value + Cells(n + 12, 13).Value + Cells(n + 13, 13).Value Cells(n + 4, 14).Value = Sheets("2ラウンド集計").Cells(n + 9, 14).Value + Cells(n + 10, 14).Value + Cells(n + 11, 14).Value + Cells(n + 12, 14).Value + Cells(n + 13, 14).Value Cells(n + 4, 15).Value = Sheets("2ラウンド集計").Cells(n + 9, 15).Value + Cells(n + 10, 15).Value + Cells(n + 11, 15).Value + Cells(n + 12, 15).Value + Cells(n + 13, 15).Value Cells(n + 4, 16).Value = Cells(n + 4, 8).Value + Cells(n + 4, 12).Value Cells(n + 4, 17).Value = Cells(n + 4, 9).Value + Cells(n + 4, 13).Value Cells(n + 4, 18).Value = Cells(n + 4, 10).Value + Cells(n + 4, 14).Value Cells(n + 4, 19).Value = Cells(n + 4, 11).Value + Cells(n + 4, 15).Value Cells(n + 4, 20).Value = Cells(n + 4, 16).Value * (-3) Cells(n + 4, 21).Value = Cells(n + 4, 19).Value + Cells(n + 9, 20).Value Cells(n + 4, 22).Value = Cells(n + 4, 21).Value / 2 Next n End Sub

  • エクセルで集計表を作成するマクロで悩んでいます。

    エクセルで集計表を作成するマクロで悩んでいます。 日付ごとにシート別に分かれたデータを「集計表」として新しいシートに集めたいと思っています。 ●元データに関して  1行目は空欄  2行目は表の名前  3行目は日付  4~7行目は番号・数量などの項目  8行目から多い場合で50行目くらいまで番号ごとの情報が並んでいます。  AC列まで並んでいます。・・・・・・●画像左上が元データ ●このファイルから、(1)集計表という新しいシートを作成して(2)そのファイルに日付ごとの データが下方向に集まるように集計したいと思っています。 そこで、次のVBAを作成しました。 Sub 集計表() Dim ws As Worksheet For Each ws In Worksheets ’AD列にシート名を入れる ws.Range("AD1:AD100").Value = ws.Name Next ws Dim newSh As String Dim Sh As Worksheet, myFlag As Boolean newSh = "集計表" myFlag = False For Each Sh In ThisWorkbook.Worksheets If Sh.Name = newSh Then myFlag = True '----全データシートのデータをクリアし、先頭へ移動します Worksheets(newSh).Cells.ClearContents Worksheets(newSh).Move before:=Sheets(1) Exit For End If Next Sh '----全データシートを先頭へ追加します If myFlag = False Then ActiveWorkbook.Worksheets.Add(before:=Worksheets(1)).Name = newSh End If Worksheets(2).Select Rows("1:1").Select Application.CutCopyMode = False Selection.Copy Sheets("集計表").Select ActiveSheet.Paste Dim i As Integer Dim lRow As Long, lCol As Long, lRow2 As Long Application.ScreenUpdating = False '----列見出しをコピーします Worksheets(2).Range("1:1").Copy Worksheets(1).Range("A1") For i = 2 To Worksheets.Count With Worksheets(i) lRow = .Cells(Rows.Count, 1).End(xlUp).Row lCol = .Cells(1, Columns.Count).End(xlToLeft).Column '----シートのデータが8行以上の場合にコピーします If lRow >= 8 Then lRow2 = Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row + 1 .Activate .Range(Cells(2, 1), Cells(lRow, lCol)).Copy Worksheets(1).Cells(lRow2, 1) End If End With Next i Worksheets(1).Activate Range("A1").Select Application.ScreenUpdating = True End Sub この方法だと、「番号」などを含むシートごとの全ての情報がコピーされてしまいます。 ●左下画像 これを「(1)1枚目のシートの1行目から7行目(2)1枚目シートの8行目からA列に1以上の番号が 入っている行(3)2枚目シートの8行目からA列に1以上の番号が入っている行(4)3枚目シートの・・・」というように全てのシートに対して集計することはできないでしょうか。 ●右下画像 VBAを始めたばかりなので、まだ、あまり理解できていません。

  • マクロ_シート内容の比べについて

    下記のソースで実行したら、 MyStr1(1) = "CCC" ' の行まで 実行できて、それから "実行時エラー'9'" "インデックスが有効範囲にありません。" というエラーが出ています。 何かいけないか、わからないから、ここで質問をさせて頂きます。 ※環境はExcel2003です。 ------------------------------------------- Sub Macro1() ' M = 3 N = 2 Sheets("Old").Select Sheets("Old").Copy Before:=Sheets(1) Sheets("Old (2)").Select Sheets("Old (2)").Name = "TTT" Dim MyStr1() As String Dim K As Long ReDim MyStr1(K) MyStr1(0) = "AAA" & Chr(10) & "BBB" MyStr1(1) = "CCC" ' <----------------------------------エラーとなった行 MyStr1(2) = "DDD" MyStr1(3) = "EEE" MyStr1(4) = "FFF" MyStr1(5) = "JJJ" MyStr1(6) = "KKK" For K = 0 To 7 'セル1の判断ループ X = 1 Y = 1 M = 3 N = N + 1 For Y = 1 To 100 For X = 1 To 300 If Sheets("Old").Cells(X, Y) = MyStr1(1) Then For M = 3 To 300 X = X + 1 If Sheets("Old").Cells(X, Y) <> Sheets("New").Cells(X, Y) Then Sheets("TTT").Cells(X, Y).Select With Selection.Interior .ColorIndex = 1 .Pattern = xlSolid End With Selection.Font.ColorIndex = 6 End If Next M End If Next X Next Y Next K End Sub ------------------------------------------------------ 素人なので、何か説明が足りなかったら、ご容赦してください。

  • エクセル、マクロにて月を指定して別シートに表示はできるのでしょうか?

    エクセル、マクロにて月を指定して別シートに表示はできるのでしょうか? 毎度毎度申し訳ありません。開始日の検索で、5月と打っただけ5月分だけ表示6月とうったら6月が出て来る方法なんてあるのでしょうか?ありましたら、下記のコードをどう直せいいか教えて頂けますでしょうか?宜しくお願い致します。 【作業内容:場所と月を検索、さらに要らない列を消し、別シートに表示】【検索月はC】  A B   C     D     E     F   G   H    I   J    K 部署 No.  開始日  終了日   担当者  設備  刃名 枚数  内容 工数 備考 茨城 1 2010/5/7  2010/5/10  B緒  L型   K  16枚  研削 6.00 東和電気 東京 2 2010/6/7  2010/6/8   B緒  L型   K  16枚  研削 6.83 東和電気 茨城 3 2010/5/18  2010/5/19  B緒  L型   K  16枚  研削 1.50 東和電気 茨城 4 2010/5/16  2010/5/19  B緒  L型   K  16枚  研削 6.83 東和電気 茨城 5 2010/6/10  2010/6/10  B緒  L型   K  16枚  研削 6.83 東和電気 ↓ A  B   C     D    E     F   部署 No.  開始日  担当者  内容   工数 茨城 1 2010/5/7  B緒   研削   6.00 茨城 3 2010/5/16  B緒  掃除   6.83 茨城 4 2010/5/18  B緒  出荷   1.50 【コード】 Sub 検索() Dim R As Long Dim Row2 As Long '●Sheet2書込み行 Sheets("集計表").Range("A5").CurrentRegion.Clear Sheets("集計表").Range("A5:F5").Value = Array("依頼部署", "依頼書No.", "研磨開始日", "担当者", "作業内容", "作業内容", "工数") Row2 = 5 For R = 2 To Sheets("日報").Cells(Rows.Count, "A").End(xlUp).Row If Sheets("日報").Cells(R, "A") = Sheets("集計表").Range("A2") And _ Sheets("日報").Cells(R, "C") >= Sheets("集計表").Range("B2") And _ Sheets("日報").Cells(R, "C") <= Sheets("集計表").Range("C2") Then Row2 = Row2 + 1 Sheets("集計表").Cells(Row2, "A").Value = Sheets("日報").Cells(R, "A").Value Sheets("集計表").Cells(Row2, "B").Value = Sheets("日報").Cells(R, "B").Value Sheets("集計表").Cells(Row2, "C").Value = Sheets("日報").Cells(R, "C").Value Sheets("集計表").Cells(Row2, "D").Value = Sheets("日報").Cells(R, "E").Value Sheets("集計表").Cells(Row2, "E").Value = Sheets("日報").Cells(R, "I").Value Sheets("集計表").Cells(Row2, "F").Value = Sheets("日報").Cells(R, "J").Value End If Next R '●結果の並べ替え If Row2 = 5 Then MsgBox "該当データなし!" Else Sheets("集計表").Range("A5:D" & Row2).Sort _ Key1:=Range("B6"), Order1:=xlAscending, _ Header:=xlYes, OrderCustom:=1, MatchCase:=False, _ Orientation:=xlTopToBottom, SortMethod:=xlPinYin Sheets("集計表").Select End Sub

  • エクセルVBAマクロの質問です。

    マクロ初心者です。 データ処理のマクロを作ろうとしていて、ちょっと困ってます。 (sheet1) 11 国総 1A (空きセル ) 12 化基 2I (空きセル) ・ 以下、200程度のデータ C列のデータの種類は10種類 (sheet2) 1A 2 101 102 2I 3 103 104 105 ・ ・ sheet1のC列と同じデータ C列より右側のデータ数は1から4個程度 (sheet3) データなし sheet1のデータを、sheet3にコピーする際に、各データのD列に、sheet2のC列の右側のデータを入れていきたいんです。具体的には (sheet3) 11 国総 1A 101 11 国総 1A 102 12 化基 2I 103 12 化基 2I 104 12 化基 2I 105 っていう感じです。先日、こちらのカテゴリでなく、間違えてVBAプログラムの方に質問して、「板違いですよ」と諭されながらも、ご協力いただきsheet2の件数分増やしてコピーするコードまではたどり着いたのですが、その後、どうすればD列に移せるのかで悩んでます。ちなみに、いまたどりついたコード文は以下の通りです。 一度、このコード文の続きで、sheet3のC列を条件カウントするコードを作ってみたんですが、動いてくれませんでした。 Sub Re8928577a() Dim M4 As Range Dim P As Variant ' WorksheetFunction.VLookup Dim Kensaku As String Dim L As Long Dim PRow As Long Dim i As Long Dim Z As Long   Set M4 = Sheets("Sheet2").Range("A1:B30")   L = Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row '   For Z = 1 To L - 1     Kensaku = Sheets("Sheet1").Cells(Z + 1, 3).Value     P = WorksheetFunction.VLookup(Kensaku, M4, 2, False)     PRow = Sheets("Sheet3").Cells(Rows.Count, "A").End(xlUp).Row       For i = PRow + 1 To PRow + P         Sheets("Sheet1").Rows(Z + 1).Copy Sheets("Sheet3").Rows(PRow + 1).Resize(P) Next i   Next Z End Sub

  • エクセル2003 別シートの項目を集計したいVBA

    仕事でエクセル2003を使っています。 超初心者なので、うまく説明ができませんがお許しください。 Sheet1に、印刷シートとして「名前」「フリガナ」「住所」「電話番号」「性別」などのデータを入力しています。 これを1回ずつデータを入力して印刷をしています。 印刷をするときに、入力したデータをリストにするためにSheet2へコピーするというマクロを作りました。 ↓こんな風に作ってみました。 Sub 正方形長方形2_Click() Call macro01 Call macro02 End Sub Sub macro01() Dim ws1 As Worksheet, ws2 As Worksheet Dim x As Long, y As Long Set ws1 = Sheets("Sheet1") Set ws2 = Sheets("Sheet3") x = ws2.Cells(Rows.Count, "b").End(xlUp).Row + 1 y = ws1.Cells(Rows.Count, "b").End(xlUp).Row ws1.Cells(21, "g").Resize(y, 9).Copy ws2.Cells(x, "b").PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False End Sub Sub macro02() Worksheets("Sheet1").PrintOut End Sub ここから本題なのですが… ふと、リストの件数をSheet1に出せないものか?と思ったのです。 マクロを実行することで、Sheet2にデータが増えてその増えたデータの項目の合計件数をSheet1に反映させて印刷する。 「別シートの項目を集計する」で検索してみたのですが、私には難しすぎて理解できずいろんな方の回答をもアレンジできません。 なにとぞ、ご教授いただきますようお願いします。

  • VBA【dictionary勉強中ですが・・・】集計マクロ

    いつもお世話になっております。 現在dictionary勉強中ですが、なかなかコツをつかめず 思ったとおりのマクロを作成することができません(ノ_;) ところで、今回作成しているのは 元データ.xlsというファイルのシート(データ)に   |【A】| B | C |【D】| E | F |・・・|H|I|【J】|K 3  【顧客ID】|顧客|受付日|【担当】|・・・|【会場名】|(見出し) 4  データの始まり↓ と、ありまして、 集計データ.xlsのシート(集計)に  | A | B | C | D | E | F | 1 顧客ID|担当|会場名| と二行目から一覧表があります。 A列のIDが一致するものに Sheet(データ)  →  Sheet(集計)  セル( i, "D")の値 → セル( j, "B") に セル( i, "J")の値 → セル( j, "C")に     セル(j,"C")に値が入っているとき、セル(j,"D")に→Fまで(4回のみ) A列のIDが一致するものがない時 セル( i, "A")の値 → セル( 最終,"A")に  セル( i, "D")の値 → セル( 最終, "B") に セル( i, "J")の値 → セル( 最終,"C")に追加 というように、入れたいのですが、 以下のようなコードをネットで見つけ自分なりに考えて変更を加えてみましたが あまり分かっていないためどのように変更すればいいのかよく分かりません。どなたかご教授ください。お願いします。 Sub Try() Dim data_1() As String Dim data As Long Dim maxrow As Long Dim t As Integer, f As Integer, y As Integer Set ws1 = Worksheets("集計") Set ws2 = Worksheets("データ") Application.ScreenUpdating = False maxrow = ws2.Range("a65536").End(xlUp).Row With ws1 For i = 2 To Range("a65536").End(xlUp).Row data = .Cells(i, 1) f = 0 t = 0 With ws2 t = Application.WorksheetFunction.CountIf(.Range("a4:a" & maxrow), data) If t > 0 Then For n = 1 To maxrow ReDim Preserve data_1(f) If data = .Cells(n, 1) Then data_1(f) = .Cells(n, 10) f = f + 1 If t = f Then Exit For Else 'A列にIDが存在しなければ追加する:ここの記述がよく分かりません。 data_1(f) = .Cells(n, 1) End If Next n For y = 0 To UBound(data_1) ws1.Cells(i, maxcol(i)) = data_1(y) Next y End If End With Next i End With Application.ScreenUpdating = True End Sub '-------------------------- Private Function maxcol(ByVal i As Long) As Integer Dim j As Integer With Worksheets("集計") j = 4 Do While .Cells(i, j) <> "" j = j + 1 Loop maxcol = j End With End Function

  • エクセル2003マクロの再編集

    Sub test() Dim 行1 As Long, 最終行 As Long, 行2 As Long Sheets("Sheet2").Cells.ClearContents Sheets("Sheet1").Activate 最終行 = Range("C65536").End(xlUp).Row 行2 = 1 For 行1 = 1 To 最終行 Sheets("Sheet2").Cells(行2, 1).Resize(1, 3) = Range(Cells(行1, 1), Cells(行1, 3)).Value Sheets("Sheet2").Cells(行2, 3).Value = Abs(Sheets("Sheet2").Cells(行2, 3).Value) If Range("A" & 行1).Value = "BBBB1" Then Sheets("Sheet2").Range("A" & 行2) = Range("A" & 行1) & "-1" Sheets("Sheet2").Cells(行2 + 1, 1).Resize(1, 3) = Range(Cells(行1, 1), Cells(行1, 3)).Value Sheets("Sheet2").Range("A" & 行2 + 1) = Range("A" & 行1) & "-2" 行2 = 行2 + 1 End If If Range("A" & 行1) = "" Then 行2 = 行2 - 1 Sheets("Sheet2").Range("C" & 行2) = Sheets("Sheet2").Range("C" & 行2) + Range("C" & 行1) End If 行2 = 行2 + 1 Next 行1 End Sub を編集したいのですが全然図りません ご指導お願いします 元データ AAAA5 9601  950 BBBB1 9660  150 ASAS9 9654  -50 AXCW5 9603  1375 以下の用にマクロで変換する用に出来たのですが 【1】 BBBB1だけではなくAAAA5も対処になったときの 追加方法です 元データは一切変更が出来ません ※フォントの変更も不可です 【2】 元データと変換後データがSheet1からSheet2になっていますが Sheet1の元は範囲はA1~C400で変換後をSheet1E1~G400にしたいのです AAAA5 9601  950  BBBB1-1 9660  150  BBBB1-2 9660  150 ASAS9 9654  50 AXCW5 9603  1375

専門家に質問してみよう