• ベストアンサー

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

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

列幅を数値で指定したい場合は、複数列なら Columns("A:B").ColumnWidth = 8 また1列なら Columns(1).ColumnWidth = 8 Range("A1").EntireColumn.ColumnWidth = 8 のように書けばよいです。わざわざセルをSelectする必要はありません また列幅を自動調整するなら Columns("A:B").Autotfit で入力文字に合わせて自動調整します

guchi_yama
質問者

お礼

どうも、何度もご回答頂きありがとうございました。 最初のマクロでは、どぉ修正しても出来なかったのですが、 #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

その他の回答 (2)

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.2

#1です。 >これはA列だけが対象になってますね。 A-Mが対象になってました。 失礼しました。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

>Columns("A:M").Select >Range("A2").Activate >Selection.ColumnWidth = 8 これはA列だけが対象になってますね。 他の部分には問題ないように思われます。 ↓の現象はおきませんでした。 >それ以外は全て、列の幅が"20"になってしまいます。

guchi_yama
質問者

補足

早速の回答ありがとうございます。 質問のマクロは、記録通りのなのですが、 それでは駄目って事なのでしょうか? 下記の ・ ・ Columns("A:M").Select Range("A2").Activate     ←この部分? Selection.ColumnWidth = 8 Columns("N:O").Select ・ ・ を削除すれば出来ると言う事でよかったですか?

関連するQ&A

専門家に質問してみよう