Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7303 / 13645 ツリー ←次へ | 前へ→

【39913】複数シートの書式設定 飛ばない豚 06/7/4(火) 10:32 質問[未読]
【39929】Re:複数シートの書式設定 ハト 06/7/4(火) 13:39 発言[未読]
【39936】Re:複数シートの書式設定 飛ばない豚 06/7/4(火) 14:30 質問[未読]
【39937】Re:複数シートの書式設定 Kein 06/7/4(火) 15:18 回答[未読]
【39960】Re:複数シートの書式設定 飛ばない豚 06/7/4(火) 16:37 お礼[未読]

【39913】複数シートの書式設定
質問  飛ばない豚  - 06/7/4(火) 10:32 -

引用なし
パスワード
   複数のシートの書式(列幅)を統一したく、
「マクロの記録」で記録しました。

結果は以下です。
Sub Macro3()
'
' Macro3 Macro
' マクロ記録日 : 2006/7/4 ユーザー名 :
'

'
  Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5")).Select
  Sheets("Sheet1").Activate
  Columns("A:A").ColumnWidth = 8.38
  Columns("B:B").ColumnWidth = 17
  Columns("C:C").ColumnWidth = 5.88
  Columns("D:D").ColumnWidth = 8.38
  Columns("E:E").ColumnWidth = 5.63
  Columns("F:F").ColumnWidth = 8.38
  Columns("G:G").ColumnWidth = 7
  Columns("H:H").ColumnWidth = 5.63
  Columns("I:I").ColumnWidth = 7
  Columns("J:J").ColumnWidth = 4.63
End Sub

ところが、これを実行すると、"Sheet1"しか設定されません。

どうしてなのでしょうか?
また、全てのシートを設定するにはどうしたら良いでしょうか?


ちなみに、For〜Loop等で、シート一つづつ設定していく方法は分かります。
上の「記録」のように、複数シートを選択し、一度に変更するのは、
手動で出来て、それをマクロ記録したマクロで出来ないのに疑問を感じ、
また、何かコードを追加することで正常に作動するのであれば、
それを知りたいと思ってます。

ご存知の方、よろしくお願いします。

【39929】Re:複数シートの書式設定
発言  ハト  - 06/7/4(火) 13:39 -

引用なし
パスワード
   おはようございます

▼飛ばない豚 さん:
>複数のシートの書式(列幅)を統一したく、
>「マクロの記録」で記録しました。
>
>結果は以下です。
>Sub Macro3()
>'
>' Macro3 Macro
>' マクロ記録日 : 2006/7/4 ユーザー名 :
>'
>
>'
>  Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5")).Select
>  Sheets("Sheet1").Activate
>  Columns("A:A").ColumnWidth = 8.38
>  Columns("B:B").ColumnWidth = 17
>  Columns("C:C").ColumnWidth = 5.88
>  Columns("D:D").ColumnWidth = 8.38
>  Columns("E:E").ColumnWidth = 5.63
>  Columns("F:F").ColumnWidth = 8.38
>  Columns("G:G").ColumnWidth = 7
>  Columns("H:H").ColumnWidth = 5.63
>  Columns("I:I").ColumnWidth = 7
>  Columns("J:J").ColumnWidth = 4.63
>End Sub
>
>ところが、これを実行すると、"Sheet1"しか設定されません。
>
>どうしてなのでしょうか?
>また、全てのシートを設定するにはどうしたら良いでしょうか?
>
>
>ちなみに、For〜Loop等で、シート一つづつ設定していく方法は分かります。
>上の「記録」のように、複数シートを選択し、一度に変更するのは、
>手動で出来て、それをマクロ記録したマクロで出来ないのに疑問を感じ、
>また、何かコードを追加することで正常に作動するのであれば、
>それを知りたいと思ってます。
>
>ご存知の方、よろしくお願いします。

>  Columns("B:B").ColumnWidth = 17
の部分を

  Columns("B:B").Select
  Selection.ColumnWidth = 17

としても出来ませんか?

【39936】Re:複数シートの書式設定
質問  飛ばない豚  - 06/7/4(火) 14:30 -

引用なし
パスワード
   ▼ハト さん:
> >  Columns("B:B").ColumnWidth = 17
> の部分を
>
>   Columns("B:B").Select
>   Selection.ColumnWidth = 17
>
> としても出来ませんか?

出来ました!!ありがとうございました。

初めに試せば良かったのですが、
>   Columns("B:B").Select
>   Selection.ColumnWidth = 17
   Selection.Style = "Comma [0]"

と、カンマ区切りスタイルを追加設定したところ、
これは、Sheet1のみになってしまいました。

つまり、一旦"Select"すれば、複数シートに一度に書式設定できる
訳ではないようですね。

なにか規則でもあるのでしょうか?
もし分かれば教えていただきたいです。
よろしくお願いします。

【39937】Re:複数シートの書式設定
回答  Kein  - 06/7/4(火) 15:18 -

引用なし
パスワード
   こんなコードでも出来ます。

Sub Copy_CW()
  Application.ScreenUpdating = False
  Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5")).Select
  ActiveWindow.SelectedSheets.FillAcrossSheets Cells
  Sheets(Array("Sheet2", "Sheet3", "Sheet4", "Sheet5")).Select
  Cells.Select
  Selection.Clear
  Range("A1").Select
  Sheets("Sheet1").Select
  Application.ScreenUpdating = True
End Sub

【39960】Re:複数シートの書式設定
お礼  飛ばない豚  - 06/7/4(火) 16:37 -

引用なし
パスワード
   ▼Kein さん:
以下のコードで、なんとか希望の動きをするように出来ました。

Sub Macro3()
  
  Sheets("Sheet1").Activate
  Columns("A:A").ColumnWidth = 8.38
  Columns("B:B").ColumnWidth = 17
' 〜 中略 〜
  Columns("I:I").ColumnWidth = 7
  Columns("J:J").ColumnWidth = 4.63
  Columns("F:G").Style = "Comma [0]"
  
  Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5")).Select
  ActiveWindow.SelectedSheets.FillAcrossSheets Cells, xlFillWithFormats
  
End Sub


Keinさん、ハトさん、ありがとうございました。

7303 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free