• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL VBA コピーした複数シートを編集する)

EXCEL VBA コピーした複数シートを編集する

このQ&Aのポイント
  • EXCEL VBAで複数のシートをコピーして編集する方法について教えてください。
  • シート名が「101」「102」「103追加工」「104」で、選択対象のシートは4つです。
  • コピーしたシートすべてに製造番号を入力し、1つ上のフォルダに保存する方法についてアドバイスをください。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

各シートの名前に応じてC1からC4セルを調べ、#1から#9のどれが記入してあるか確認して所定の仕事をするだけ、と思いますが。 '------------------------------------------------- ' コピーしたすべてのシートに製番を書き込む '------------------------------------------------- For Each 各シート In Worksheets With 各シート .Activate .Cells(1, 2) = 製番 select case thiswokbook.worksheets("表紙").cells(application.match(各シート.name, array("101", "102", "103追加工", "104"), 0), "C").value case "#1" ’#1の仕事をする case "#2" ’#2の仕事をする ’: case "#9" ’do nothing case else ’不適切な記入内容 end select End With Next

kz_in
質問者

お礼

早々に回答いただき、ありがとうございます。感謝いたします。 動作の確認をいたしました。 C1~C4セルの値は1~9なので、case "#1" → case "1"でよいのですね? 質問のとおり、A1~A4にシート名、B1~B4に○×、C1~C4に1~9では動作しますが、 データの行を変更して、A10~A13にシート名、B10~B13に○×、C10~C13に1~9とすると、 case "1"~の処理がされず、どこを修正すればよいのか悩んでいます。 ご教授いただけると幸いです。 初歩的な質問であるとは思いますが、よろしくお願い申し上げます。 ちなみに下記のように記述しております。 Case "1" Range("E3:L3").Select Selection.ClearContents Case "2" Range("F3:L3").Select Selection.ClearContents :

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

>C10~C13に1~9とすると、 101や104に応じて、正しくC10からC13を取りに行かせなきゃダメです。 select case thiswokbook.worksheets("表紙").cells(application.match(各シート.name, array("101", "102", "103追加工", "104"), 0)+9, "C").value >C1~C4セルの値は1~9なので、case "#1" → case "1"でよいのですね? 「#1」だったハズですが? まぁそれでも動きますが、 case 1 の方が安心です。

kz_in
質問者

お礼

ありがとうございます。 たいへん勉強になりました。 努力して理解を深めていたいと思います。

関連するQ&A