- ベストアンサー
Excelにて、列の幅をマクロで変えるには?
今、提出用の資料作成にて、 従業員の稼動実績を記載した表部分を隠して A3にかたち良く収まるように印刷できるよう列の調整をしようと マクロの記録を行い、下記のようなプログラムを得ました。 ところが、実行すると("U:AD")の部分は隠れているのですが、 それ以外は全て、列の幅が"20"になってしまいます。 一体どのようにすれば列の幅を記載通りに調整できるのでしょうか? お教え下さい。宜しくお願いします。 * * * * * * * * * * * * * * * * * Sub 稼動実績を隠す() ' ' 稼動実績を隠す Macro ' マクロ記録日 : 2007/9/27 ユーザー名 : ######## ' ' Columns("A:M").Select Range("A2").Activate Selection.ColumnWidth = 8 Columns("N:O").Select Selection.ColumnWidth = 16 Columns("P:P").Select Selection.ColumnWidth = 20 Columns("R:T").Select Selection.ColumnWidth = 20 Columns("U:AD").Select Selection.ColumnWidth = 0 Columns("AE:AF").Select Selection.ColumnWidth = 20 Columns("AG:AG").Select Selection.ColumnWidth = 8 Columns("AH:AH").Select Selection.ColumnWidth = 54 Columns("AI:AP").Select Selection.ColumnWidth = 20 Columns("AQ:AQ").Select Selection.ColumnWidth = 8 Columns("AR:AS").Select Selection.ColumnWidth = 20 Range("A2").Select End Sub
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
列幅を数値で指定したい場合は、複数列なら Columns("A:B").ColumnWidth = 8 また1列なら Columns(1).ColumnWidth = 8 Range("A1").EntireColumn.ColumnWidth = 8 のように書けばよいです。わざわざセルをSelectする必要はありません また列幅を自動調整するなら Columns("A:B").Autotfit で入力文字に合わせて自動調整します
その他の回答 (2)
- marbin
- ベストアンサー率27% (636/2290)
#1です。 >これはA列だけが対象になってますね。 A-Mが対象になってました。 失礼しました。
- marbin
- ベストアンサー率27% (636/2290)
>Columns("A:M").Select >Range("A2").Activate >Selection.ColumnWidth = 8 これはA列だけが対象になってますね。 他の部分には問題ないように思われます。 ↓の現象はおきませんでした。 >それ以外は全て、列の幅が"20"になってしまいます。
補足
早速の回答ありがとうございます。 質問のマクロは、記録通りのなのですが、 それでは駄目って事なのでしょうか? 下記の ・ ・ Columns("A:M").Select Range("A2").Activate ←この部分? Selection.ColumnWidth = 8 Columns("N:O").Select ・ ・ を削除すれば出来ると言う事でよかったですか?
お礼
どうも、何度もご回答頂きありがとうございました。 最初のマクロでは、どぉ修正しても出来なかったのですが、 #3.でお書き頂いた方法で、下記のように直すと出来ました。 つねにセレクトしていたのがマズかったのですかね;; とにかく無事出来るようになりました。 本当にありがとうございました。 * * * * * * * * * * * * * * * * ' Columns("A:M").ColumnWidth = 8 Columns("N:O").ColumnWidth = 16 Columns("P:P").ColumnWidth = 20 Columns("R:T").ColumnWidth = 20 Columns("U:AD").ColumnWidth = 0 Columns("AE:AF").ColumnWidth = 20 Columns("AG:AG").ColumnWidth = 8 Columns("AH:AH").ColumnWidth = 54 Columns("AI:AP").ColumnWidth = 20 Columns("AQ:AQ").ColumnWidth = 8 Columns("AR:AS").ColumnWidth = 20 Range("A2").Select End Sub