こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

EXCEL VBAマクロ作成で、他のEXCELからデータを取り込みたい

メインプログラム(EXCEL VBA)より、
他のフォルダーにあるEXCELの項目の内容を取り込みたいです。
たとえば他のフォルダーのEXCELのRange("A2:A3").ValueをメインプログラムのRange("C2:C3").Valueにセットしたい時です。

・コマンドボタン押したら、どこのEXCELから取り込むかのポップアップ(?)は、表示はできてます。
・作業者が選んだパスとブックもMsgBoxで表示できてるので、もらう相手の場所も取得できてます。

・となると次はOPEN,INPUTですか?
テキストデータの取り込みですと、Inputでそのバッファを定義してるのですが、なんか違うような。。。

よろしくお願いします!

投稿日時 - 2006-03-19 22:38:48

QNo.2039456

困ってます

質問者が選んだベストアンサー

私がやる方法です。

Dim writeSheet As Worksheet ' 自分自身の書き出し先シート
Set writeSheet = ThisWorkbook.Worksheets(1) ' Sheet1 を参照

Dim readBook As Workbook ' 相手ブック
Set readBook = Workbooks.Open(filename) ' 相手ブックを開いて参照
Dim readSheet As WorkSheet ' 相手シート
Set readSheet = readBook.Worksheets("sheetName") ' 相手シートを参照
' または Set readSheet = readBook.Worksheets(sheetIndex)

' 例えば
writeSheet.Cells(1, 1).Value = readSheet.Cells(2, 2).Value ' 相手シートの B2 の値を自分自身の A1 に書き込む

readBook.Close False ' 相手ブックを閉じる
Set readSheet = Nothing
Set readBook = Nothing

投稿日時 - 2006-03-20 00:36:33

お礼

ありがとうございます。

まったくの初心者なんですが。。。
Dimというのは変数の定義のためのもので、
Dim hensu as interger とか使ってたんで、書いていただいたのが、びっくりしたのですが。

投稿日時 - 2006-03-20 01:43:53

このQ&Aは役に立ちましたか?

13人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

探せばもっともっとたくさんのサイトが出てきますし、初心者~中級者向けの書籍もたくさんでているでしょうが、とりあえずこんな感じで。

■Microsoft Office Excel 2003 オブジェクト モデルの初心者向けガイド
http://www.microsoft.com/japan/msdn/office/excel2003/odc_super.asp

■VBA(Excel)講座
http://mam.itbdns.com/vba/

■ExcelVBAへの道
http://ww8.tiki.ne.jp/~nikoniko/

投稿日時 - 2006-03-23 17:09:57

お礼

ありがとうございますっ

No.1で教えて頂いたマクロをかんばって組んでみましたら、動きました。

No.3のHPは、今後役立てたいと思います。

ほんとにありがとうございました。

投稿日時 - 2006-03-26 10:52:09

ANo.2

> まったくの初心者なんですが。。。

大丈夫です。難解なことは一つも書いていませんので。
Workbook 型や、Worksheet 型の変数がいくつか出てきましたが、これらは通常の Integer 型の変数とはちょっと違って「参照型」って言います。
参照型の変数に値を入れるには、
Set hensu = object
って書き方になります。
# 厳密に言えば "入れる" じゃなくて、構文そのまんま "セットする" です。

私のコードにやたらと Workbook 型や Worksheet 型が出てきましたが、
読み込み元のブックやシート、書き出し先のブックやシートをきちんと整理してコードを書くためです。
「あっちのブックから読み込んで、こっちのブックに書き出す」ってケースはこれから幾らでも登場しますので、ぜひ覚えておいて損はないテクニックです。

投稿日時 - 2006-03-20 21:46:47

お礼

ありがとうございます。

Workbook型、Worksheet型というのも、初めてです。
実は仕事で組んでまして、そのプログラムも初心者用のテキストも会社にありまして。。。。
一応、別の書き方で持ってこれるようになりました。
持ってくる側をワークに入れて、メインの方のエクセルを再度開いて、入れるかんじです。

私は、あまり頭が良くないので、せっかく丁寧に書いていただいたんですが、イマイチ ぴんと来ません。
temtecmai2さんの書いてある事が載っているURLやテキストをご存知でしたら、是非教えてください
私が組んだのがダメな時、または次回のチャレンジの時に是非、temtecomai2さんのきっと上級者のロジックを組みたいと思います。

投稿日時 - 2006-03-22 01:26:02

あなたにオススメの質問