• ベストアンサー

エクセル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のデータを 貼り付けれるようなマクロはどう書けばいいのでしょうか よろしくお願いします

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

>1つ上のセルに がどのセルなのか分かりませんが、もしそのセルがaaa.xlsのシート上にあって、そのセルにCSVファイル名の拡張子がない状態で入力されているなら >Windows("bbb.csv").Activate の行は  Windows(Sheets("シート名").Range("D1").Value & ".csv").Activate のように書けばよいと思います(シート名、D1はあくまでサンプル)

48946
質問者

お礼

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

その他の回答 (2)

  • tt413323
  • ベストアンサー率9% (1/11)
回答No.2

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

  • tt413323
  • ベストアンサー率9% (1/11)
回答No.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 () これだと関数名がないのでエラーになると思いますよ?

48946
質問者

お礼

回答ありがとうございます これだとセルA1の値しか利用できませんよね 私の説明不足だったので補足したいのですが A1にbbb B1にccc C1にddd 続く… と入力してあって A2、B2、C2…のセルにそれぞれマクロを実行したいのです オフセット?見たいな形で相対セル参照にはどうしたらよいのでしょう?