8/20/2017

Excel。マクロ012。列を挿入して列幅を変更する方法を確認してみよう

Excel。マクロ012。列を挿入して列幅を変更する方法を確認してみよう

<VBA>

事務職でも、少しExcel VBAを知っていると、
確かに作業効率は改善されるようですが、
難しいと感じている人も多いようです。

とはいえ、少しずつでいいので、慣れていくといいですね。

ということで、
今回は、【列を挿入】と【列幅の変更】について確認してみましょう。

次の表があります。

B列とC列の間に1列挿入したいとします。

【単数列の挿入】

では、VBAを作っていきましょう。

Sub 単数列の挿入()
    Columns("c").Insert
End Sub

たったコレだけで、C列を挿入することが出来ました。
これが基本形ですね。これをアレンジしてきます。

例えば、B列とC列の間に2列挿入する場合はどうしたらいいでしょうか?
Sub 複数列の挿入()
    Columns("c:d").Insert
End Sub

このようにすれば、複数列を挿入することができます。

このように複数列でも簡単に挿入することが出来ましたね。

ところが、通常列挿入をすると、列の右側の書式にするのか、
それとも左側の書式にするのかを選択することが出来ますが、
当然、マクロVBAでも設定することが出来ます。

ではアレンジしてみましょう。

Sub 複数列の挿入()
    Columns("c:d").Insert copyorigin:=xlFormatFromRightOrBelow
End Sub

これで実行すると、次のようになります。

列の右側の書式が反映されましたね。

これは、copyorigin:=xlFormatFromRightOrBelowを使うことによって、
列の右側の書式を反省することができるのです。

列の左側を反映するならば、
copyorigin:=xlFormatFromLeftOrAbove
を使うことで設定することが出来ます。

では、挿入したのはいいのですが、
列幅を変更する場合はどうしたらいいのかを確認していきましょう。

【列幅変更】

Sub 列幅指定変更()
    Columns("c:d").ColumnWidth = 3
End Sub

.ColumnWidthプロパティを使うことで、列幅を指定することが出来ます。

このように簡単に列幅を変更することが出来ますね。

では、最後にC1にフリガナという文字を入れた後に、
列幅を変更しますが、今回は、文字幅に合わせるように列幅を変更。

つまり列の自動調整を行うようにしてみましょう。

Sub 列幅自動調整変更()
    Columns("c:d").Insert copyorigin:=xlFormatFromRightOrBelow
    Columns("c:d").ColumnWidth = 3
    Range("c1").Value = "フリガナ"
    Range("c1").EntireColumn.AutoFit
End Sub

実行すると次のようになりました。

D列は列幅3のままですが、
C列はフリガナという文字幅に合わせて自動調整されていますね。

このように列幅を自動調整したいときには、AutoFitプロパティを使います。

ちなみに、AutoFitプロパティの前の、EntireColumnプロパティは、
エンタイアカラムと読みます。

これは、対象を含む列全体を参照するプロパティです。

要するに、C1は4文字分の幅ですが、
それ以上の文字数のセルがC列にあれば、
当然文字数で自動調整するわけなので、
EntireColumnプロパティも忘れないようにしましょう。

今回は、列の挿入と列の幅の調整に関しての紹介でした。