2011-09-15 19 views
4

以下のコードはシートを選択しますが、セルを中央に揃えられません。VBA Excel VerticalAlignment = xlCenterが動作しません

   wb.Sheets(1).Columns("A:L").Select 
       With Selection 
        .VerticalAlignment = xlCenter 
       End With 

ありがとうございます!

wb.Sheets(1).Activate 
wb.Sheets(1).Columns("A:L").Select 
With Selection 
    .VerticalAlignment = xlCenter 
End With 

はシート全体を選択し、それを中心に垂直方向の配置を変更することはありません。

wb.Sheets(1).Columns("A:L").VerticalAlignment = xlCenter 

何もしません。

私はたHorizo​​ntalAlignmentを望んでいない:)

私がコラムを見つけたVerticalAlignmentをはxlCenterに設定されているが、列の下に細胞がVerticalAlignmentをはxlCenterに設定されていません。

+0

詳細情報が必要です。これは私のために働く。おそらく 'VerticalAlignment'の代わりに' Horizo​​ntalAlignment'を使うつもりですか? – Jay

+1

このコードは、 'wb.Sheets(1)'がアクティブなワークシートである場合はいつでも動作します。それ以外の場合は失敗します。私はマクロを記録することでVBAをプログラムすることを学ぶ人々の共通の罠なので、この質問をアップヴォーヴングしています。 – adamleerich

+0

'Horizo​​ntalAlignment'ではなく' VerticalAlignment'をしてもよろしいですか?ただチェックしてください – PaulStock

答えて

12

はないSelectを行うと、理由もなくSelectionでは動作しません。それがレコーダーのものです。読み取りに時間がかかり、実行が遅くなり、エラーが発生しやすくなります。

wb.Sheets(1).Columns("A:L").VerticalAlignment = xlCenterははるかに優れています。

あなたは同じ範囲でいくつかのことを行う必要がある場合は、

with wb.Sheets(1).Columns("A:L") 
     .VerticalAlignment = xlCenter 
     .somethingElse 
End with 
3

これは、Excelオブジェクトモデルを新たに学習する人々にとってよくあるエラーです。すべてのワークシートには現在選択されている範囲が必要ですが、Selectionは常にアクティブワークシートの選択範囲を指しています。あなたは.Activateシートの選択範囲のシートをSelectionオブジェクトにする必要があります。

wb.Sheets(1).Activate 
wb.Sheets(1).Columns("A:L").Select 
With Selection 
    .VerticalAlignment = xlCenter 
End With 

それともSelectionオブジェクトに依存しないようにコードを変更することができます:

wb.Sheets(1).Columns("A:L").VerticalAlignment = xlCenter 
1

を使用.HorizontalAlignment = xlCenter.VerticalAlignment = xlCenterを交換してください。

関連する問題