Contents
Excel VBA・マクロ初心者の方は、小さい・簡単なマクロを作るだけで便利になります。
事務の仕事をしている方は日々Excelを使っているという方が多いのではないでしょうか?
私自身も毎日の事務でExcelを使っています。
Excelで同じことを繰り返す作業があれば、Excelが自動実行するようにマクロを作成すると便利です。
単純な繰り返しの作業・複雑な手順で間違えないように気を使う作業は、マクロでExcelが自動実行するようにすると、便利です。
マクロ初心者・VBA初心者の方は、自分にとって不便を解決する“小さくて簡単”なマクロを作ることから始めてみてはいかがでしょうか。
小さくて、簡単なマクロを紹介した記事は以下のものがあります。
最低限のVBA記述(Excel)だけでも役立つことはある。(例.ひな型ファイルとの組み合わせ)
Excel選択行を色付するマクロ(Activeline_Activehighlight)を削除するマクロ
Excelで開いているSheetの“いま選択しているセルのある行”を色付けして表示させて見やすくする。「ActiveLine_Highlight()」マクロの紹介
小さい・簡単なマクロがいくつかできたら、「call」で組み合わせて使うとさらに便利。
小さい・簡単なマクロを作った。いくつかのマクロをそのまま複数続けて実行したいなら、callを使えば簡単に出来ます。
Callは省略できますが、別のモジュールからプロシージャを呼び出す(「call」する)には、以下の2つが必要です。
- モジュールがPrivateではなくPublicであること。
- call プロシージャ名.モジュール名 で記述してあること。
(同一モジュール内ではプロシージャ名を記述するだけで呼び出せます。)
2つ以上のマクロを合わせて続けて実行したければ、
1つのVBAプロシージャに別のVBAプロシージャの内容をコピー&ペースト(追加)すればもちろん動きます。
しかし、例えば3つのマクロ VBAプロシージャに別のVBAプロシージャの内容を追加したら、もしある小さなマクロ VBAプロシージャを部分的にモジュール修正した時には、3つのVBAプロシージャ全部を書き換えなければなりません。
面倒ですし、ミスの元です。
修正は必要なモジュール1つにするべきでしょう。
そんなときには「call」を使ってみましょう。
「Module2」に「ActiveLine_highlight」
Public Sub ActiveLine_highlight()
Cells.Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add _
Type:=xlExpression, Formula1:= _
“=CELL(“”ROW””)=ROW()”
Selection.FormatConditions(1).Interior.ColorIndex = 35 ‘ColorIndex 好みの色を指定します。
Range(“A1”).Select ‘Range(“A1”)を選択するのは私の好み
With ActiveWorkbook.VBProject.VBComponents(“ThisWorkbook”)
.CodeModule.InsertLines (.CodeModule.CountOfLines + 1) _
, “Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)” _
& vbCrLf & _
“Application.ScreenUpdating = True” _
& vbCrLf & _
“End Sub”
End With
End Sub
‘———————————————————————————————————————–
Public Sub Del_ActiveLine_highlight()
Dim Cnt As Long
With ActiveWorkbook.VBProject.VBComponents(“ThisWorkbook”)
Cnt = .CodeModule.CountOfLines
.CodeModule.DeleteLines 1, Cnt
End With
Cells.Select
Selection.FormatConditions.Delete
Range(“A1”).Select ‘Range(“A1”)を選択するのは私の好み
End Sub
「Module3」に「囲み罫」(マクロ記録で作成するとこのように長い記述になります。今回はそのまま。)
Sub 囲み罫() ‘[ctrl]+[shift]+[End]キーで’アクティブセルから始まってデータが入力されている全てのセルを選択して囲み罫かける。
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Range(“A2”).Select
End Sub
「Module4」に「拡大125」
Sub 拡大125()
ActiveWindow.Zoom = 125
Application.ReferenceStyle = xlA1
End Sub
という3つの小さくて簡単なマクロが作ってあります。
この3つのマクロを順番に連続して実行したいという場合は以下のように
「call」で簡単に呼び出せます。
Sub Callの使い方()
Call Module2.ActiveLine_highlight
Call Module3.囲み罫
Call Module4.拡大125
End Sub
マクロ「Callの使い方」を実行する前(before)と実行した後(after)は以下の通りです。
——————————————
Sub 拡大125()
ActiveWindow.Zoom = 125
Application.ReferenceStyle = xlA1
End Sub
——————————————
マクロ「拡大125」で125%で拡大ズームして表示しました。
ズームした結果、大きくて逆にみずらくなってしまったという場合は。
——————————————
Sub 拡大125()
ActiveWindow.Zoom = 85
Application.ReferenceStyle = xlA1
End Sub
——————————————
とマクロ「拡大125」のプロシージャの内容を書き換えれば、
マクロ「Callの使い方」の結果も自動的に変更されます。
1つの作業で2つの修正ができたことになります。
無駄な手間・時間を使わずに済みました。何よりもミスの削減になります。
仕事もExcel VBA・マクロ作成も、“小さく・分割”して行なう。持ち時間に合わせて組み合わせれば少しでもできる。
簡単に、楽に、便利を実現しましょう。
小さなマクロを1つ作ると1つ便利になります。
小さな便利を小さなマクロ1つ作ることで実現しましょう。
マクロの作成は、モジュールは小さくして、持ち時間や疲れ具合に合わせて、取り組めるように組み立ててみてはいかがでしょうか?
そして、小さなマクロをcallで組み合わせて、もっと便利を実現しましょう。
仕事の作業も同じ発想で単位をできるだけ小さくしてみてはいかがでしょうか。
30分かかっている作業があったら、できれば10分✖3つの作業に分割できないか、もっとできれば5分✖6つの作業に分割できないか、試してみます。
そうすれば、何かの拍子に手待ち時間が10分できたとすれば、1つの作業(または5分✖2つ)をする。
30分の時間がまとまってとれず、作業が進まずイライラするなら、小さい作業が1つ済めば残りが1つ減ります。
こちらの記事
「Excelのリボンは非表示にする。必要な時だけ alt キーでリボンを呼び出す。」
マウスを使わずにキーボードだけでサクサクとExcelを操作する方法を紹介していますので、合わせてお読みいただければと思います。
今日の1日1新:ベトナムコーヒーとイチゴバナナスムージー
サンマルクカフェ
どちらも美味しかったです。
小倉健二(労働者のための社労士・労働者側の社労士)Office新宿(東京都)
最新記事 by 小倉健二(労働者のための社労士・労働者側の社労士)Office新宿(東京都) (全て見る)
- 【産休・育休】厚生年金・健康保険の保険料免除について知ろう - 2023年3月29日
- 2023年4月1日【出産育児一時金】8万円増額1児50万円支給 - 2023年3月16日
- 【60歳で老齢年金繰上げ受給を検討中】繰上受給したあとで障害年金請求できるか? - 2023年3月14日