Excel 2013以降では、MSクエリを1回だけ使用してVBAを使用する必要がなくなります。
フレッシュなシートでは、MSクエリを使用して、非常に単純なテーブルの1つを作成し、結果をExcelテーブルに戻すことができます。これは、あなたのために完了した接続文字列のようなすべてのトリッキーなものをExcelでリフレッシュ可能なテーブルを取得します。このタブをテンプレートとして使用できるようになりました。
Ctrlキーを押したままタブ全体をコピーして、次のタブ位置にドロップします。これには、別個のOracle接続を持つ別個の表を作成する利点があります。新しいタブの場合は、データリボンで[プロパティ]ボタンをクリックして[外部データのプロパティ]ダイアログを開き、接続名の右側にある[接続プロパティ]ボタンをクリックし、[定義]タブをクリックします。複雑なクエリの[コマンドテキスト]ボックスに貼り付け、[OK]を2回クリックすると、実際のクエリがExcelに読み込まれます。
テンプレートタブのコピーとクエリの貼り付けを59回以上繰り返してください。データリボンで[すべて更新]を使用すると、すべてを一度に更新できます。必要に応じて、他のExcel式/書式を追加します。いつものように、キーボードショートカットは通常、クリックよりも速いです。
必須ではなく、おそらく上記よりも時間がかかりますが、各接続名、タブ、およびExcelテーブルに適切な名前を付ける必要があります。これらのそれぞれに同じものを使用できます(文字の制限が許されます)ので、SQLをペーストしたら、接続名を修正してコピーして、タブ名とテーブル名に貼り付けることができます。
これらのクエリーテーブルを設定すると、シートを開いたときに自動的に更新されます。また、特に高価なVLOOKUPの数を減らした場合は、Oracleでの作業の多くを行い、問合せ表の数を減らすことを検討してください。また、接続プロパティの定義を[マイデータソース]ディレクトリにエクスポートし、データリボンの[既存の接続]ボタンから再利用して、MSクエリを再度使用する必要がない場合もあります。
上記のすべてはVBAで行うことができますが、コードを記述してデバッグし、SQLや名前のようなパラメータに貼り付けたときには、上記を行うのがより簡単で簡単になると思います。
VBAを使用して更新と更新を行う必要があるため、質問には既に回答しています。 VBAを使用して、Oracleに接続してデータを取得します。 – Prisoner
私はあなたがVBAで書いたものがMS Queryよりも効率的であると信じるのは難しいと感じます。 VBAはMS Queryと同じように、常にデータベースから宣言、実行、フェッチする必要があります。今度は、出力のレンダリングについて心配する必要があります。 ExcelとMS Queryが効率的でないのはなぜですか?私は批判していない - 私は本当に理解したい。 – Hambone