- ベストアンサー
エクセル マクロの記述をご教示下さい。
宜しくお願い致します。 ● Aファイルに下記のようなマクロを記述したい。 ・BファイルのB列の6行目から2000行に入力されている、データを 削除する。 ・出来れば、人為的にBファイルは、立ち上げない状態で削除したい。 ・マクロを実行することによって、自動的に立ち上がるのは結構です。 ・また、削除後、Bファイルは立ち上がっていても結構です。 ご指導のほど宜しく御願い申し上げます。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
#2です。 > ・考えてているように、設定できましたが、記述的に誤謬がないか、 > チェックを御願い出来ないでしょうか。 考えているように設定出来てるなら良いと思います。 ただ、提示のマクロを実際に実行してもB6:B33に 1~28 は入らないようですが、、、 Sub Test() Dim wb As Workbook, twb As Workbook, fName As String fName = "C:\My Documents\B-FILE.xls" Set twb = Nothing For Each wb In Workbooks If UCase(wb.FullName) = UCase(fName) Then Set twb = wb Exit For End If Next wb If twb Is Nothing Then Set twb = Workbooks.Open(fName) With twb.Worksheets("Sheet1") .Range("B6").Value = 1 .Range("B6").AutoFill _ Destination:=.Range("B6:B33"), Type:=xlFillSeries End With ThisWorkbook.Activate End Sub
その他の回答 (3)
- Bickyon
- ベストアンサー率41% (42/101)
>3行目:6~2000行目を選択 → B列のみ(B6:B2000) >4行目:選択した行を削除 → B列のデータのみ削除 ●御指導いただきたき内容は → の内容で記載したつもりでしたが・・・。 失礼しました。それなら該当箇所は以下のようになります。 Range("B6:B2000").Select Selection.ClearContents
- papayuka
- ベストアンサー率45% (1388/3066)
既に回答が出ていますが、ファイル名やパス、削除行などが固定ならばAファイルでマクロ記録を開始して一連の操作を実行すれば希望のマクロが記録されると思います。 マクロ記録を活用し、更にそれを手直し出来るようになると幅が広がりますよ。
補足
papayuka様 早朝からの御指導ありがとうございました。 >・・・マクロ記録を開始して一連の操作を実行・・・ ●ご指導いただきましたので、設定(削除ではなく)も必要な為、作成してみました。 Sub 番号設定() Application.ScreenUpdating = False Workbooks.Open Filename"C:\My Documents\B-FILE.xls" Sheets("Sheet1").Select '1から28まで番号を設定する Range("B7").Select ActiveCell.FormulaR1C1 = "1" Range("B7").Select ActiveCell.FormulaR1C1 = "2" Range("B6:B7").Select Selection.AutoFill Destination:=Range("B6:B33"), Type:=xlFillDefault Range("B6:B33").Select Range("B6").Select Windows("A-FILE").Activate Range("M7").Select Application.ScreenUpdating = True End Sub ●御指導いただき事 ・考えてているように、設定できましたが、記述的に誤謬がないか、チェックを御願い出来ないでしょうか。 ・番号の設定ですが、VBAで記述すれば、どのような表記になるのでしょうか ・B-FILE.xlsが開いていると、中断されてしまいますので、下記のようにしたいのですが。 1.B-FILE.xlsが開いていない時は、B-FILE.xlsを開いて番号を設定する 2.もし、B-FILE.xlsが開いている時は、開かないで設定をする 別件みたいになってしまいましたが、宜しく御願いいたします。
- Bickyon
- ベストアンサー率41% (42/101)
単純にするならこうなります。 Workbooks.Open Filename:= "C:\My Documents\B-FILE.xls" Sheets("Sheet1").Select Rows("6:2000").Select Selection.Delete Shift:=xlUp Windows("A-FILE").Activate 1行目:Bファイルを開く 2行目:削除したいデータがあるシートを選択 3行目:6~2000行目を選択 4行目:選択した行を削除 5行目:Aファイルをアクティブにする。
お礼
Bickyon様 ●御礼 行毎の解説までつけていただき、助かりました。 本当にありがとうございました。 今後とも宜しく御願い申し上げます。 oguno
補足
Bickyon様 早朝の御指導ありがとうございました。 ●質問記載内容 ・BファイルのB列の6行目から2000行に入力されている、データを 削除する ●御回答内容 >3行目:6~2000行目を選択 → B列のみ(B6:B2000) >4行目:選択した行を削除 → B列のデータのみ削除 ●御指導いただきたき内容は → の内容で記載したつもりでしたが・・・。
お礼
papayuka様 >提示のマクロを実際に実行してもB6:B33に 1~28 は入らないようですが、、、 ●ご報告 ・再確認致しましたが、大丈夫のようです。 いずれにしましても、御指導いただいたマクロを使用させていただきます。 ・また、データ削除にも、利用させていただきます。 動作は確認致しました。 ●御礼 本当にありがとうございました。 感謝申し上げます。 今後とも宜しくお願い致します。 oguno