![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.2ベストアンサー
- 回答日時:
VBAのみで実現する方法としては、Application.Runメソッドを使うというのがあります。
引数にも戻り値にも配列が使えます。
Accessは持っていないのでWordとExcelで試してみました。
まずExcelで標準モジュールに以下のプロシージャを書き込んだブックを開きました。
Function MinMax(a)
MinMax = Array(WorksheetFunction.Min(a), WorksheetFunction.Max(a))
End Function
次にWordで以下のプロシージャを実行しました。
Sub test1()
a = Array(1, 2, 0, 3, 5, 4)
Set xl = GetObject(, "excel.application")
m = xl.Run("MinMax", a)
Debug.Print m(0); m(1)
End Sub
実行結果としてWordのVBEのイミディエイトウィンドウに
0 5
と表示されました。
なお、参照渡し(ByRef)による変数書き換えですが、ちょっと検証したところでは、WordからExcelを呼び出すとうまくいくのですがExcelからWordを呼び出したらだめでした。
これがAccessでどうなるかはわかりませんし、そもそもこの検証結果もまだ不十分です。
よって、引数の参照渡しを用いた変数書き換えは行わないのが無難なように思います。
もう1つ考えられる方法としては、Excelのセル範囲と2次元配列を使う方法です。
たとえば、Excelで何かワークシートを表示しておき、他のアプリケーションのVBAで
Set xl = GetObject(, "excel.application")
a = xl.activesheet.Range("a1:c2").Value
とするとセル範囲a1:c2の値が3×2の配列に取り込まれます。配列をワークシートに書き込むこともできます。
No.1
- 回答日時:
アクセスで配列用のテーブルを作成しておいて、エクセルから配列をアクセス側に書き込んで利用するというのはいかがでしょう。
参照:
ExcelからAccessのテーブルにADOを使って書き込みを実行する
http://infith.com/system/access/excel_access_ado …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで沢山のレコードの最後に追記するには? 7 2023/04/10 13:27
- Excel(エクセル) エクセルVBAでチェックボックスにチェックを入れる 1 2022/09/14 00:52
- Excel(エクセル) エクセルデータからの必要項目抽出方法を教えてください 6 2022/08/12 15:55
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Visual Basic(VBA) Vba 配列の中の特定文字列の位置の調べ方 9 2022/05/23 17:46
- Visual Basic(VBA) マクロについて教えてください。 4 2023/06/06 09:06
- Visual Basic(VBA) VBA横データを縦にしたいです 2 2023/08/08 19:38
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Visual Basic(VBA) VBA 最終行まで数式をコピーする 3 2023/01/03 15:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCEL VBA で、0から?1から?
-
パソコンキーボードで時分秒を...
-
C言語 重複しない4ケタの乱数...
-
IF関数でEmpty値を設定する方法。
-
動的配列が存在(要素が有る)か...
-
VBで作った乱数を一度も重複さ...
-
変数を動的に作るには?
-
VBAで配列の計算
-
複数のテキストボックスに同じ...
-
VB.net 引数で配列変数を渡す際...
-
VBでbyte配列型のインスタンス...
-
このプログラミングの問題を教...
-
C#での画像送信プログラム(ネ...
-
【MFC】GetCount()とGetSize()...
-
配列の要素数を超えた参照のコ...
-
C#の質問
-
C言語のポインターに関する警告
-
大量のデータを読み込んで表示...
-
ダブルクォーテーションのrepla...
-
JSPやサーブレットでSystem.out...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで配列の計算
-
IF関数でEmpty値を設定する方法。
-
パソコンキーボードで時分秒を...
-
EXCEL VBA で、0から?1から?
-
C言語 重複しない4ケタの乱数...
-
変数を動的に作るには?
-
VB.net 引数で配列変数を渡す際...
-
応用情報技術者試験の令和元年...
-
動的配列が存在(要素が有る)か...
-
VBで作った乱数を一度も重複さ...
-
VBでbyte配列型のインスタンス...
-
配列の要素数を超えた参照のコ...
-
複数のテキストボックスに同じ...
-
遅延バインディングを使用でき...
-
Visual C++ でコントロールを...
-
Excel VBAで配列の途中から(X)M...
-
C++、クラスメンバの構造体配列...
-
C言語で3次元配列の課題をして...
-
For文と配列
-
【MFC】GetCount()とGetSize()...
おすすめ情報