VBA
WindowsのルールというかMS仕様では、コントロールのイベント(メッセージ)はトップウィンドウが受け取る、というのがある。たとえばワークシート上のボタンコントロールがあったとして、こいつを押したときイベントを受け取るのはボタン自身ではなくてワー…
そろそろVBAネタも飽きてきたけど、これだけは書いておきたい。グローバル変数だ。VBAにおけるグローバル変数をは、Public な変数のことだが、これだけでなかったりする。現在アクティブになっているWorkbookなりWorksheetなりCellなんかも、グローバル変数…
Excel VBAの話の続きです。Excelの操作性とかそういう話ではなく、GUIプログラムはどういう構成はどうなっているか、という話です。 GUIプログラムにおいて、最初に気になる点は次の4つではないかと思っている。 コンポーネントのディスパッチャー(イベン…
時間無いので要点だけ。 VBAはモジュール(≒ファイル)か、スコープの単位になる 一言で言うと、『ポインタのないC言語』 VBAで言うところの「オブジェクト」とは、『メソッド付き構造体』(いちようカプセル化はあるが…) クラスモジュールは、オブジェク…
他言語で開発経験を積んでいると、Excel VBAが非常にとっつきにくい。実はExcel VBAを『開発言語』と捉えると、とても奇特な環境でなのである。というのは、Excel ワークブックというのは、 開発用のエディタ内蔵 デバッグ環境 配布用実行ファイル の3つを…
今までなんとかVBAを使った開発を逃げてきたのだが、今回ばかりはどうしてもExcel VBAでの開発になってしまった。Excel VBAを触ったことがないわけではないのだが、まともにやるのは今回が初。そこで文法とかAPIとかオブジェクトとか適当に勉強していたのだ…
con As ADODB.Connection Set con = New ADODB.Connection With con .Provider = "Microsoft.Jet.OLEDB.4.0" .Properties("Data Source").Value = ThisWorkbook.Path & "\db1.mdb" .Properties("Jet OLEDB:Database Password").Value = "xxx" .Open End With…