新人プログラマ応援にあたって
プログラミングTips紹介
テスト項目書の作成に役立ったのでご紹介。
処理前後にあるFocus = True(False)
はこちらのブログ記事のものを利用させて頂いております。
(よっぽどループ処理が多い時に入れるか、処理中のちらつきが気になるときに入れると良いです)
最初はテスターとして入ることもあるでしょうけれども、Excelマクロ/VBAを学んでおくと、作業効率がグンと上がるのでオススメです。
イメージ画像は後日更新します。
利用方法としては、画面左上のリボンメニューから追加、マクロを指定してください。
(やり方はここでは割愛します。ググる力(調査力)も大事にしてみてください)
補足
- コメントアウト(処理の無効化)している部分は、頭の「'」だけを外してもかまいません。
- ↑特に、処理量が多いときにフリーズ(したような状態)をある程度防げます。
- Focusは「(処理に)集中する」の意味。Trueで高速化モード、Falseで通常モード。
- ↑セルへの入力や再表示って、回数が多いと結構時間かかるので、入力周りのループ処理には是非入れてください。
- ↑※エラー時も含め、必ず通常モードに戻る書き方をしてください。通常モードに戻らないと、数式などの再計算が行われないままになります。(3つめのサンプルに例を掲載します)
ソースコード
MergeCell.bas
Public Sub MergeVartical() '縦方向の結合
On Error GoTo Finally 'エラーが起きたら最後の処理へ
Dim colRng As Range '選択列を格納するのに宣言
Focus = True '描画等の処理停止
For Each colRng In Selection.Columns '選択範囲の列ごとに
colRng.Merge '選択部分の列を結合
'DoEvents '「応答無し」の防止用のおまじない
Next
Finally:
Focus = False '描画等の処理再開
End Sub
Public Sub MergeHorizontal() '横方向に結合&縮小して表示
On Error GoTo Finally 'エラーが起きたら最後の処理へ
Dim rowRng As Range '選択行を格納するのに宣言
Focus = True '描画等の処理停止
For Each rowRng In Selection.Rows '選択範囲の行ごとに
rowRng.Merge '選択部分の行を結合
rowRng.ShrinkToFit = True '結合セル内に収まるように文字を縮小
'DoEvents '「応答無し」の防止用のおまじない
Next
Finally:
Focus = False '描画等の処理再開
End Sub
' 参考:疑似Try-Catch-Finally
Sub ErrCatchFinally()
On Error Goto Err
Focus = True '描画等の処理停止
' 実行時エラーが起こるような処理
Goto Finally ' 何事も無ければ最後の処理へ
Err:
' エラー情報の表示
MsgBox "<" & Err.Number & ">: " & Err.Discription
Finally:
Focus = False '描画等の処理再開
End Sub