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

解決済みの質問

EXCELですべてのワークシートの列幅をそろえたい

既に値が入っている帳票ですがすべて同じ様式の場合、各シートの微妙な幅の違いを直しすべて同じ列幅にしたいのですが
値が入っているときすべてのシートの列幅をいっぺんにそろえる事できますか

投稿日時 - 2018-02-14 13:46:22

QNo.9428984

困ってます

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

VBAになるが
標準モジュールに
Sub test01()
For Each sh In Worksheets  'すべてのシートの
'MsgBox sh.Name
sh.Columns("A:XFD").ColumnWidth = 2 'COLUMNS のsに注意
Next
End Sub
と入れて実行(F5キー)。
「すべての列幅」といっているが、言葉の綾と思うので、Columns("A:XFD").の左端列XFD部分は適当に十分な範囲の列記号に変更するとよい。
>値が入っているときすべ・・
少し手を加える必要があるが、ここでは略。目視で左端列の最代を決めて、
Columns("A:XFD")のXFDを設定すにはどうか。
ーー
各シートのデータのある左端列の最大列番号数は、見る行を見積もれるなら(下記例では第2行目で判定した)、上記コードの多少の改変で簡単に求まる。
Sub test02()
cmm = 1
For Each sh In Worksheets
MsgBox sh.Range("xfd2").End(xlToLeft).Column
cm = sh.Range("xfd2").End(xlToLeft).Column
If cm > cmm Then
cmm = cm
End If
Next
MsgBox cmm
End Sub

投稿日時 - 2018-02-14 15:21:50

お礼

ありがとうございます。VBAはまだ試したことがありませんでした。
試してみます。

投稿日時 - 2018-02-14 16:10:14

ANo.2

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

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

回答(2)

ANo.1

>値が入っているときすべてのシートの列幅をいっぺんにそろえる事できますか
できると思います。
当方はExcel 2013を使用していますがワンタッチですべてのシートを同じ様式にすることは出ませんが雛型のシートを全選択してコピーを実行し、他のシートへ形式を選択して貼り付けで「書式設定」を選べば同じ様式になりました。
貼り付けはシートを1つずつ実行しないといけないようです。
元のブックをバックアップしてから実行してください。(失敗したときにバックアップから復元が必要になります)

投稿日時 - 2018-02-14 14:40:43

お礼

回答ありがとうございます。そうですよね 書式の貼り付けはしてみましたが、色付けしたところも一緒に張り付いてしまって困ってしまいました。なんとか枠だけ貼り付けれるならいいのですか・・・ 

投稿日時 - 2018-02-14 16:08:37

あなたにオススメの質問