【Excel】エクセルのVBA(マクロ)にて行の高さの指定や取得や自動調節する方法【シート、指定行、複数行など】 | モアイライフ(more E life)
EXCELのYouTube始めました!

EXCEL初心者に向けたYouTubeチャンネルを開始しました(^^)/
ぜひチャンネル登録よろしくお願いします!

効率よくエクセルを学ぶ!

【Excel】エクセルのVBA(マクロ)にて行の高さの指定や取得や自動調節する方法【シート、指定行、複数行など】

Excelのスキルアップ
本サイトでは記事内に広告が含まれています

エクセルはデータ解析・管理を行うツールとして非常に機能が高く、上手く使いこなせると業務を大幅に効率化できるため、その扱いに慣れておくといいです。

ただ機能が充実しているあまり初心者にとっては処理方法がよくわからないことも多いといえます。

例えばエクセルのVBA(マクロ)にてて行の高さや指定や取得や自動調節する(シート、指定行、複数行など)にはどう処理すればいいのか理解していますか。

ここでは、このクセルのVBA(マクロ)にて行の高さや行の高さを変更したり自動調節する(シート、指定行、複数行・複数行など)について解説していきますので、参考にしてみてください。

 

スポンサーリンク

エクセルのVBAでの行の高さの変更・指定の方法【マクロ:RowHeight】

それでは以下のサンプルを用いて、エクセルのVBAにてシート全体の行の高さを指定・変更する方法について見ていきましょう。

 

シート全体の行の高さを一括変更するためのサンプルコードは以下の通りです。

Sub 行の高さの指定()
Cells.RowHeight = 35
End Sub

マクロの画面をalt+F11にて開き、以下のよう入力します。

 

上のコードの意味を確認していきます。

Sub 行の高さの指定()

→マクロ名を「行の高さの指定(」として、定義しています

 

Cells.RowHeight = 5

→Cellsにてシート全体(すべてのセル)を指定。

.RowHeight = 35 にて、行の高さをすべて35に指定・変更としています。

 

End Sub

終了

という意味になります。

VBA画面を閉じ、マクロを実行させましょう。

この操作の実行によってシート全体の行の高さを35と変更することができました。

指定の1行のみの行の高さを変更する方法【マクロ】

上ではシート全体の行の高さをVBAにて一括変更しましたが、ある特定の1行のみの高さをマクロにて指定したいこともあるでしょう。

この場合には、以下のサンプルコードを使用するといいです。

Sub 行の高さの指定2()
Rows(5).RowHeight = 35
End Sub

 

基本的なコードは、VBAにおけるシート全体の行の高さを指定する方法と似ていますが、一部Cells(セルすべての指定) → Rows(5)(今回は5行目のみの指定)と変更しています。

単純に5行目という1行のみを指定したわけです。今回はその高さを35としてみましょう。

これでマクロを実行すると、以下のよう1行だけの行の高さを変更することができました。

 

エクセルのVBA(マクロ)にて複数行の高さを変更・指定する方法

なお、マクロにて指定の1行のみでなく複数行の高さを一気に変更したいこともあるでしょう。

このような場合では、以下のよう複数行を指定した上で行の高さを変えていくといいです。

Sub 行の高さの指定2()
Range(“2:4”).RowHeight = 35
End Sub

 

このVBAを実行すると以下の通りです。

 

エクセルのVBA(マクロ)にて1行おきに行の高さを指定する方法【連続でない】

なお上ではVBAにて連続する複数行の挿入を行ったものの、1行おきなどの連続でない複数行の高さを変えたいこともあるでしょう。

この場合のサンプルコードは以下の通り。

Sub 飛ばし行の高さ変更()
Dim i, lRow As Long
maxrow = Worksheets(“Sheet11”).Cells(Rows.Count, 1).End(xlUp).Row
For i = maxrow To 2 Step -2
Rows(i).RowHeight = 35
Next i
End Sub

 

コードの意味は以下の通り。

Sub 飛ばし行の高さ変更()

→マクロ名の定義

 

    Dim i, lRow As Long

→後のfor文で使う変数iの定義

 

     maxrow = Worksheets(“Sheet11”).Cells(Rows.Count, 1).End(xlUp).Row

→最終行の取得。Cells(Rows.Count, 1).で1列目の最終行に着目、End(xlUp).Row →一度一番下にいき、そこから上に飛び、最終行を取得している

 

  For i = maxrow To 2 Step -2

Rows(i).RowHeight = 35

Next i

→ループ処理て、採取行から1行おきに2行目に達するまで、行の高さを35に変更

 

End Sub

→終了

です。

実行結果は以下の通り。

ただマクロではさまざまな記載方法があるため、あくまでコードは一例と覚えておきましょう。

 

VBAにて行の高さの自動調整を行う方法

※編集中

エクセルのVBA(マクロ)にて行の高さの取得を行う方法

上では行の高さの変更をマクロにて行う方法でしたが、行の高さの取得を行いたいこともあるでしょう。

指定の行(今回は2行目にしてみます)の幅を取得するには、以下のコードを用いるといいです。

Sub 行の高さの取得()
Dim d As Double
d = Rows(2).RowHeight
MsgBox d
End Sub

これを実行すると、以下のように指定の行の高さがメッセージボックスとして表示されました。

上のコードの意味は以下の通り。

 

Sub 行の高さの取得()

→マクロ名の定義

 

Dim d As Double

→dの型の定義

 

d = Rows(2).RowHeight

→2行目の行の高さを取得

 

MsgBox d

メッセージボックスとして表示

 

End Sub

終了。

 

まとめ VBA(マクロ)にて行の高さの指定や取得などを行う方法【エクセル】

ここでは、エクセルのマクロにて行の高さの指定や取得や自動調節する方法などについて解説しました。

基本的には、一つ一つのコードの意味を理解し流れを考えてスクリプトを組めばいいです。

エクセルでのさまざまな処理になれ、日々の業務を効率化させていきましょう。

 

コメント

スポンサーリンク
タイトルとURLをコピーしました