みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

作ったマクロを複数のシートで実行できるようにしたい。

excelで以下のマクロを作りました。

Sub Macro1()
  Dim 文字 As Range
  For Each 文字 In Range("e6:ai21")
   Select Case 文字.Text
    Case "|"
     文字.Font.Name = "MS Pゴシック"
     文字.Font.Size = 35
    Case Else
     文字.Font.Name = "MS明朝"
     文字.Font.Size = 11
   End Select
   Next 文字
  End Sub

1つのシートのセル範囲(e6:ai21)に対するマクロです。

このマクロを、シートが10個(sheet1~sheet10)ありその内の8個(sheet3~sheet10に1度にできるようにするにはどうすればいいのですか。

教えてください。よろしくお願いします。

投稿日時 - 2006-08-27 07:02:26

QNo.2365077

暇なときに回答ください

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

ちょっとスマートになりました。シートがいくつあっても対応できます。
Sub Macro1()
 Dim 文字 As Range
 Dim i As Integer

  For i = 1 To Sheets.Count
    With Sheets(i)
     For Each 文字 In Range("e6:a121")
      Select Case 文字.Text
       Case "|"
        文字.Font.Name = "MS Pゴシック"
        文字.Font.Size = 35
       Case Else
        文字.Font.Name = "MS明朝"
        文字.Font.Size = 11
       End Select
      Next 文字
    End With
  Next i
End Sub

投稿日時 - 2006-08-28 15:25:08

お礼

こんなに簡単にできるのですね。
おかげさまで、うまくいきました。
ありがとうございました。

投稿日時 - 2006-09-03 07:10:31

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

NCU

Sub 複数シートに書式設定()
  Sheets(Array("Sheet3", "Sheet4", "Sheet5", "Sheet6", "Sheet7", "Sheet8", "Sheet9", "Sheet10")).Select
  Range("E6:AI21").Select
  With Selection.Font
    .Name = "MS 明朝"
    .Size = 11
  End With
  With Application.ReplaceFormat.Font
    .Name = "MS Pゴシック"
    .Size = 35
  End With
  Selection.Replace What:="|", Replacement:="|", LookAt:=xlWhole, ReplaceFormat:=True
  Sheets("Sheet3").Select
End Sub

投稿日時 - 2006-08-27 09:32:00

お礼

arrayを使うのですね。
初心者なのでarrayはよくわかりませんが、
実行したら、できました。
ありがとうございました。

投稿日時 - 2006-09-03 07:09:17

ANo.1

これでいちよできそうですが、for each を使った、もっとスマートな方法があると思いますので、勉強してください。(どうしても思い出せないので)
Dim 文字 As Range
Dim Mybook As Workbook
Dim i As Integer

For i = 1 To 10
Sheets("sheet" & i).Select
For Each 文字 In Range("e6:ai21")
Select Case 文字.Text
Case "|"
文字.Font.Name = "MS Pゴシック"
文字.Font.Size = 35
Case Else
文字.Font.Name = "MS明朝"
文字.Font.Size = 11
End Select
Next 文字
Next i
End Sub

投稿日時 - 2006-08-27 07:34:42

お礼

早々ありがとうございます。
2行目から3行目までは、このように処理するのですね。
参考になりました。
お礼遅れて申し訳ありません。

投稿日時 - 2006-09-03 07:07:38

あなたにオススメの質問