• 締切済み

Excelのマクロを使用して以下の内容をしたいのですがどのようにすれば

Excelのマクロを使用して以下の内容をしたいのですがどのようにすれば宜しいでしょうか? 1)「Sheet1」のセルの値が>2(2より大きい)の場合に「Sheet2」の同一のセルの色を例えば赤色にする。 これをA1~N34までのセルに関して連続で実行したい。 2)「X」というファイルのSheet1 A1からN34セルに同一のフォルダーに入っている、他のファイルの同セルに値が記載されていれば、その値をコピーしたい。 フォルダーに次々とファイルが追加されていくことを想定し、できれば他のファイル名は指定しなくてもどんどんコピーできるマクロがあればいいと思うのですが・・・ すみませんが宜しくお願いいたします。

みんなの回答

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

んー? 情報提供の不足は色々ありますが,特に難しい内容では無さそうに思えましたが。 sub macro1()  dim s as string  dim myPath as string  myPath = thisworkbook.path & "\"  s = dir(mypath & "*.xls")  application.displayalerts = false  application.screenupdating = false  do  if s <> thisworkbook.name then   workbooks.open filename:=mypath & s   'コピーしてきたいシートの具体的な詳細が不明   workbooks(s).worksheets(1).range("A1:N34").copy   '肝心の,どう貼りたいのか,重なったらどうしたいのか等の詳細一切不明   thisworkbook.worksheets("Sheet1").range("A1").pastespecial _    Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=True, Transpose:=False   workbooks(s).close savechanges:=false  end if  s = dir()  loop until s = ""  application.screenupdating = true  application.displayalerts = true end sub >色塗り 別にマクロとか使わなくても,シート2のセル範囲を選んで 条件付き書式を取り付けて セルの値が → 数式が に変えて 右の空欄に =INDIRECT("Sheet1!RC",FALSE)>2 と記入して,書式ボタンでセルの色を赤く塗って出来上がり。です。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんばんは! とりあえず、(1)に関してですが・・・ Sub test() Dim i, j As Long For i = 1 To 34 For j = 1 To 14 If Worksheets("sheet1").Cells(i, j) > 2 Then Worksheets("sheet2").Cells(i, j).Interior.ColorIndex = 3 End If Next j Next i End Sub こんな感じですかね? (2)に関してはちょっと判りかねますので この程度でごめんなさいね。m(__)m

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

Ano2の1)はSheet1のマクロに作成する、それ以外の所にする場合には For Each m_Range In Worksheets("Sheet1").Range("A1:N34") としてください。

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

1) Sub MacroX() Dim m_Range As Object For Each m_Range In Range("A1:N34") If m_Range.Value > 2 Then Worksheets("Sheet2").Range(m_Range.Address).Interior.Color = vbRed End If Next End Sub 2) 仕様があいまいです どんどんコピーするとは、たとえばAファイルのA1にデータがありBファイルのA1にデータがあった場合どちらを優先させるのかが不明です。 一度確認したファイルは次の実行時に値をコピーするのかも不明です。 コピーしないとすれば確認したかどうかをどこに記憶しておいて良いのか。 再度流れをじっくり考えて仕様をねってみましょう。

  • soixante
  • ベストアンサー率32% (401/1246)
回答No.1

とりあえず1です。 Sub aaa() Dim r As Integer, c As Integer For c = 1 To 14    For r = 1 To 34       If Worksheets("Sheet1").Cells(r, c).Value > 2 Then          Worksheets("Sheet2").Cells(r, c).Interior.ColorIndex = 3       End If    Next r Next c End Sub

