2026-10

Excel関数

【Excel】日付が数字になる仕組みとVBA・PQでの扱い

日付を入力したはずのセルに「46285」と表示されて、驚いたことはないでしょうか。CSVを開いたら日付の列が数字だらけだった、という場面もあります。日付が壊れたわけではありません。Excelは日付を「シリアル値」という数字で保存していて、表...
Excel関数

【Excel関数】率の平均はAVERAGEでなくSUM/SUM

部署別の有給取得率の表を作り、最下行に「平均」を入れました。取得率の列をAVERAGE関数で平均すると62.0%です。ところが、取得日数と付与日数をそれぞれ合計して割ると44.2%になりました。同じデータなのに、なぜ数字が合わないのでしょう...
VBA

【VBA】全角氏名のバイト数チェックはLenBとStrConvで行う

取込先の氏名欄に「10バイトまで」のような上限があると、入力チェックをVBAで書く必要が出てきます。ここで Len を使うと、判定が合いません。Len が返すのは文字数であり、バイト数ではないからです。この記事では、全角を含む氏名のバイト数...
VBA

【VBA】エラー時も設定を元に戻す|ScreenUpdating等の後片付け

VBAを速くするために、Application.ScreenUpdating、Application.Calculation、Application.EnableEventsを切り替えるコードがあります。速度への効果は、以前の記事(【VBA...
VBA

【VBA】ZIP解凍の完了確認|CopyHereの戻りを実測

VBAでZIPを解凍し、その直後にファイルを開く。この流れで気になるのが、解凍が終わる前に次の行へ進まないか、という点です。Shell.ApplicationのCopyHereには、完了を知らせる仕組みがありません。そこで、実際にどう動くか...
実務設計

【Excel】手入力と自動計算を共存させる上書き優先列の設計

自動計算で出した値のうち、例外の行だけは人の手で直したい。実務ではよくある場面です。たとえば、振替休日の所定労働時間のように、数式では判定しきれない日があります。数式のセルへ値を直接打ち込むと、数式が消えます。どの行を手で直したのかも、あと...