過去ログ

                                Page     635
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼複数のシートの操作  お願いします 03/1/29(水) 11:10
   ┣Re:複数のシートの操作  BOTTA 03/1/29(水) 12:23
   ┗Re:複数のシートの操作  ポンタ 03/1/29(水) 12:28
      ┣Re:複数のシートの操作  お願いします 03/1/29(水) 12:59
      ┗出来たんですが....(T_T)  お願いします 03/1/29(水) 13:57
         ┗Re:出来たんですが....(T_T)  ポンタ 03/1/29(水) 14:02
            ┗ありがとうございました  お願いします 03/1/29(水) 14:17

 ───────────────────────────────────────
 ■題名 : 複数のシートの操作
 ■名前 : お願いします
 ■日付 : 03/1/29(水) 11:10
 -------------------------------------------------------------------------
   初めて投稿します。
いままで単一のシートで
Sub ()
Range("k2:k3").UnMerge
Range("n2:n3").Copy
Range("k2").PasteSpecial Paste:=xlValues
Range("k2:k3").Merge
Range("a3:h40").Select
Selection.ClearContents
UserForm1.Show
End Sub
というマクロを使っていたんですが、これを同じブックの複数のシートで
同時操作したいのですがどうすればいいですか

なにぶん初心者なのでよろしくお願いします
 ───────────────────────────────────────  ■題名 : Re:複数のシートの操作  ■名前 : BOTTA  ■日付 : 03/1/29(水) 12:23  -------------------------------------------------------------------------
   お願いしますさん、こんにちは。

  With Worksheets("Sheet1")
    .Range("k2:k3").UnMerge
    .Range("n2:n3").Copy
    .Range("k2").PasteSpecial Paste:=xlValues
    .Range("k2:k3").Merge

    .Range("a3:h40").ClearContents
  End With
  UserForm1.Show

Withでシートを指定すればOKです。
ただし、SelectはシートをActiveにしないとダメなので
クリアするだけにしました。
 ───────────────────────────────────────  ■題名 : Re:複数のシートの操作  ■名前 : ポンタ  ■日付 : 03/1/29(水) 12:28  -------------------------------------------------------------------------
   シート名が"Sheet1"と"Sheet2"のときだけ処理をする
というコードです。

シート名が〜のときだけは処理をしない
という場合には、違う書き方をしたほうが効率がいいです。

それと、以下の4行は

>Range("k2:k3").UnMerge
>Range("n2:n3").Copy
>Range("k2").PasteSpecial Paste:=xlValues
>Range("k2:k3").Merge



.Range("k2").Value = .Range("n2").Value

と書き換えても同じ結果になると思います。

お試しください。

Sub test()
  Dim Ws As Worksheet
  For Each Ws In Worksheets
    Select Case Ws.Name
    Case "Sheet1", "Sheet2"
      With Ws
        .Range("k2").Value = .Range("n2").Value
        .Range("a3:h40").ClearContents
      End With
    End Select
  Next
  UserForm1.Show
End Sub
 ───────────────────────────────────────  ■題名 : Re:複数のシートの操作  ■名前 : お願いします  ■日付 : 03/1/29(水) 12:59  -------------------------------------------------------------------------
   ▼ポンタ さん:
>シート名が"Sheet1"と"Sheet2"のときだけ処理をする
>というコードです。
>
>シート名が〜のときだけは処理をしない
>という場合には、違う書き方をしたほうが効率がいいです。
>
>それと、以下の4行は
>
>>Range("k2:k3").UnMerge
>>Range("n2:n3").Copy
>>Range("k2").PasteSpecial Paste:=xlValues
>>Range("k2:k3").Merge
>
>は
>
>.Range("k2").Value = .Range("n2").Value
>
>と書き換えても同じ結果になると思います。
>
>お試しください。
>
>Sub test()
>  Dim Ws As Worksheet
>  For Each Ws In Worksheets
>    Select Case Ws.Name
>    Case "Sheet1", "Sheet2"
>      With Ws
>        .Range("k2").Value = .Range("n2").Value
>        .Range("a3:h40").ClearContents
>      End With
>    End Select
>  Next
>  UserForm1.Show
>End Sub

ボンタさん有り難うございます
さっそく試してみます
 ───────────────────────────────────────  ■題名 : 出来たんですが....(T_T)  ■名前 : お願いします  ■日付 : 03/1/29(水) 13:57  -------------------------------------------------------------------------
   ▼ポンタ さんありがとうございました
複数のシートの操作はできましたが新たに問題が発生しました
先程のUSERFORMの続きですが

Private Sub CommandButton1_Click()
Range("H44") = UserForm1.TextBox1.Value
Unload Me
Range("A1").Select
End Sub

となっています
この処理を同時に複数のシート行いたいのですがどうすればいいのでしょうか
もしよければ教えてください
お忙しいところ本当にお手数欠けます
 ───────────────────────────────────────  ■題名 : Re:出来たんですが....(T_T)  ■名前 : ポンタ  ■日付 : 03/1/29(水) 14:02  -------------------------------------------------------------------------
   こんな感じでしょうか?

直に書き直したので、タイプミスしてるかも知れません。
もし、エラーが出たら、書き直してください。

Private Sub CommandButton1_Click()
  Dim Ws As Worksheet
  For Each Ws In Worksheets
    Select Case Ws.Name
    Case "Sheet1", "Sheet2"
      With Ws
        .Range("H44") = UserForm1.TextBox1.Value
        '全ての対象シートで"A1"をアクティブにする必要があるなら次の2行が必要
        .Activate
        .Range("A1").Select
      End With
    End Select
  Next
  Unload Me
  'アクティブシートのみA1をアクティブにするなら、
  Range("A1").Select
End Sub
 ───────────────────────────────────────  ■題名 : ありがとうございました  ■名前 : お願いします  ■日付 : 03/1/29(水) 14:17  -------------------------------------------------------------------------
   ▼ポンタ さん:
全て完璧にできました。
わがままな質問に
すばやい対応本当にありがとうございました
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 635