• ベストアンサー

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

  • 48946
  • お礼率54% (480/878)

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

  • ベストアンサー
  • 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…のセルにそれぞれマクロを実行したいのです オフセット?見たいな形で相対セル参照にはどうしたらよいのでしょう?

関連するQ&A

  • ExcelのVBAで、他のExcelファイルのセルのデータを取得

    ExcelのVBAで、他のExcelファイルのセルのデータをファイルを実際に開かずに取得する方法はありますか? Workboks.openを使わずに、具体的にどうすればいいのでしょう? (例)  AAA.xls のセル"C5"に BBB.xls のセル"B3"のデータを入力したい場合。 (AAA.xlsにマクロを起動するボタンがある) ただし、BBB.xlsの最初の3行は空白です。

  • excel vbaのファイルコピー

    あるフォルダに次のようなテキストデータ(*.csv)が50個入っています。 ファイル名:aaa.csv bbb.csv ccc.scv など ファイルの中身--- "aaa.csv" time,value 0.1,10 0.2,32 0.3,33 0.4,45 ---------------- それを次のように一つのエクセルファイルにまとめたいのですが、どうすればよいでしょうか? ----------------- A B C D E F 1 "aaa.csv" "bbb.csv" "ccc.scv" 2 time value time value time value 3 0.1 10 0.1 23 0.1 23 4 0.2 32 0.2 11 0.2 55 5 0.3 33 0.3 43 0.3 11 6 0.4 45 0.4 76 0.4 23 ------------------ よろしくおねがいします。

  • EXCEL VBA セルからファイル名を読み込む

    EXCEL VBAについての質問です 同じ処理を名前の違う複数のファイルで行いたいと思っています そこで、セルA2へファイル名の『○○.xls』○○部分だけをそれぞれのファイルに書き込んでおき、マクロは共通にしてファイル名をそれぞれのファイルから読み込んで実行したいと思っています。 良い方法を教えてください。 Workbooks("200809.csv").Activate Sheets("200809").Select Range("C3:C33").Copy Windows("○○.xls").Activate'←ここをファイルにあわせて変更できる形にしたい Sheets("報告書").Select Range("G5:G35").Select ActiveSheet.Paste Windows("200809.csv").Activate Range("K3:K33").Copy Windows("○○.xls").Activate’←ここ Sheets("報告書").Select Range("I5:I35").Select ActiveSheet.Paste Workbooks("200809.csv").Close SaveChanges:=False よろしくお願いします。

  • Excel マクロでファイル名を変数に・・・

    初心者です。検索してもわからなかったので質問です。 下記のようなマクロの処理で「AAA」というファイル名のExcelに「2.xls」からデータをコピーし貼り付けています。    ・    ・ Windows("AAA.xls").Activate Rows("4:4").Select Selection.Insert Shift:=xlDown Windows("2.xls").Activate Range("C6").Select Selection.Copy Windows("AAA.xls").Activate Range("A4").Select ActiveSheet.Paste Windows("2.xls").Activate Range("C7").Select Application.CutCopyMode = False Selection.Copy    ・    ・ 今回は「2.xls」ではなく「3.xls」、「4.xls」、・・・といったように違うファイル名で同じ処理を行ないたいので「2」と指定するのではなく「(ファイル名).xls」といった形にしたいのですが、それは可能なのでしょうか。 ご意見宜しくお願いいたします。

  • Excelでファイルを開くをマクロで行いたい

    マクロ初心者です "ファイルを開く"をマクロの記録で記録させると ChDir "C:\Documents and Settings\○○\△△\※※" Workbooks.Open Filename:= _ "C:\Documents and Settings\○○\△△\※※¥LotLog20070131.csv" Windows("●●●.xls").Activate End Sub と記録されます この中で 開きたいファイルネ-ム(上記ならばLotLog20070131.csv)を "●●●.xls"の どこかのセルを参照に開きたいのですが どうすれば宜しいのでしょうか?

  • エクセルのCSV(カンマ区切り)保存について教えてください

    次のようなEXCELデータをCSV(カンマ区切り)で保存した際に項目(カンマ)を2つ追加できるでしょうか? EXCEL  セルA1:AAA  セルB1:BBB  セルC1:  セルD1:CCC  セルE1:  セルF1: このデータをCSV保存してTEXTで確認すると、  AAA,BBB,,CCC となりますが、これを  AAA,BBB,,CCC,, としたいのですが、セルE1とセルF1がNULLのためカンマ区切りができません。半角スペースなどをいれるしかないのでしょうか? できればセルE1とセルF1には何も入力したくないのですが。良い方法がありましたら教えてください。

  • エクセルVBA セルのコピー&ペーストで・・・

    A1のセルに、123 B2のセルに、456 C3のセルに、789 とある A.xlsファイルがあるとして B.xlsファイルの A4のセルに123 B4のセルに456 C4のセルに789とコピーしたいのです・・・と ここまでは出来たのですが、ここからが悩み所で、 上記の状況で、A4~C4までにはデーターが入っているので、次はその下のA5~C5までにデーターを入れたいのです。 A.xlsのデーター入力部分は一緒で、B.xlsのペースト部分は、入力していないセルの一番上にペーストしたいのです。 ちなみにちょっと作ってみましたがだめでした;; Windows("A.xls").Activate DATA = Range("A1:N100") Windows("B.xls").Activate With Cells(4, 1).End(xlDown).Offset(1, 0) = DATA(1, 1) っていうような感じで作ってみたのですが動かないです;; よろしくお願い致します

  • エクセルVBAで重複する名前に(2)、(3)等をつける方法は?

    こんにちは。お世話になります。 以下のようなデータ(約1500件)があります。 データは分類と名称でソート済みです。 同じ分類のなかで同じ「名称」があった場合、B列の名称の直後に同一セル内で(2)や(3)を順に振っていくマクロを教えていただきたいのです。(1)は不要です。 下記の例では、ううう(2)、ううう(3)といった具合です。 よろしくお願いします。 A列 B列 C列 分類 名称 データ1 aaa あああ a aaa いいい b aaa ううう a aaa ううう a aaa ううう a aaa えええ b bbb かかか a bbb かかか a bbb ききき a bbb くくく b ccc さささ a ccc ししし b ccc すすす a ccc すすす a ccc すすす a ccc すすす a ccc せせせ a

  • ノーツの添付ファイルの場所を知りたい

    ノーツの添付ファイルの場所を知りたい 例えばAAA.xlsとBBB.csvがありAAA.xlsにVBAで BBB.csvをオープンするコードが書いてあります。   Open ThisWorkbook.Path & "\bbb.csv" For Input As #1 AAA.xlsとBBB.csvが同一フォルダーにある時はOKなのですが ノーツの掲示板の1文書にこの2つを添付してマクロを実行しても BBB.csvがnot foundになってしまいます。   注1.ThisWorkbook.Pathはc:\....の中のtemporaryのようです   注2.実際の問題はBBB.csvではなく数万件のAccess.mdbなのであらかじめ      AAA.xlsにデータを保持することは不可能です 何か良い解決策はありますでしょうか? よろしくお願いします。

  • Excelでマクロを使いセルの内容をコピー貼り付け

    A1セルに111と入力してあるとします。 この時B1にaaa111aaaと入力するマクロを作りたいです。 A1に222があるとB1はaaa222aaaと入力したいです。 これをマクロで作ったのですが、次のようになり、A1の内容にかかわらず常にaaa111aaaとなってしまいます。 Sub Macro1() Range("A1").Select ActiveCell.FormulaR1C1 = "111" Range("B1").Select ActiveCell.FormulaR1C1 = "aaa111aaa" Range("B2").Select Application.Goto Reference:="Macro2" End Sub これのいらない行を削除し、コピーはA1の内容となるように修正して次のようにしました。 Sub Macro1() ActiveCell.FormulaR1C1 = Range("A1") Range("B1").Select ActiveCell.FormulaR1C1 = "aaa111aaa" Application.Goto Reference:="Macro2" End Sub まだペーストするときにA1の内容とならず直接入力となっています。 これをどう変更すればいいでしょうか?

専門家に質問してみよう