VBA ビット演算

各ビットごとの条件式(True/False)として考えるとわかりやすい。

And
左右がTrueでTrue

Or
左右いずれかTrueでTrue

Not
TrueならFalse、FalseならTrue

Xor
左右が違う場合True

VBAでは10進法のまま計算する。

2進法から10進法へは各フラグを下記の数値を足すだけ。
128,64,32,16,8,4,2,1

例えば、
10進法で3なら、00 00 00 11
10進法で6なら、00 00 01 10
なので、Andで計算すると2のフラグのみTrueとなる。

2,8のフラグを立たせたければ10とすればいい。

 

VBA 時刻計算で問題

時刻の処理を考えていて、1分ずつ加算するループを試してみたときのこと。

上と下ではスタート(s)の開始時刻が違うだけなのだが、3:00から3:15までというIFに対して上と下で判定が違って、bの値が同じにならない。

比較をDateDiffにすることで解決した。

 

 

C# Event メモ

一般的にイベントハンドラーというのはイベント発生を待ち受けるイベントループに対して実際の処理の部分のこと。

EventHandler型というのは定義済みのデリゲート型のこと。EventHandler型の1つめの引数はObject型で2つめの引数がEventArgs型となる。

呼び出しは自身のクラスからのみ可能で、直接デリゲート型を公開せずに外部から登録/解除できる仕組み。

 

C# IEnumerable/IEnumerator メモ

C#2.0からイテレータ構文が導入され簡単に実装できるようなった。

戻り値は、IEnumerableを返す必要がある。

yield returnは処理を継続、yield breakはそこで処理が終了する。

 

C# 例外メモ

Try句の中では階層が深いところの例外でもキャッチできる。

Try句自体が階層になっている場合は上位に通知されない。

上位に通知する場合はCatch句の中でThrowする。

メッセージを持って上位に通知することもできる。①、②と表示される。

 

C# Delegate メモ

基本

複数代入できる(マルチキャスト)

匿名関数(匿名メソッド・ラムダ式)

C#2.0から匿名メソッド、C#3.0ラムダ式

C#2.0でジェネリック(型パラーメータ)が導入。Action,Func(返値有)を使うとDelegateの定義も不要になる。Action,Func等を定義済みデリゲートと呼ぶ。

実用性はないけど、ラムダ式と定義済みデリゲートで即時実行もできる。

VBA 仕入台帳から注文書

台帳に入力された内容を注文書の雛形に書き込み、指定したブックに新しいシートとして複写する。レジストリにパスを保存することでブックを記憶することができる。

 

ブログ用Excel/画像 OneDrive埋め込み設定

Excel

シート設定

・シート名は1~
・行列の先頭の空白削除
・高さは13、幅は8と入力
・メイリオ, 9px
・左揃え、上下中央揃え
・ズームは100%
・スクロールは先頭
・内容はG列までに入力

埋め込み

ファイル>共有>埋め込み

・外観と操作

常にこのセルが選択された状態で開始するをA1に変更し、その他のチェックは全て外す。

・大きさ

999と入力(700px×900px)

画像

ローカルOneDrive内
右クリック>オンラインで表示>埋め込み>生成
HTMLタグを含めるにチェック。

Chrome拡張機能 新規タブにデータを渡す

右クリックにメニューを表示し、クリックするとアクティブタブのタイトルとURLを新しいタブ(ローカルhtml)に渡すサンプル。

フォルダには下記4つのファイルとjquery-3.5.0.min.jsを入れてある。

manifest.json

background.js

test.html

test.js

 

VBA 仕入シートコピー・マスタチェック

以前利用していたVBA