質問: Access VBAで利用されている構造体とノードにつきまして 今、下記のようなVBAのコードがありまして 大まかに、excelファイルの資料を作成するために、その資料内に入れる値を用意しているような。処理だと思うのですが...全体的に、把握できておりません。 構造体を利用して、たくさんの変数が出てきています。 (変数名は、オリジナルのコードが判明しないよう、適宜変更しております) いくつか疑問点がありまして、アドバイスいただければと思い、投稿しました。 以下、その疑問点になります。 (1)このコードでは「構造体」というのが利用されているようです。Accessを使ってExcelの表を作成する際、構造体を使って配列を作る・資料を作るというのは、AccessでExcelドキュメントを作成する方法として、一般的なのでしょうか?
回答: (1)は、正直なところ微妙です。 個人の経験ではあまりいません。 VBやVBAを主にやるような人は、設計をあまりせずに動くコードをちょっとずつ足していくような作り方をする人が多いです。 構造体の配列よりも、複数の配列がたくさん存在するというような書き方をする人が多いような印象です。 (2)は以下のところでしょうか。 ``` redim document1(facount) ``` 先に入れ物を作っておかないと、入れる場所がないではありませんか。 (3)については、以下の注意のところが参考になると思います。 実は、SQL を実行してテーブルを検索したときに、結果がどかんと作成されるわけではありません。 何十万件もひっかかる場合もあるので、Recordset.MoveNext をする際にちょっとずつ読み込むようになってます。 なので、Recordset.RecordCount は、Recordset.Open をした直後に引っかかった件数を正しく表しているわけではありません。 (4)は「構造体が型になっている」という理解で良いです。 makedocuments は、自分で勝手に作った構造体の名前なので、検索しても引っかかることは、まずないでしょう。 (5)は VBA標準で用意されているオブジェクトでオブジェクトのメンバが別のオブジェクトになっているケースがあります。 それと同じです。 包含関係になっていると言えば良いでしょうか。 もちろんコードの書き方によるので、そう書くことが読みやすくなるかどうかは個人に寄ります。