Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3999 / 76734 ←次へ | 前へ→

【78363】Re:解決しました
発言  γ  - 16/7/25(月) 21:10 -

引用なし
パスワード
   こんにちは。
解決されたようで何よりです。
また解決を知らせてくれたのは、good jobです。


ところで、
こちらでマナさんがいくつかのステップに分けて、
トライしやすいように助言されていたのですが、
なぜそれにトライされようとしなかったのでしょうか。

マナさんはもちろん正解は瞬時に分かったわけで、
あなたが理解し易いように、小分けにして回答してくださったいたのです。

特に、16/7/23(土) 9:46 の助言は、内容の理解に有益なものでした。
それに沿って考えを進めていけば、答えに到達できたはずです。

Like演算子の理解につながる適切な例も示されています。
>3)の例です。理解できますか。
と問いかけられていますが、なぜそれに応えられなかったのでしょう。

VBAを学習しようとしているのではないのですか。
単にコードが欲しいだけですか?
ご自分で取り組もうという気はまったくないのですか?
残念なことです。


ちなみに、知恵袋での回答をそのまま転記されているが、
それはそれで動作はしますが、ちょっと疑問もあります。

(1)コードは普通はきちんとインデントをつけるものです。
  知恵袋ではインデントが崩れやすいのでやむを得ない面もあるが、
  実際に使う場合や、他に転用するなら、
  きちんとインデントをつけるべきですね。
 
(2)逆順にしないといけないのは、数値によるindexでコレクションを参照しているからで、
  質問にあった(これはマナさんの回答をそのまま転用しているのですが)
  For Each ..Nextをそのまま使えば、逆順など意識する必要はありません。

(3)ついでに、知恵袋での別の回答について言えば、
  If InStr(Workbooks(i).Name, KeyWord) > -1 Then
    Workbooks(i).Close
  End If 
  も回答者に勘違いがあります。
  これでは、すべてのブックが閉じられるはずです。
  keywordを含まない場合はInStrは 0 を返すのです。
  > 0 とすべきところを確認を怠ったのでしょう。

ということで、
Sub test()
  Dim wb As Workbook
  Dim keyword As String

  keyword = "pon"
  For Each wb In Workbooks
    If wb.Name Like "*" & keyword & "*" Then
      wb.Close
    End If
  Next
End Sub
で良いでしょう。

マナさんの助言に単に .closeを足すだけですよ。
他人の助言をしっかり受け止めて下さい。
単にコードだけ欲しがるのではなく。
9 hits

【78351】特定のキーワードを含むファイルだけ閉じる ぽん 16/7/22(金) 19:28 発言[未読]
【78352】Re:特定のキーワードを含むファイルだけ閉... マナ 16/7/22(金) 22:41 発言[未読]
【78353】Re:特定のキーワードを含むファイルだけ閉... ぽん 16/7/23(土) 5:12 発言[未読]
【78354】Re:特定のキーワードを含むファイルだけ閉... マナ 16/7/23(土) 9:46 発言[未読]
【78360】Re:特定のキーワードを含むファイルだけ閉... とおりすがり 16/7/24(日) 10:32 発言[未読]
【78361】Re:特定のキーワードを含むファイルだけ閉... 純子 16/7/24(日) 20:16 発言[未読]
【78362】解決しました ぽん 16/7/24(日) 23:40 発言[未読]
【78363】Re:解決しました γ 16/7/25(月) 21:10 発言[未読]

3999 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free