VBA

【VBA】マスタ参照の存在チェックをDictionaryに置き換える

店舗コードや銀行コード、支店コードを、マスタの表を見て別の値に変換する。見つからないコードは、エラーとして記録する。VBAでは、よく出てくる処理です。私は、この処理をマスタの先頭から順に見ていく線形探索で書いていました。Foundフラグを立...
VBA

【VBA】シートを別ブックにコピーして配布用ブックを作る

社内向けのデータ作成マクロで、結果をいったん一時シートに出し、目視で確認してから、シートコピーで別ブックにして、メールで社内に配る運用をしていました。配る側としては、数式やクエリを含まない、結果だけのブックにしたい場面でした。この記事では、...
VBA

【VBA】GASへのPOSTが405になる原因と通信オブジェクト比較

VBAからGoogle Apps Script(GAS)のWebアプリを呼ぶと、GETは通るのにPOSTだけ405になることがあります。私も、業務で使っているGASへのPOSTで、通信オブジェクトを替えるたびに結果が変わり、原因を追うのに苦...
実務設計

【Excel】引き継ぎブックで先に見る外部リンク・名前・接続

引き継いだExcelのブックを開いたとき、私が最初に見るのは関数と非表示列です。数式の参照が切れていたり、計算の根拠があちこちにばらけていたりすることは、日常的にあります。Excelの引き継ぎでは、関数と非表示列を見たあとに、もう一か所、見...
Power Query

【Power Query】CSVの文字コードを置換文字で判定する

CSVを取り込むと、文字化けすることがあります。ファイルがShift_JISなのかUTF-8なのか、分からないときです。以前の記事「【Power Query】CSVの文字化けをEncoding指定で防ぐ方法」では、先頭のBOMの有無で判定す...
Excel関数

【Excel関数】#N/A・#VALUE!・#REF!が出たら最初に確認

数式に #N/A・#VALUE!・#REF! などのエラー値が出ると、IFERRORで囲んで消したくなります。しかし、消してしまうと原因が分からなくなります。この記事では、エラー値ごとに最初に確認する場所を整理します。原因はすべて自作のサン...
実務設計

【Excel】打刻と集計値の不整合を検知するフラグ列の設計

勤怠管理システムが集計した実労働時間と、打刻時刻から再計算した労働時間が合わない日があります。給与計算シートを作る中で、手動で修正された日の打刻時刻が実態と合っていない、という場面がありました。困った場面正規の打刻(ICカードやアプリ)では...
Power Query

【Power Query】JSONの型ゆれ|文字列と数値の混在を吸収する

外部APIのJSONを読み込むと、同じ項目が "12"(文字列)と 12(数値)の両方で返ってくることがあります。こうした型ゆれは、見た目が同じ数字でも、Power Queryでは別の型として扱われます。そのまま集計すると、エラーになります...
Power Query

【Power Query】時刻が9時間ズレる原因とタイムゾーン変換

入力フォームの回答を、Googleフォーム→スプレッドシート→GASのJSON API→Power Queryの経路で取り込みました。このとき、時刻が日本時間より9時間ズレていました。値を見て、「世界標準時か」と気づきました。この記事では、...
Excel関数

【Excel関数】OR・ANDは短絡評価されない原因と対処

空欄なら「要確認」にしたい。ただし、B列が文字列の行ではエラーにしたくない。そう考えて、次の数式を組んだとします。=IF(OR(A2="",B2*2>10),"要確認","OK")A2が空欄なら、ORの1つ目はTRUEです。2つ目を見なくて...