シートの行の高さをセンチで指定したい!標準の設定からシートを自分の好みの設定に変更
動画でExcel 標準の設定からシートを自分の好みの設定に変更
標準の設定からシートを自分の好みの設定に変更
標準のフォントを自分の好きな規定のフォントで、常に使いたいときは、Excelのオプションを開いてもらって
全体という項目の中ほどにある、新しいブックの作成時というところで、規定フォントと使用するフォントを選ぶことができます。
しかし「行の高さをセンチで指定したい!」そんなことはオプション設定ではできません。マクロを使いましょう。
- 【動画で解説している内容】
- 1.Excelのデフォルトシート設定を変更する方法
- 2.新しいワークブック作成時に好みのフォントとサイズを設定する方法
- 3.VBAマクロを使用して行の高さと列の幅をセンチメートル単位で変更する方法
- 4.シートごとに異なる設定を適用する方法
- 5.ワークブック全体の設定をカスタマイズする方法
- 6.設定を標準設定に戻す方法
- 7.ExcelのVBAコードの基本的な構文と書き方
(サンプルファイルは、こちらです。 標準の設定からシートを自分の好みの設定に変更、サンプル11回)
マクロ動画 標準の設定からシートを自分の好みの設定に変更
Excel の標準のフォントと行の高さ列の幅
オプションの全般タブにある、新しいブックの作成時の項目で規定として使うフォントと、フォントサイズを変更することができます。
図では規定値の游ゴシックを、Webからダウンロードしてインストールした、07やさしさゴシックに変更しました。フォントサイズは規定値の11のままです。
ただし、これは自分でつかう場合の設定です。組織で使うExcelの場合は、その決まりに従ってください。
VBAでシートのフォントと行の高さ列の幅を指定
マクロを使ってシートのフォントの種類やサイズを変更したり、行の高さ列の幅を変更する場合は、次のように書くことができます。
with active sheet このactive sheetだけ変更したいと思います。
そして一応下に
end withですね。
With構文を入れ子で使っています。
With構文を使うと、ここでは 親オブジェクトがアクティブシート ですが、 共通の親オブジェクトを省略した書き方がそのWith構文の内側でできるわけです。そうするとコードがすっきりします。
内側のWith構文で、フォントの種類とサイズを指定しています。
外側で、行の高さをポイントで指定、列幅を文字数で指定しています。この指定方法がデフォルトです。
現在のフォントでシートの行の高さと列の幅の規定値は以下のようになっています。
実行すると、このように変わります。
コードは以下のようになります。列は1列目だけを文字数3に設定しました。
列全体を設定したい時は、列番号は記述しません。
.Columns.ColumnWidth = 3
Sub シートフォントをセット() With ActiveSheet With .Cells.Font .Name = "メイリオ" .Size = 16 End With .Rows.RowHeight = 28 'ポイント .Columns(1).ColumnWidth = 3 '文字数 End With End Sub
今度は、フォントを変更し、列全体を設定してみました。
コードは以下のように設定しました。
マクロなら、
気に入った設定ができるまで、何度でもコードを書き換えることができますね。
Sub シートフォントをセット2() With ActiveSheet With .Cells.Font .Name = "BIZ UDPゴチック" .Size = 16 End With .Rows.RowHeight = 28 .Columns.ColumnWidth = 3 End With End Sub
標準の設定に戻したい
標準のシートの設定に戻したい場合は次のコードで簡単に戻すことができます。
行の高さと列の幅について、規定のフォントを変更すると微妙に変わる場合があります。
以下は、Excelの2010以降、Excel2016の時の設定です。
ご自分のExcelのバージョンで新規ブックを作成してサイズは確認しておくと良いでしょう。
Sub 標準設定() With ActiveSheet With .Cells.Font .Name = "游ゴチック" .Size = 11 End With .Rows.RowHeight = 18.75 .Columns.ColumnWidth = 8.38 End With End Sub
センチで指定する
今回のマクロは実は行の高さや列の幅をセンチで設定したいという内容です。
それでVBAのメソッドにApplication.CentimetersToPointsというメソッドがあって
ポイントをセンチに変えるということができるのですが、それはRowHeightの場合です。
RowHeightはポイントで表示されていますからそのまま使えます。
けれどもcolumnsの場合は、文字数なので実際にその表でどの文字を使ってるかということによっても変わってきてしまうのです。
変換処理をしなければいけません。元の基準が同じでないので、厳密にはピッタリにはならないこと、誤差があることを了承してください。
詳しくは動画内で説明しています。
上記は行の高さや列の幅をセンチで設定するだけのコードです。
同じコードを3回繰り返しているのは、通常しない操作なので、Excelが抵抗する(?ほんとに?)ので繰り返しています。
上記は1列目だけを1cmに設定しましたが、全体を設定するときは
Columns(1)を
Columnsに変更してください。
Sub 行列センチでセット1() With ActiveSheet With .Cells.Font .Name = "メイリオ" .Size = 12 End With Rows("1:10").RowHeight = Application.CentimetersToPoints(1) Columns(1).ColumnWidth = Application.CentimetersToPoints(1) _ * (Range("A1").ColumnWidth / Range("A1").Width) Columns(1).ColumnWidth = Application.CentimetersToPoints(1) _ * (Range("A1").ColumnWidth / Range("A1").Width) Columns(1).ColumnWidth = Application.CentimetersToPoints(1) _ * (Range("A1").ColumnWidth / Range("A1").Width) End With End Sub
こちらは、範囲を指定して1cmに設定したコードです。
Sub 行列センチでセット2() With ActiveSheet With .Cells.Font .Name = "メイリオ" .Size = 12 End With Rows("1:10").RowHeight = Application.CentimetersToPoints(1) Columns("A:J").ColumnWidth = Application.CentimetersToPoints(1) * (Range("A1").ColumnWidth / Range("A1").Width) Columns("A:J").ColumnWidth = Application.CentimetersToPoints(1) * (Range("A1").ColumnWidth / Range("A1").Width) Columns("A:J").ColumnWidth = Application.CentimetersToPoints(1) * (Range("A1").ColumnWidth / Range("A1").Width) End With End Sub