Sub mondai2()
Dim file_mei
Dim gyo_kyaku
Dim gyo_komoku
For gyo_komoku = 4 To 7
file_mei = Workbooks("ks207.xls").Worksheets("リスト").Range("D" & gyo_komoku).Value
Sheets("本番").Select
Sheets("本番").Copy
ActiveWorkbook.SaveAs Filename:= _
"https://d.docs.live.net/efa0b2792b1738f2/Private/ガラパゴスタディー%20オンライン講座/基礎/ksfollow_advanced/【動画12】%20条件に一致するデータだけのリストを、条件に一致しないデータを削除する方法で複数の別ファイルとして連続的に作成する。/ks207/ks207_mondai/" & file_mei
For gyo_kyaku = 29 To 4 Step -1
If Workbooks("ks207.xls").Worksheets("リスト").Range("C" & gyo_komoku).Value <> Workbooks(file_mei).Worksheets("本番").Range("D" & gyo_kyaku).Value Then
Workbooks(file_mei).Worksheets("本番").Range("B" & gyo_kyaku & ": D" & gyo_kyaku).Select
Selection.Delete Shift:=xlUp
End If
Next
ActiveWorkbook.Save
ActiveWorkbook.Close
Next
End Sub
凜さんの投稿
(投稿ID: 5488)
2つ質問をさせてください。
下記のマクロをF8で実行しようとしたところ、「ActiveWorkbook.SaveAs Filename:= 」を過ぎたところでF5を押したように一気に最後まで実行してしまいます。
F8を押している事をしっかりと確認して繰り返し試してみましたが、同様の結果でした。
どのような原因が考えられるでしょうか。
---
また、コピーして作成したファイルを開こうとすると下記の警告が表示されます。
「'b.xls'のファイル形式と拡張子が一致しません。ファイルが破損しているか、安全ではない可能性があります。発行元が信頼できない場合は、このファイルを開かないでください。ファイルを開きますか?」
[名前をつけて保存]でファイル形式を確認したところ、元のファイルは[.xls]ですが、作成したファイルは[.xlsx]となっていました。
この不一致が原因と推測しておりますが、回避するためにはどうすればよろしいでしょうか。
ご指導のほどよろしくお願い致します。
小川 慶一さんのコメント
(コメントID: 8202)
[1]
For gyo_kyaku = 29 To 4 Step -1 等の以降の各行にブレークポイントを置いてから同様に実行し、そこで止まるかどうかを見てみたいですね。
[2]
保存時のファイル名と実際の中のデータに不一致があったのでしょう。
.xlsx で保存するならば、中身も .xlsx の形式で、 .xls で保存するならば、中身も .xls の形式である必要があります。
以下は、自動記録をしながらファイル名を指定して保存ダイアログから拡張子 .xlsx を指定してファイルを保存した場合に得られるコードの例です。
FileFormat:=xlOpenXMLWorkbook とありますね。これが、 .xlsx を指定する場合の書き方です。 .xls の場合についてはご自身で確かめてみてください。
まずは、以上のとおりです。
凜さんのコメント
(コメントID: 8206)
[1]についてご指示いただいた箇所にブレークポイントを置いてから、F8を試したところちゃんと止まりました。
また、ブレークポイントを置いたままF8を押し進めると期待通りの動作となりました。
しかし最初にブレークポイントを置いて途中で止めた後にブレークポイントを外してF8を押していくとやはり途中からF5と同じ動作になる事がわかりました。
ひとまずF8が使える状況が作り出せて安心しました!
[2]ですが、自動記録する時にコピーしているのだから形式も同じだと思い込み、保存時にファイル形式の確認を疎かにしていました。
他の動画でマクロで書くとファイル名の先頭にスペースが入ってしまうなどの説明もありましたし、今回のように保存形式と表示されている拡張子が違うなどこれまでのExcel操作では考えられないような事が起こるものだと勉強になりました。
矛盾した指示を出さないように十分に注意して作業するようにします。
小川 慶一さんのコメント
(コメントID: 8207)
[1] ひとまず、丁寧なデバッグはできそうですね。
[2] ファイルの拡張子と中身の相違というのは、ときどきありますね。以後気をつけましょう。
ひきつづき、よろしくお願いいたします。