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

解決済みの質問

エクセルVBA、他のファイルからのコピー

BBA初心者です
aaa.xlsのマクロで
aaa.xls にbbb.csvのデータを貼り付けたいのですが

Sub ()
Windows("bbb.csv").Activate…ここのbbbってところをセル参照にしたいのです
ActiveCell.Range("A1:A10").Select
Selection.Copy
Windows("aaa.xls").Activate
ActiveSheet.Paste
End Sub

1つ上のセルにbbbと入力されていればbbb.csvのデータを
1つ上のセルにcccと入力されていればccc.csvのデータを
貼り付けれるようなマクロはどう書けばいいのでしょうか

よろしくお願いします

投稿日時 - 2007-07-12 16:36:32

QNo.3161494

すぐに回答ほしいです

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

>1つ上のセルに
がどのセルなのか分かりませんが、もしそのセルがaaa.xlsのシート上にあって、そのセルにCSVファイル名の拡張子がない状態で入力されているなら

>Windows("bbb.csv").Activate
の行は
 Windows(Sheets("シート名").Range("D1").Value & ".csv").Activate
のように書けばよいと思います(シート名、D1はあくまでサンプル)

投稿日時 - 2007-07-12 21:56:06

お礼

意外と簡単だ
ありがとうございます

投稿日時 - 2007-07-18 13:50:21

ANo.3

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

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

回答(3)

ANo.2

Range("A1")の部分は、Cells(1,1)と書き換えることができます。
引数の一つ目は行番号で、二つ目は列番号です。
これでループ回せばできると思います。

投稿日時 - 2007-07-12 18:00:07

ANo.1

例えば、aaa.xlsのSheet1のA1にbbbと入力されている場合、

WorkBooks("aaa.xls").WorkSheets("Sheet1").Range("A1").Value
でA1に入力されている値を取得する事ができます。

Dim strCopyBook As String
strCopyBook = WorkBooks("aaa.xls").WorkSheets("Sheet1").Range("A1").Value

Windows(strCopyBook & ".csv").Activate
……以下同様……

では如何でしょうか。

それと、蛇足かもしれませんが
>Sub ()
これだと関数名がないのでエラーになると思いますよ?

投稿日時 - 2007-07-12 17:07:40

お礼

回答ありがとうございます

これだとセルA1の値しか利用できませんよね
私の説明不足だったので補足したいのですが

A1にbbb
B1にccc
C1にddd
続く…

と入力してあって
A2、B2、C2…のセルにそれぞれマクロを実行したいのです
オフセット?見たいな形で相対セル参照にはどうしたらよいのでしょう?

投稿日時 - 2007-07-12 17:39:58

あなたにオススメの質問