過去ログ

                                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 で何とかしようとしているのですが、
今一つ分かりません。
どのようなマクロの記述をすればよいのでしょうか?
 ───────────────────────────────────────  ■題名 : Re:Loop While の後の記述のしかた  ■名前 : Reiko  ■日付 : 02/9/29(日) 14:49  -------------------------------------------------------------------------
   >その1;同じ会社名ファイルがヒットするたび条件分岐処理が出てくる
>    … つまり、一回でもvbYes を選択するとそれで処理を終わらせたいのです。
>その2;vbNo を選択してもコピー→ペースト処理を行う
>    … Exit Do のタイミングが悪いのでしょうか
>

すみません。問題その1については
Do Until Ifile = "" などと記述していたからでしたよね。
Until Ifile = ""を消すと問題その1については解決しました。

ただ、問題その2については未解決です。
 ───────────────────────────────────────  ■題名 : Re:Loop While の後の記述のしかた  ■名前 : ひで  ■日付 : 02/9/30(月) 14:46  -------------------------------------------------------------------------
   ▼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

コピー→ペースト処理はしなくなりますが
どうでしょうか?
 ───────────────────────────────────────  ■題名 : おかげさまで解決しました  ■名前 : Reiko  ■日付 : 02/9/30(月) 17:50  -------------------------------------------------------------------------
   ▼ひで さん こんにちは
>
>コピー→ペースト処理はしなくなりますが
>どうでしょうか?

しなくなりました。
やっぱり私のRtn=vbNo 以下の記述の位置に
問題があったのですね。
どうもありがとうございました。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 150