VBAで閉じたExcelからデータを取得する方法

VBAで閉じたExcelからデータを取得する方法

Posted at June 26,2015 2:55 AM
Tag:[]

VBAで閉じたExcelからデータを取得する方法を紹介します。

1.問題点

VBAは基本的に開いているExcelに対して処理を実行しますが、別のブックからデータを取得するときに、Excelを開かずに実行する方が効率がいいような気がします。

が、Excelを開かずにデータを取得する方法が分かりません。

2.Excelを開かずにデータを取得する

Excelを開かずにデータを取得するにはExecuteExcel4Macroという関数を実行します。

まず、開かない方のExcelのA1セルに次のように「foo」というデータを設定して、Cドライブ直下に"test.xls"という名前で保存します。

次に、VBAを実行するExcelの標準モジュールに次のコードを記述します。

Sub test()
    MsgBox ExecuteExcel4Macro("'C:\[test.xls]Sheet1'!R1C1")
End Sub

設定イメージ

このコードを実行すれば次のように「foo」という表示結果を得られます。

3.注意事項

存在しないブックやシートを指定するとエラーになります。

またブックを開かない処理ですが、データの取得にはそれなりの時間がかかります。

1つのブックから多くのデータを取得する場合は開いた方がパフォーマンスが良いかもしれません(間違っていたらすいません)。

関連記事
zenback
人気エントリー
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)