ほかにもあるかもしれません。DAO、ADO、の「レコードセット」と呼ばれるものに対しても使えます。WorksheetFunction.Max(Rs("連番列の列名"))、みたいな感じで、連番列の最大値を取得することができます。(「Rs」が「レコードセット」の場合。ようなもの」とイメージしてくだされば大丈夫だと思います。VALUE句などに含ませます。+1の値に、ExcelVBAのReplace関数で置換します。(置換するためには、SQL文を事前作成する際に、置換しやすいあらかじめ決めておいたダミーのVALUEの値(置換さえできれば数字じゃなくてもなんでもいい)に、しておく必要があります。相手となるファイルが「閉じたまま」、かつ、こちらにも表示させないまま、かつ、最大値を求めて全部やりたい・・・』、という場合はQueryTableオブジェクトは使えません。その場合、他のデータベースではOKでも、Excelだとダメ、というケースもあるかもしれません。(特殊じゃない書き方でも。Excelの仕様が原因で?とか。ダミーデータの前もっての入力なしに、セルの緑三角マークエラーを回避すること。Excelで、DAO・ADOそれぞれ単独、あるいはDAO・ADO+SQLなどでデータを書き込むと、セルの隅っこに「緑三角マークエラー」が表示されることがあります。(バージョン2007以降だったかな?忘れました。)そのようなことが起こった場合、全列を埋めるダミーデータ(ダミーレコード)を、あらかじめ「1行だけ」入力しておくと防げるようです。・・・などを入力しておくとよいかと思います。前述のように削除フラグも立てておけば問題ないと思います。すれば、集計に含まれないようになると思います。リストアップした場合も、その行だけ削除フラグやそれ以外の条件でフィルタて消してもいいですし。SQLでのデータ書き換えの場合、True/Falseの列は、Nullを入れるとFalseになってしまうもようです。DAO単独や、ADO単独ではまだテストしていません。同じような方向性で行けるのではないかと思います。文字列型の列に値を入力すると「接頭語」の「'」がついてしまい取れない。適当なセルをコピーして、書式の貼り付けをすれば取れますが、SQL操作では直接それができません。・VBAのRangeでも・SQLでも・DAO・ADOでも、その「'」が読み込まれることはありません。変数にも代入されません。数値に付いてるわけじゃないので、基本、何の問題もありませんので、慣れれば気にならないと思います。文字列型の列に、「'」のついたセルと、ついてないセルが混ざっても「文字列型の列であれば」特に問題なさそうです。(03)のようにダミーデータを入れておくと、その場合は、例えばSQLでレコード追加した際は「'」は、付かないっぽいです。(文字列型の列であっても。間違ってたらすみません。SQLやDAO・ADOでは、直接、セルに対して書式を変えたり、数式を入れたりすることができない。SQLやDAO・ADOは、「データのみを操作する機能」ですので、セルの色やフォントの設定、ワークシートといった、「ExcelVBE側」のオブジェクトを、そのメソッドやプロパティで操作することはできません。(「”レコードセット”といったDAO・ADOのオブジェクト」と、「”セルやシート”といったExcelのオブジェクト」は、「異なるくくりでのオブジェクト」ですので。」みたいな数式を「値として書き込む」ことはできますが、ただ、画面が開いてないと反映させることができません。ファイルを開くだけではダメなので少々面倒です。(多分、全バージョン共通・・・だと思います。』を設定することができます。セル範囲で設定した場合は、行(新規レコード)の追加をしたい場合、セル範囲をあらかじめ広げて、空白行を含めておく必要があります。全行が値のあるレコードで埋まっていると、既存レコードと編集はできても、新規レコード追加が「いっぱいいっぱいなので追加できません、範囲は広げられません」的なエラーになります。db.OpenRecordset("明細表$A1:C20")とか。db.OpenRecordset("test範囲"))は読み込みはOKだけど、新規追加は空白行を作っても正常動作しませんでした。`明細表$A1:C20`")とか。test範囲")は読み込みはOKだけど、新規追加は空白行を作っても正常動作しませんでした。※ここでの「test範囲」は、名前の定義で付けた名前です。ADO単独ADO+SQL(03)閉じたままの相手ファイルの内容を、自ファイルのVBAから書き換える(削除以外。Query(QueryTableオブジェクト)+SQL(未検証)DAO+SQL(検証OK)xlsに。ADOX+SQL(未検証)(05)表をセルアドレスじゃなくて列名で操作するので、ソースの表の列が入れ替わったり、新しくできたりしても再設定が要らない。表全体が多少移動されても、ちゃんと列名で書き込み・読み込みができる。Query(QueryTableオブジェクト)+SQLDAO+SQLADO+SQL(06)列をインデックス番号や名前などで操作する=表の中で横のループ処理ができるこの場合は列が入れ替わったり新しく挿入されてしまったりするとちょっと困りますが、でも、そういうことが関係のない処理とか、そういったことに使えます。現在の列名・列の順番の調査とか。表全体が多少移動されても、ちゃんと列のインデックス番号で書き込み・読み込みができるのは前項と似た感じです。RangeプロパティやCellsプロパティを使うような感じと少し似ているかもしれません。Query(QueryTableオブジェクト)+SQL(09)「生データの表×仮想表」など、複数の表同士のリレーションができる(VLOOKUP関数のような紐付けができる。表の数は2つでも3つでも、4つでも。1本だけでなく複数本同時のリレーションも。Query(QueryTableオブジェクト)+SQLDAO+SQLADO+SQL(10)複数の表をリレーションしながら、かつ・フィルタをかけながら、まつ・同時に簡易クロス集計やグループ化集計もする。Query(QueryTableオブジェクト)+SQL+RangeDAO単独DAO+SQLADO単独ADO+SQL(12)ExcelVBAと同じように、オブジェクト、プロパティ、メソッド、コレクション、が使えるDAO単独DAO+SQLADO単独ADO+SQL(13)相手ファイルがファイルサーバに在ってもOK。挫折するオブジェクト式やプログラム(プロシージャ)の書き方、挫折しない書き方、の違い。送信メールが受信トレイに入ってしまうトラブルの回避、など。ODBCでQueryTableオブジェクトを自動作成するサンプルコード)。2000以降の全バージョンで使えると思います。~ついでに、セルの値で結果表示を自動で切り替える「パラメータクエリ」のVBAでの自動作成も。~★★Access2000VBA・Excel2000VBA独学~Win32API。eChromeを例に。(Excel、Word、Access、などが32bit版のモノでしか使えませんが、OSは64bitでも大丈夫です。Access2000VBA・Excel2000VBA独学~(多分、全バージョン共通・・・だと思います。「安全」な、Youtube動画のダウンロード方法6つ。挫折するオブジェクト式やプログラム(プロシージャ)の書き方、挫折しない書き方、の違い。送信メールが受信トレイに入ってしまうトラブルの回避、など。ODBCでQueryTableオブジェクトを自動作成するサンプルコード)。2000以降の全バージョンで使えると思います。~ついでに、セルの値で結果表示を自動で切り替える「パラメータクエリ」のVBAでの自動作成も。technology.。