【Excel/VBA のこと 10】
新規のシートで資料などを作成していたけど、
なんかちがう・・・やり直す・・・
ってこと、ありませんか?
今までのシートを削除して、新しいシートを追加すればいいのですが、
どうもそれが面倒なときがあります。
また、内容はいいけど、行列のサイズだけやり直したいってこともあります。
・セルのサイズを最初のサイズに戻す
・文字色、背景色をデフォルトに戻す
・オートシェイプの削除
・罫線の削除
のマクロを作成して、全部まとめて実行すれば
シートを最初の状態に戻すことも出来ますよ。
もちろん個別に設定して、特定のところだけ初期化することもできます。
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
セルのサイズを最初のサイズに戻す
マクロ
****************************************
Sub 行列初期サイズ
Cells.rowheight = 16.5
Cells.ColumnWidth = 8.38
End
****************************************
この数値が初期値です。
もしかしたら ver によって変わっているかもしれません。
どういう訳か、VBE に記述すると rowheight と 頭文字が小文字なんです。
Cells・・・全部のセル
row・・・行
height・・・高さ
Column・・・列(柱の意味もあるよ)
Width・・・幅
文字色、背景色をデフォルトに戻す
マクロ(文字色)
**********************************************
Sub 文字色自動
Cells.Font.ColorIndex = xlAutomatic
End
**********************************************
Font・・・文字
Colorindex・・・色番号
Automatic・・・自動
デフォルトではこの「自動」が設定されているので、
xlAutomatic を好んで使っていますが、
「黒」の値を記述しても同じかもしれません。
(違いが分からん・・・)
以下の記述でも文字色を黒に出来ます。
・Cells.Font.ColorIndex = 1
・Cells.Font.Color = RGB(0,0,0)
マクロ(背景色)
**********************************************
Sub 背景色なし
Cells.Interior.ColorIndex = xlNone
End
**********************************************
Interior・・・内部(背景)
Colorindex・・・色番号
None・・・何もない
以下の記述でも背景色を無しに出来ます。
・Cells.Interior.ColorIndex = 0
オートシェイプの削除
マクロ
**********************************************
Sub オートシェイプ削除
ActiveSheet.Shapes.SelectAll
Selection.Delete
End
**********************************************
このマクロで、すべてのオートシェイプを削除できるので、
隠れて増殖して、ファイルサイズを大きくしていた原因を取り除けます。
ActiveSheet・・・アクティブなシート(選択されているシート)
Shapes・・・形、(オートシェイプを指す)
SelectAll・・・全部選択
Selection・・・選択したもの
Delete・・・削除
※オートシェイプを指定する語は ver によって違うかもしれません。
「マクロの記録」で調べてください。
「マクロの記録」は以下の記事も参考に。
罫線の削除
マクロ
**************************************************************
Sub 罫線削除
Cells.Borders(xlInsideVertical).LineStyle = xlNone
Cells.Borders(xlInsideHorizontal).LineStyle = xlNone
End
**************************************************************
罫線の削除を「マクロの記録」を使ってコードを確認すると、
こんなにいっぱい出てきますが、全部消すには下の2つだけです。
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
「Selection」 を 「Cells」に変更すれば、シート全体の罫線を削除できます。
Borders・・・線、境界線
Diagonal・・・斜め、対角線
xlDiagonalUp・・・左下から右上の対角線
xlDiagonalDown・・・左上から右下の対角線
Edge・・・境界、端
xlEdgeLeft・・・セルの左の外側
xlEdgeTop・・・セルの上の外側
xlEdgeBottom・・・セルの下の外側
xlEdgeRight・・・セルの右の外側
Inside・・・内側
Vertical・・・垂直
xlInsideVertical・・・セルの縦線の内側
Horizontal・・・水平、水平線
xlInsideHorizontal・・・セルの横線の内側
LineStyle・・・線種
None ・・・なんもね
マクロ合体!
マクロ
さぁこれで、全部まとめればシートの初期化ができますね。
******************************************************************
Sub シート初期化
’行高
Cells.rowheight = 16.5
’列幅
Cells.ColumnWidth = 8.38
’文字色
Cells.Font.ColorIndex = xlAutomatic
’背景色
Cells.Interior.ColorIndex = xlNone
’オートシェイプ削除
ActiveSheet.Shapes.SelectAll
Selection.Delete
’横罫線削除
Cells.Borders(xlInsideVertical).LineStyle = xlNone
’縦罫線削除
Cells.Borders(xlInsideHorizontal).LineStyle = xlNone
End
******************************************************************
でも、じつは、これをもっと簡略化できるんです。
文字の色と背景色をまとめて初期化
**********************************************
Sub 文字色自動_背景色なし
Cells.Clear
End
**********************************************
これで色を最初の状態に戻せます。
ついでに文字のサイズも規定値に戻ります。
色、オートシェイプ、罫線の初期化
******************************************************
Sub 文字色_背景色_オートシェイプ_罫線_初期化
Cells.Delete
End
******************************************************
なので・・・
**********************************************
Sub シート初期化
Cells.rowheight = 16.5
Cells.ColumnWidth = 8.38
Cells.Delete
End
**********************************************
セルのサイズは、それぞれ設定する必要があるので記述します。
この3行でシートは初期化ができるのです。
ここまでで紹介したマクロをリボンに登録しましょう。
登録方法はこちらを参考にしてください。
注意/Warning!
マクロを使って削除する場合は、慎重にお願いします。
なぜなら、Undo や Ctrl +z で、
「やっぱり無し!!!」ってことができません。
今回は「ぜーんぶやり直し!」ということで削除も含めましたが、
「削除」をマクロで実行する場合は、
覚悟して、ちょー慎重になってください。
tuna-kichi は、行列の削除をマクロでやって痛い目に何度もあったので、
削除のマクロを削除しました。
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/