ここから本文です

VBAを使って下記の処理をしたいと思っています。 1.VBAのファイルと同じフォル...

アバター

ID非公開さん

2016/7/2815:09:14

VBAを使って下記の処理をしたいと思っています。

1.VBAのファイルと同じフォルダ内のexcelファイルを開く。
(VBAファイルは色々なフォルダに置いて使いまわします。


2.開いたファイルのA列、C列、D列を削除する。
3.上書き保存して、ファイルを閉じる。
4.フォルダ内のファイル全て1~3の処理を行う。

1.の段階で躓いてしまったため、1の処理だけでも
ご教示いただけると助かります。

ちなみに、一気に全部のファイルを開いて、
削除処理をした後に全部閉じる、とかでも全然構いません。

よろしくお願いいたします。

閲覧数:
73
回答数:
3
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

lgk********さん

2016/7/2816:08:01

これは、とりあえず版です。
シートが、アクティブシートだけでいいのかもわかりません。
これから出かけるので、明日までメンテナンスはできません。
色々なフォルダにデータがあるのなら、それを指定して、一度に行うことも考えられます。
フォルダがどのようになっているのか(1つのフォルダで、サブフォルダまで調べてぜんぶなのか、それとも、処理したいフォルダがあちこちにあるのか)、ご記入ください。
明日でよければ、メンテナンスします。
'
Option Explicit
'
Sub Macro1()
'
    Dim FileName As String
'
    ChDrive Left(ThisWorkbook.Path, 2)
    ChDir ThisWorkbook.Path
    FileName = Dir("*.xls*")
'
    Do While FileName > ""
'
        If FileName <> ThisWorkbook.Name Then
            Workbooks.Open FileName
            [A:A].Delete Shift:=xlToLeft
            [B:C].Delete Shift:=xlToLeft
            ActiveWorkbook.Save
            ActiveWorkbook.Close
        End If
        FileName = Dir
    Loop
'
End Sub
'

アバター

質問した人からのコメント

2016/7/28 17:58:16

サブフォルダも別シートも無いものでしたので、
ご教示いただいたとおりにしたところ、上手くいきました!
大変助かりました!!!

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

プロフィール画像

カテゴリマスター

tra********さん

2016/7/2816:46:18

シートが複数の時はどうするのでしょうか?
とりあえず、各ブックすべてのシートを対象にしてます。

Sub 一例です()
Dim xFld As String, xFile0 As String, xFile As String
xFld = ThisWorkbook.Path & "\"
xFile0 = ThisWorkbook.Name
xFile = Dir(xFld & "*.xls*")
Do While xFile <> ""
If xFile <> xFile0 Then
With Workbooks.Open(xFld & xFile)
For Each sh In .Worksheets
sh.Range("A:A,C:D").Delete
Next sh
.Close savechanges:=True
End With
End If
xFile = Dir()
Loop
End Sub

kyo********さん

2016/7/2815:55:12

参考になるサイト「オフィスタナカ」さんで下記

http://officetanaka.net/excel/vba/file/file07.htm

http://officetanaka.net/excel/vba/filesystemobject/sample07.htm
こちらあたりを参考にフォルダ内ファイルをループする設計を。
で、VBA実行ファイルと同じフォルダ内を使うなら
Workbooks.open Thisworkbook.path & "\" & "エクセルファイル名.拡張子"で開いて削除処理(ワークシート指定は大丈夫ですか?書かれていませんけど)
上書き保存Workbooks("エクセルファイル名.拡張子").Close True

ループ処理はシートに処理ファイルを書きだした方が整理しやすそうですね。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる