Page 150 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼Loop While の後の記述のしかた Reiko 02/9/29(日) 13:34 ┗Re:Loop While の後の記述のしかた Reiko 02/9/29(日) 14:49 ┗Re:Loop While の後の記述のしかた ひで 02/9/30(月) 14:46 ┗おかげさまで解決しました Reiko 02/9/30(月) 17:50 ─────────────────────────────────────── ■題名 : Loop While の後の記述のしかた ■名前 : Reiko ■日付 : 02/9/29(日) 13:34 -------------------------------------------------------------------------
今、フォルダの中には テスト株式会社0209 テスト株式会社0210 という名前のついたファイルがあります。 そこで、「テスト株式会社0211」という新しいファイルを 作成して保存するときは、同じ会社名のファイルを検索し、 見つかれば、ある特定のセル範囲をコピー→貼付 という マクロを書いています。(VBA研究所の皆さんのおかげです。) 長くなって申し訳ありませんが、以下は抜粋です。 Dim Ifile As String, Ipath As String, CC% Ipath = "C:\My Document\経営分析" Ifile = Dir(Ipath & "\" & TextBox1.Text & "*.xls") Do Until Ifile = "" CC% = CC% + 1 Workbooks.Open Ipath & "\" & Ifile Ifile = Dir Rtn = MsgBox("同一会社名ファイルの基礎値を読込みますか?", vbYesNo, "検索") If Rtn = vbYes Then Range("C65:D87").Select Selection.Copy ActiveWorkbook.Close savechanges:=True Range("C65").Select ActiveSheet.Paste Range("A1").Select End If If Rtn = vbNo Then Exit Do End If Loop この場合、次のような問題が発生してしまいます。 その1;同じ会社名ファイルがヒットするたび条件分岐処理が出てくる … つまり、一回でもvbYes を選択するとそれで処理を終わらせたいのです。 その2;vbNo を選択してもコピー→ペースト処理を行う … Exit Do のタイミングが悪いのでしょうか そこで、昨夜からLoop While で何とかしようとしているのですが、 今一つ分かりません。 どのようなマクロの記述をすればよいのでしょうか? |
>その1;同じ会社名ファイルがヒットするたび条件分岐処理が出てくる > … つまり、一回でもvbYes を選択するとそれで処理を終わらせたいのです。 >その2;vbNo を選択してもコピー→ペースト処理を行う > … Exit Do のタイミングが悪いのでしょうか > すみません。問題その1については Do Until Ifile = "" などと記述していたからでしたよね。 Until Ifile = ""を消すと問題その1については解決しました。 ただ、問題その2については未解決です。 |
▼Reiko さん こんにちは >>その2;vbNo を選択してもコピー→ペースト処理を行う >> … Exit Do のタイミングが悪いのでしょうか >ただ、問題その2については未解決です。 >Dim Ifile As String, Ipath As String, CC% > Ipath = "C:\My Document\経営分析" > Ifile = Dir(Ipath & "\" & TextBox1.Text & "*.xls") > Do Until Ifile = "" > CC% = CC% + 1 > Workbooks.Open Ipath & "\" & Ifile > Ifile = Dir > Rtn = MsgBox("同一会社名ファイルの基礎値を読込みますか?", vbYesNo, "検索") > If Rtn = vbYes Then > Range("C65:D87").Select > Selection.Copy > ActiveWorkbook.Close savechanges:=True > Range("C65").Select > ActiveSheet.Paste > Range("A1").Select Else ' No を選んだ時になにか処理があれば ’ここに記述してください。 End If Exit Do Loop コピー→ペースト処理はしなくなりますが どうでしょうか? |
▼ひで さん こんにちは > >コピー→ペースト処理はしなくなりますが >どうでしょうか? しなくなりました。 やっぱり私のRtn=vbNo 以下の記述の位置に 問題があったのですね。 どうもありがとうございました。 |