関連するQ&A

  • エクセル2007で複数ファイル間コピーマクロ

    エクセルでマクロを組もうとしていますが、初歩的なことでつまづいており、ぜひ助けを頂けたらと思います。 VBA言語はほとんどわかりませんが、エクセルでマクロを組んでいます。 一つのワークブック内での登録は問題なく行えるのですが、ワークブック間のコピペをマクロに登録するとうまくいかず困っています。 やりたいことは以下のようなことです。 file.Aのsheet1のA1セル ⇒ file.AAのsheet1のA1セル へコピー file.Bのsheet1のA1セル ⇒ file.BBのsheet1のA1セル へコピー     ・     ・     ・     ・ file.Zのsheet1のA1セル ⇒ file.ZZのsheet1のA1セル へコピー VBAを確認すると、ワークブック名が指定されているため、うまく次のファイルに移行できずにいるようです。 以下が黄色でハイライトされます。 Windows("file.A").Activate 初歩的なことだとは思うのですが、なかなか検索で答えが引っ張りだせないので、A-Zのファイルをコピペできるマクロにするにはどのようにしたら可能なのか教えてください。 よろしくお願いします。

  • エクセルのマクロについて教えてください

    作業が面倒だし、間違いもよく発生するので、 下の条件のマクロをどなたか教えて頂けませんか? 宜しくお願い致します。 社内のサーバーにエクセルファイル名、AからZまであるとします。 各AからZにそれぞれ同じシート名「集計」があるとします。 そのシート内にデータが色々あるとします。 ある決まったセルだけを削除するのではなく、セルの色だけで判断してデータを削除したいのです。 例えば、赤色のセルになっている部分だけを対象に 入力されている数字を消したいのです(行削除ではなく、単純にデリートです)。 上記をマクロで実行する方法はないでしょうか。 マクロ初心者なので、プログラム言語の下に簡単な説明を頂けると助かります。 どなたか詳しい方がいらっしゃいましたら、宜しくお願い致します。

  • エクセルのマクロであるフォルダ内にある全エクセルファイルのシート1!(

    エクセルのマクロであるフォルダ内にある全エクセルファイルのシート1!(A1:X365)の値を取得し、コピー元のエクセルファイル名のシートに貼付ける方法を教えて頂けないでしょうか?できればコピー元のエクセルファイルは開かずに実行させたいです。エクセルは2003を使っています。

  • Excelのマクロについて

    お世話になります。 当方はマクロについての知識が一切なく、皆様にご助力いただきたく存じます。 1. 指定した3つのシートを1つのPDFに変換し、ファイル名は指定したセルの値で、保存先はデスクトップ。(※社員全員が使用することを前提としています。デスクトップの任意のフォルダや既存ファイルに上書きするのではなく、新規ファイルとして保存させたいです。) 2. 今開いているExcelをそっくりそのままコピーし、ファイル名のみ指定したセルの値で、保存先はデスクトップ。(※マクロは有効にしておきたいので、xlsmの拡張子のまま保存させたいです。) 自分で色々試しましたが、出来る出来ないの差異があり困っております。 よろしくお願いいたします。

  • エクセルマクロのコードを隠す

    とあるExcel2003で開けるxlsファイルを貰いました。 セルに値を入力すると、セルの背景の色が変わります。 そういうマクロを組んでいるんだと思ったのですが、 シートに対して「コードを表示する」で見ても何も書かれていません。 プロジェクト欄にはこのシートと[ThisWorkbook]しかなく、 [ThisWorkbook]にも何も書かれていません。 組んだマクロのコードを何かして隠しているのでしょうか? それともエクセルの設定でそのようなことが可能なのでしょうか。

  • エクセルのマクロについて

    マクロのコードについて質問です。 シート1のセルA1の値が更新されるたびに、シート2のA1,A2と値が自動で反映されていくマクロを教えていただけないでしょうか。 シート1をベースとして、セルA1に記入した日付をシート2の表に12ヶ月分蓄積させていきたいと考えてます。 誤記入して蓄積してしまう可能性も高い思いますが、勉強のため教えていただきたいです。 難しいとは思いますが、対応お願いいたします。

  • エクセルマクロ コピー元と貼り付け先を指定してコピー&ペーストを実行するマクロ

    単刀直入にやりたいことを述べます。 Cドライブと仮定します。3つのBOOKがあります。 それぞれ ----- BOOK1.xls「○○Sheet」・・・(実行するファイル)   A 1 BOOK2.xls「△△Sheet」・・・(コピーするファイル名の指定です) 2 A2:E2・・・(コピーするセル範囲の指定) 3 BOOK3.xls「□□Sheet」・・・(貼り付け先のファイル名の指定です) 4 A5・・・(貼り付け先のセルの指定) ----- BOOK2.xls「△△Sheet」・・・(コピー元ファイル)   ABCDE 1 あいうえお 2 かきくけこ 3 ・・・・・ ----- BOOK3.xls「□□Sheet」・・・(貼り付け先のファイル)   ABCDE 1 ・・・・・ 2 かきくけこ・・・(貼り付け) 3 ・・・・・ ----- >やりたいこと BOOK1.xls「○○Sheet」のA1のセルの値とA2セルの値を参照し、 その該当BOOKのセル範囲(BOOK2.xls「△△Sheet」のA2:E2)をコピーして、 BOOK1.xls「○○Sheet」のA3のセルの値と、A4セルの値を参照し、 その該当BOOKのセル範囲(BOOK3.xls「□□Sheet」のA5)へペーストする。 別のブックの指定したセルの値を別のブックの指定したセルへ貼り付けるだけなんですが、 以前関数を使って似たような事をしようとしたのですが、うまくいかなかったので、マクロならできるのでしょうか。 よろしくお願いします。(ちなみにエクセル2000又は2003です)

  • エクセル、マクロの事で・・・?

    ある1つのフォルダにエクセルシートがあります。 仮に・・・ A1のセルに「野菜類」B1のセルに「野菜について」 A2のセルに「肉類」 B2のセルに「肉について」 A3のセルに「酒類」 B2のセルに「酒について」 このようにあるとします。 場合によっては、3つで終わる場合もあれば、20ぐらいまで行く場合もあります。 そこでマクロを使いエクセルシートがあるフォルダ内に・・・ 「野菜類」 「肉類」 「酒類」 各フォルダを作成して、その各フォルダ内に「Bのセル名.txt」のファイルを作成したいと考えています。(.txtの中身は空です) 今は、手作業でやっているのですが数が多く間違えたりするので、マクロを使って行いたいのですが、その方法がわかりません。 そこで、大変申し訳なのですが、マクロの方法を教えていただけないでしょうか? よろしくお願いします。

  • エクセル2007 マクロについて教えてください

    エクセルのデータが2個あります。 それぞれ、ファイル名は 顧客データ.xlsと個別シート.xlsです。 顧客データ.xlsには、10名のお客様の情報があり、A1セルには ID番号 と入力してあり、 A2~A11セルにID番号が入力されています。 『個別シート.xlsにマクロで顧客データ.xlsのデータをコピーし、ID番号のフォルダをデスクトップに新規作成し、ID番号を付けて保存する』マクロを作成中です。 顧客番号が1234のお客様のデータを、個別シートにコピーし、デスクトップに1234というフォルダを新規作成し、その中に 個別シート_1234.xls というファイル名で保存をしたいです。 顧客データを自動でコピーするまではできましたが、それ以降ができません。 MkDir "C:\ Documents and Settings\xxx\デスクトップ\nknk\ID " ChDir "C:\ Documents and Settings\xxxi\デスクトップ\nknk\ID " ActiveWorkbook.SaveAs Filename:="個別シート_" & ID & ".xls" ActiveWorkbook.Close マクロを実行すると『実行時エラー76:パスが見つかりません』とエラーになります。 (フォルダ作成の命令文のところが黄色くなります。) ちなみに、個別シートの指定したセルに、IDはコピーされています。 正しく実行できる文を教えてください。また、以降の命令文は正しいでしょうか。 よろしくお願いします。  

  • Excelのマクロを使ってワークシート1にワークシート2のセルの値をコ

    Excelのマクロを使ってワークシート1にワークシート2のセルの値をコピーするマクロを作りたいと思っています。 例えば、ワークシート2のA1~A30のセルには1~30の値が順に入っているとします。 それをA1から3の倍数分、つまりA1,A3,A6,A9,・・・,A27,A30の値を ワークシート1のA1~A11のセルに自動で挿入してくれるマクロってどう作ればいいのでしょうか? わかりにくいかもしれませんが、よろしくお願いします。

専門家に質問してみよう