
エクセルのデータの必要な列を別のブックに入っているフォーマットにどんどん追加していけるようなマクロを作りたいと思っています。
マクロの自動記録を使ってみたのですが、特定のファイル名が入っているので、使えません。
中を見てみると
Windows("A.xls").Activate
Columns("b:b").select
Selection.copy
workbooks.open Filename:="B.xls"
Windows("B.xls").Activate
Range("D9").select
Windows("A.xls").Activate
Application.CutCopyMode = False
Range("b:b").select
Selection.copy
Windows("B.xls").Activate
Selection.Pastespecial Paste:=xlValues,Operation:=xlNone,SkipBlanks:=False,Transpose:=False
.
.
.
となっています。
このファイルAとなっている部分を、どのファイルでも実行できるようにしたいです。
後、ファイルBに貼り付けるときに一番最終行に追加していくにはどのような構文を足せばいいか教えていただきたいです。
初心者で質問の意図が伝わりにくかったらすみません..
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
選択されているセルの列をB.XLSの最終列の右にコピーするマクロです。
ブックのパスと、シート名は修正して下さい。Sub Macro1()
Dim wb As Workbook, psw As Boolean
Selection.EntireColumn.Copy
For Each wb In Workbooks
If wb.Name = "B.xls" Then
psw = True
Exit For
End If
Next wb
If Not psw Then
Workbooks.Open Filename:="z:\B.xls" 'パス名を修正
End If
Windows("B.xls").Activate
Worksheets("Sheet1").Activate 'シート名を修正
ActiveSheet.Range("IV1").End(xlToLeft).Offset(0, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
ペーストするシートに全く何も入力されていないときでも2列目に貼りつけます。どうしても1列目に貼りつけたいなら.End(xlToLeft)で取得したセルの値で条件分岐するなどして下さい。
No.2
- 回答日時:
こんばんは。
ファイルは、GetOpenFilename で、MultiSelect で複数のファイルを選べても、その後の場所がまちまちのようなので、シートを選んだりとか、セルを選んだりとか、そういうことを対話式にするには、ユーザーフォームで、Modal モードを False にして使うぐらいしかありません。
InputBox メソッドでも、完全に、InputBox と切り離されてはいないので、使いづらいでしょう。
途中で、エラーになると、せっかく選んだブック名が、なくなってしまいます。
せめて、シートとセルの範囲ぐらいは、キメウチできないと、自動化には程遠いです。
記録マクロのレベルですと、少し、荷が重いかもしれませんね
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】AブックからBブック...
-
VBAで別のブックにシートをコピ...
-
VBA シートをコピーする際に Co...
-
【ExcelVBA】インデックスが有...
-
Excel UserForm の表示位置
-
エクセルでシートを保護すると...
-
罫線の斜線を自動で引くマクロ
-
あああ..ああい..ああう とい...
-
「段」と「行」の違いがよくわ...
-
Excel VBAでのWorksheet_Change...
-
EXCELのダイアログシートって、...
-
DataGridViewでグリッド内に線...
-
Excelのフィルター後の一番上の...
-
vba マージエリアの行数を非表...
-
【エクセル】フリーワード検索...
-
マクロの相対セル参照記録って?
-
エクセルファイルを開いた回数...
-
ListViewで列を指定して表示さ...
-
アクティブになっている行をマ...
-
【マクロ】実行時エラー '424':...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
エクセルVBAが途中で止まります
-
VBA 別ブックからコピペしたい...
-
別ブックをダイアログボックス...
-
VBAで別のブックにシートをコピ...
-
ワイルドカード「*」を使うとう...
-
VBA コードを実行すると画面が...
-
VBA 実行時エラー 2147024893
-
[Excel]ADODBでNull変換されて...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】インデックスが有...
-
【ExcelVBA】zip圧縮されたCSV...
-
Excelマクロ 該当する値の行番...
-
【Excel VBA】書き込み先ブック...
-
【VBA】全シートの計算式を全て...
-
Excelファイルを開くとき、読み...
-
Excel2007VBAファイルの表示に...
-
VBAで複数のブックを開かずに処...
-
フォルダ内の全てのファイルに...
-
オブジェクトは、このプロパテ...
おすすめ情報