VBA モジュールエクスポート

 

VBA 印刷設定(すべての列を1ページ)

 

VBA 選択範囲の行を一意に取得

 

VBA 労働時間計算

9:00始業なら8:59:59までOKで、9:00の打刻はダメという話を時々聞くが、秒まで記録しない場合はfrom-toどちらも秒を切り捨てるので、9:00の打刻は9:00:00と考えて、問題ないとした方が分かりやすい。

***

Ifなどで時刻の条件を書くとき、浮動小数の関係で誤差が生じることがある。セルに入力された値やTimeValue()の値そのままなら問題ないけど、何かしら計算した場合はDateDiff()、あるいはTimeValue()を経由させるなどしたほうが安全。

***

労働時間の計算で15分単位切り捨ての処理をしようとしたが(ちなみに、これは管理会計の話で給与では切り捨てちゃダメ)休憩が15分単位ではなかったので、休憩を挟んで15分をカウントして集計することにした。

こういう計算でループを回すのは悪手だと思うけど、難しいことはできないので、とりあえずループで計算してしまった。。

***

深夜を入力する場合、VBAでは[h]:mmという表記を扱えないし、セルへの入力でも25:00など入力すると自動で日付が入ってしまうので、セルの書式を文字列に変えてVBAで日付を付加してみた。(今回、セルは時刻だけ入力していたが、セルに日付まで入れてしまったほうが簡単かも知れない)

 

VBA InStr, Split, LBound, UBound

いつも忘れてしまうので

 

VBA Worksheet_Change/SelectionChange

クリックしたセルの値を取得

セルの値の変更をチェック

UserFormからシートのSelectionChangeを拾う場合

 

VBA 値が含まれる行をコピー

全シートを対象に値が含まれる行をコピー

 

VBA 入力規則

VBA ListBox参考

ListBoxの使い方を忘れてしまうので、さっき作ったものをメモ代わり。

 

VBA 起動部分テンプレート

いつも忘れてしまうのでメモ。

右クリックメニューの階層化。高速化等々。