- ベストアンサー
エクセル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のデータを 貼り付けれるようなマクロはどう書けばいいのでしょうか よろしくお願いします
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>1つ上のセルに がどのセルなのか分かりませんが、もしそのセルがaaa.xlsのシート上にあって、そのセルにCSVファイル名の拡張子がない状態で入力されているなら >Windows("bbb.csv").Activate の行は Windows(Sheets("シート名").Range("D1").Value & ".csv").Activate のように書けばよいと思います(シート名、D1はあくまでサンプル)
その他の回答 (2)
- tt413323
- ベストアンサー率9% (1/11)
Range("A1")の部分は、Cells(1,1)と書き換えることができます。 引数の一つ目は行番号で、二つ目は列番号です。 これでループ回せばできると思います。
- tt413323
- ベストアンサー率9% (1/11)
例えば、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 () これだと関数名がないのでエラーになると思いますよ?
お礼
回答ありがとうございます これだとセルA1の値しか利用できませんよね 私の説明不足だったので補足したいのですが A1にbbb B1にccc C1にddd 続く… と入力してあって A2、B2、C2…のセルにそれぞれマクロを実行したいのです オフセット?見たいな形で相対セル参照にはどうしたらよいのでしょう?
お礼
意外と簡単だ ありがとうございます