Excelのこととか色々

マクロをどんな Excel ファイルにも実行できるように設定して、3秒かかる操作も1秒で完了。あといろいろ書いてみます・・・

【Excel/VBA のこと10...いろいろ初期化4点セット】

【Excel/VBA のこと 10】

f:id:tuna-kichi:20200223230704p:plain

新規のシートで資料などを作成していたけど、

なんかちがう・・・やり直す・・・

ってこと、ありませんか?

 

今までのシートを削除して、新しいシートを追加すればいいのですが、

どうもそれが面倒なときがあります。

また、内容はいいけど、行列のサイズだけやり直したいってこともあります。

 

・セルのサイズを最初のサイズに戻す

・文字色、背景色をデフォルトに戻す

・オートシェイプの削除

・罫線の削除

 

のマクロを作成して、全部まとめて実行すれば

シートを最初の状態に戻すことも出来ますよ。

もちろん個別に設定して、特定のところだけ初期化することもできます。

 

 

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

セルのサイズを最初のサイズに戻す

マクロ

****************************************
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・・・自動

 

f:id:tuna-kichi:20200328182829p:plain

デフォルトではこの「自動」が設定されているので、

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 によって違うかもしれません。

 「マクロの記録」で調べてください。

 「マクロの記録」は以下の記事も参考に。

 

www.tuna-kichi.com

 

罫線の削除

マクロ

**************************************************************
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行でシートは初期化ができるのです。

 

ここまでで紹介したマクロをリボンに登録しましょう。

登録方法はこちらを参考にしてください。

 

www.tuna-kichi.com

   

 

注意/Warning!

マクロを使って削除する場合は、慎重にお願いします。

なぜなら、Undo や Ctrl +z で、

「やっぱり無し!!!」ってことができません。

 

今回は「ぜーんぶやり直し!」ということで削除も含めましたが、

「削除」をマクロで実行する場合は、

覚悟して、ちょー慎重になってください。

 

tuna-kichi は、行列の削除をマクロでやって痛い目に何度もあったので、

削除のマクロを削除しました。

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/