
マクロの実行をいちいちファイルを開かずに行いたい場合には、どうすればよいのでしょうか。
フォルダの中に同じフォーマットのファイルが数十個から数百個あります。
作業内容は、ファイルの中の一部分を修正する、などです。フォルダ内の全てのファイルに同じ作業をします。
これを、下記のマクロでやっているのですが、今は、
ファイルを開く→下記の別ファイルで保存したマクロを実行し、修正を行う、を繰り返してやっています。
例えば、こんな作業をします。
Range("B2").Select
ActiveCell.FormulaR1C1 = "変更しました"
ActiveCell.Characters(1, 2).PhoneticCharacters = "ヘンコウ"
Range("D11").Select
Sheets("修正").Select
Range("A1").Select
ActiveCell.FormulaR1C1 = "変更しました"
ActiveCell.Characters(1, 2).PhoneticCharacters = "ヘンコウ"
Range("A6:B10").Select
Selection.ClearContents
End Sub
これだと、1ファイルずつ作業をしないといけないので、出来ればフォルダ内にあるエクセルファイルに対し一括で処理できるようにマクロを実行させたいです。
おそらく上記コードに、前後何かをつけたせばいいのだと思いますが、それが分かりません。これが分かれば、色々応用がきくと思うので教えていただけませんか。
どうぞ宜しくお願い致します。
Office2003
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
ADODBやDAOで、ファイルに直接、中身を変更することは可能ですが、実際は、Excelのバイナリファイルを開いています。
オブジェクトを開きますから、オーバーヘッドは掛かります。ただ、こういうワザは掲示板では公開されません。さほど時間的に差がないものを、単にやり方だけにこだわる方法だからだと思うのです。>ActiveCell.Characters(1, 2).PhoneticCharacters = "ヘンコウ"
具体的には、PhoneticCharacters を外部から処理する方法は聞いたことがありません。
データではなく、Workbook の中のRangeオブジェクトに処理を掛けているのだから、ひとつひとつ開かなくては出来ません。また、一括で出来るような方法はありません。
単に、ループして開いて閉じてを繰り返すだけです。それに、シートもひとつならともかく、複数あるなら、今の段階で、人がどう想像するのかは自由でも、質問内容から、コードを書くことは難しいかと思います。
No.2
- 回答日時:
ちょっと書き間違いがあったので訂正。
sub sample1()
dim w as workbook
dim s as string
dim myPath as string
application.screenupdating = false
mypath = "c:\test\"
s = dir(mypath & "*.xls")
do until s = ""
set w = workbooks.open(filename:=mypath & s)
w.worksheets("不明").range("B2").value = "変更しました"
w.worksheets("不明").range("B2").characters(1,2).phoneticcharacters = "ヘンコウ"
w.worksheets("修正").range("A1").value = "変更しました"
w.worksheets("修正").range("A1").characters(1,2).phoneticcharacters = "ヘンコウ"
w.worksheets("修正").range("A6:B10").clearcontents
w.close savechanges:=true
s = dir()
loop
application.screenupdating = true
end sub
失礼しました。
No.1
- 回答日時:
今回のご質問で是非マスターしておいて欲しいのは,次の3点です。
1.あるフォルダの中のファイルを順繰り調べるマクロ
及び,ファイルを開く・保存する・閉じるマクロ
2.マクロで「変数」を使う方法
3.select・selection・activeなんたらを使わないマクロを書けるようになること
sub sample1()
dim w as workbook
dim s as string
dim myPath as string
application.screenupdating = false
mypath = "c:\test\"
s = dir(mypath & "*.xls")
do until s = ""
set w = workbooks.open(filename:=s)
w.worksheets("不明").range("B2").value = "変更しました"
w.worksheets("不明").range("B2").characters(1,2).phoneticcharacters = "ヘンコウ"
w.worksheets("修正").range("A1").value = "変更しました"
w.worksheets("修正").range("B2").characters(1,2).phoneticcharacters = "ヘンコウ"
w.worksheets("修正").range("A6:B10").clearcontents
w.close savechanges:=true
s = dir()
loop
application.screenupdating = true
end sub
それから,ファイルを開かずにファイルの中身を操作する方法は全くありません。
ありがとうございました。
私はマクロは記録マクロで新規に作成し、その後でモジュールを開いて自分が出来る範囲で修正していました。
基礎からちゃんと勉強するべきですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
-
4
VBA EXCEL 開かずにデータ操作
その他(Microsoft Office)
-
5
EXCELマクロコードを、それを含むファイルを開かずに編集したい
Excel(エクセル)
-
6
エクセルVBAで一つ上の階層を指定して保存したい
Excel(エクセル)
-
7
Application.Runエラー(1004)
Excel(エクセル)
-
8
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
-
9
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
10
リンク先のファイルを開かなくても、値が読み込めるようにできますか?(SUMIFSを使ってます)
Excel(エクセル)
-
11
VBAのフォント変更(エクセルからoutlookのメール作成において)
Visual Basic(VBA)
-
12
VBA 別ブックからコピペしたいのですが、軽くしたいです
Visual Basic(VBA)
-
13
Enterキーでマクロを起動さす。
その他(ソフトウェア)
-
14
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
15
WorkBooksをオープンさせずにシートにコピーしたい【EXCEL VBA】
Excel(エクセル)
-
16
VBA:ワークブックを変数でActiveにしたいのですが・・
Excel(エクセル)
-
17
VBAで複数のブックを開かずに処理する方法
Visual Basic(VBA)
-
18
ExcelVBAでBookを開く時にファイル名の一部だけを指定で
Access(アクセス)
-
19
VBA=一定時間エクセルの入力操作がない場合、自動的にそのブックを閉じたい
Windows Vista・XP
-
20
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データ参照先が別ファイルの場...
-
EXCEL VBA 指定したファイルが...
-
【マクロ】変数に入れるコード...
-
エクセルマクロで不特定なファ...
-
accessフォルダを移動したらフ...
-
EXCELマクロを無効にして開く方法
-
ファイルの保存場所を変えたら...
-
エクセル 複数ファイルの一括...
-
新規 xlsmファイルにする方法...
-
エクセルのシートの数を数えた...
-
秀丸:あらかじめ設定した複数...
-
エクセルのマクロウィルスの処置
-
Excelファイルの保存
-
エクセルのxls形式からxlsx形式...
-
Excel VBA seleniumのedge操作...
-
ファイルを開かずにマクロを実行
-
エクセルファイルを開く時、関...
-
フォルダ内のブック全部にパス...
-
【Excel VBA】ファイル名が一...
-
空白の処理に関するマクロ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】変数に入れるコード...
-
EXCEL VBA 指定したファイルが...
-
フォルダ内のexcelファイルを順...
-
【マクロ】名前を保存する際に...
-
データ参照先が別ファイルの場...
-
エクセルマクロで不特定なファ...
-
【Excel VBA】ファイル名が一...
-
フォルダ内のブック全部にパス...
-
エクセル 複数ファイルの一括...
-
エクセルファイルを開く時、関...
-
EXCELマクロを無効にして開く方法
-
accessフォルダを移動したらフ...
-
ファイルを開かずにマクロを実行
-
ファイルの保存場所を変えたら...
-
Excelのマクロでファイルを開く...
-
vlookup関数の引数を変数で指定...
-
エクセルのxls形式からxlsx形式...
-
秀丸:あらかじめ設定した複数...
-
VBAでワークブックの名前を変数...
-
エクセルマクロ 異なるファイ...
おすすめ情報