2007年6月23日土曜日

第11回目 便利マクロの事例

○第11回目 便利マクロの事例
 単純な操作マクロから。

 操作マクロで一番大切なのは、どんな操作が自分にとって一番有効なのかということです。この洗い出しなしに操作マクロを作ったりしても、数が多くなってかえって管理が難しくなります。
 
 よく使っているマクロから。

【例1】セルを結合させる。同時に文字中央にする。
 1.結合するセルを選択する。セルの選択は自由です。
 2.マクロ記録のはじめ。Alt、T,M,R。このときのマクロ名の頭に"a90"なりを付加しておく。通常は"macro"で始まるので、"a90macro…"とかなる
 3.Ctrl+1でセル変種のダイアログのセルタブを出して、
  横位置=⇒中央揃え
  "セルの結合する"をオン
 ダイアログを閉じる。
 4.マクロ記録の終了。Alt、T,M,R。
 これでおしまいです。
 
 ためしに実行してみましょう。
 まず、結合したいセルの範囲を設定します。
 Alt+F8でマクロのダイアログが出るの、その中から"a90macro…"を選択し実行する。"a90"を付加してのは、マクロ一覧の先頭のほうにくるからです。
 これだけで、セルが結合され、その中の文字が中央揃えになります
 
 マクロは次の通りとなります。
 自分でコーディングするのではなく自然にできてしまうのです。

 Sub a19Macro5()
' Macro5 Macro
' マクロ記録日 :
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With
End Sub

 この操作は、中央揃えとセル結合ですので、次のように無用部分を削除してもいいです。記述していないものは、それまでのものがそのまま適用されるということです。
 
 Sub a19Macro5()
' Macro5 Macro
' マクロ記録日 :
With Selection
.HorizontalAlignment = xlCenter
.MergeCells = True
End With
End Sub
 
【例2】格子状に罫線を引く
 これも簡単で、範囲を選択したあとで、マクロの記録を動かし、通常の操作をすれば出来てしまいます。
 このマクロの場合、一列のもの、一行のもの、セルが一つのものはエラーになってしまいます。あまり気にしないでマクロを終了させてください。一列のもの以外は予定どおりに線が引けると思います。
 ですので、一列の場合は、複数列を指定し動かし、不要な列を削除するというやり方で対応できます。
 マクロの例を掲げて見ます。複雑ですね。これを自分でコーディングするのはかなり大変ですが、マクロの記録を使えば簡単です。
《マクロの例》
Sub a19Macro6()
' a19Macro6 Macro
' マクロ記録日
'
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
End Sub

 あくまでの自分の操作で有益なものという選択眼になりますが、筆者が使っている機能を上げてみますと、
 
【例3】標準的なヘッダー、フッターの設定
【例4】そのシートの内容をノンストップで印刷。(シートの全ページが印刷されます。通常は印刷ダイアログが出て、手間が一つ余計にかかります)
【例5】指定範囲だけを印刷
【例6】文字を縦位置で中央揃えに

※マクロにはショートカットキーをつけ、それで起動、がとても便利です。ショートカットキーは有限なので、機能を絞り込む必要が出てきます。

0 件のコメント: