Excel VBA質問箱 IV

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

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


11830 / 76734 ←次へ | 前へ→

【70434】Re:エクセルファイルの移動について
発言  UO3  - 11/11/16(水) 10:13 -

引用なし
パスワード
   ▼ピッポ さん:

▼ピッポ さん:

おはようございます

>3点程、修正の要望があるのですが、

最初の課題は別にして、後の2つですが、ピッポさんのVBAのレベルはいかほどでしょう?
全く、右も左もわからないということだと、対応コードを差し上げても、その後、ちょっとした
変更で、また、質問しなきゃいけなくなりますね。特に、欲しい情報を取得する構成として
現在のシート1、シート2の構えが、「これでいいのかなぁ」と、これはコード以前の
設計のレベルの話ですけど、そこがしっかりしていないような印象ですから、やってみて
いずれ、あぁ、そうか、こういう場合もあるから、これはこうだとp、どんどん出てくるような
予感がしています。
最低でも、アップしたコード、できるだけコメントもいれてありますので、どこで何をどのように
処理しているのか、それをしっかり把握いただきたいと思います。そうすれば2番目の課題はご自分で
チューニングできたはずです。


>移動前のフォルダと移動後のフォルダが、共有サーバー内にあるのですが、
>それの影響が要因か断定はできないのですが、移動できませんでした。
>共有サーバー以外の例えば、Cドライブ内では、正常に動作しました。
>共有サーバー内にフォルダがあると、コードに何か反映させるのでしょうか?

う〜ん・・・こちらで移動後、移動前のフォルダをネットワークドライブ(パスは\\から始まります)において
それをハイパーリンクでセットして実行しましたが、Cドライブにあるのと同じように、ネットワークドライブにある
フォルダー間で正常に処理されましたが?
移動できないというのは、何かエラーメッセージがでたのでしょうか?

>
>シート1の当該行のE列の "毎月"のチェックは実施して、
>I列に、”問題なし”と”問題あり”と判断していますが”毎月”以外は
>空欄のままにしたいです。

これが、最初に申し上げたことなんです、

現在のコードは"元保管場所"シートのB列のセルをピックアップし、そのセルごとに

  For Each c In sh2.Range("B2", sh2.Range("B" & sh2.Rows.Count).End(xlUp))
    '
    ' ここでセルごとの処理
    '
  Next

こうなっていますよね。

で、上記をもう少し見ますと

  For Each c In sh2.Range("B2", sh2.Range("B" & sh2.Rows.Count).End(xlUp))
    '
    '一覧表 E列に 毎月 と記入あるものだけ
    If sh1.Cells(i, "E").Value = myCheck Then   '★1
      '
      ' ここで毎月以外のセルごとの処理
      '
    End If                     '★2
    
    With sh1.Cells(i, "I")
      '
      ' ここで処理が「行われたものは」問題なし、「行われなかったものは」問題ありの表記
      '
    End With
  
    '★3 このあたり
  Next

こうなっているでしょ?
★1で条件にあわずに飛ぶのは、★1の「対になった」End If である★2 ですよね。
つまり、E列が毎月であろうがなかろうが、For/Nextで囲まれたブロックの最後で、問題あり、なしの記述が
されてしまうわけで。
ですから、要望の修正を行うとすれば、この「対になった」End If を ★3 このあたり に移せば、
問題あり、なしの記述をしているところをスキップできますよね。


>それと動作確認して気付いたのですが、

上でもいいましたけど、動作確認して気づくというのは、少し表現が「自分に甘い?」
要は、必要な情報を取得するために考えた方法が、その目的にあっていなかったということですよ。

>移動する前のファイル名は、現状
>”シート2のB列の”固定された文字列”と
>”●●●”のような任意の文字列と”済”の文字列で形成されています。
>と、うたいましたが、実際、B列の”固定された文字列”がないものも含まれており対処できなくなりました。
>何度も申し訳ないのですが、
>移動する前のファイル名に、”済”の文字列のみあれば移動する
>と修正をお願いできませんでしょうか?

これを、コードで、はい、はい、こうしましょ というのはたやすいんですけどねぇ・・・
でも!
仮に、シート2のB列が以下のようになっていたとします。
ABC フォルダX
XYZ フォルダX

で、 ABC で処理しましょう。フォルダX で ABC は無視して、とにかく○○○済 のファイルを、
「全て」どこかに移動させたとします。もう、フォルダXの中には○○○済のファイルはありません。
で、次のXYZで処理しますね。もう "XYZ済"も含めて、フォルダの中にはありませんので、からぶりですよね。

さらに、ABC で処理した際に、済がついたファイルがフォルダXに100個あったとします。
提示された条件では、その移動先はシート1の同じ行にあるハイパーリンク先。
でも、100個ですよ。その100個は、XYZ済も含めて全て同じフォルダに持っていっていいのですか?
もしかしたらシート1の XYZ の行にはフォルダZとセットされているかもしれませんよね。

あるいは、100個あったとして、1つずつ、シート1の「どこか(おそらくB列?」を捜して、
その行で処理する?できないことはないですよ。でも、ここで、シート1になかったらどうするとか。

考えなきゃいけないことは、たくさんありそうですよ。
一度、ゆっくりと整理しなおされてはいかがでしょう。

たとえば移動元情報はブック毎の行ではなくフォルダごとの行。
そこで"済"ブックを抽出して、別途のシートにあるブック情報とマッチさせて、その指定の移動先に
もっていく。そこになかったものについては、からぶりとか、あるいは、別シートにアンマッチ情報を
リストアップするとか。

とにかく、ピッポさんが、本当に何をやりたいのか それを整理しなおすことをお勧めします。
7 hits

【70390】エクセルファイルの移動について ピッポ 11/11/12(土) 16:57 質問
【70391】Re:エクセルファイルの移動について UO3 11/11/12(土) 17:23 発言
【70393】Re:エクセルファイルの移動について ピッポ 11/11/12(土) 18:18 発言
【70396】Re:エクセルファイルの移動について UO3 11/11/12(土) 19:56 発言
【70399】Re:エクセルファイルの移動について ピッポ 11/11/12(土) 20:56 発言
【70398】Re:エクセルファイルの移動について UO3 11/11/12(土) 20:29 発言
【70400】Re:エクセルファイルの移動について UO3 11/11/12(土) 23:07 回答
【70401】Re:エクセルファイルの移動について ピッポ 11/11/13(日) 1:00 お礼
【70406】Re:エクセルファイルの移動について ピッポ 11/11/13(日) 22:06 発言
【70407】Re:エクセルファイルの移動について ピッポ 11/11/14(月) 0:35 発言
【70408】Re:エクセルファイルの移動について UO3 11/11/14(月) 11:18 発言
【70411】Re:エクセルファイルの移動について ピッポ 11/11/14(月) 13:11 発言
【70412】Re:エクセルファイルの移動について UO3 11/11/14(月) 16:12 発言
【70413】Re:エクセルファイルの移動について ピッポ 11/11/15(火) 6:02 発言
【70409】Re:エクセルファイルの移動について UO3 11/11/14(月) 11:37 発言
【70410】Re:エクセルファイルの移動について UO3 11/11/14(月) 11:46 発言
【70417】Re:エクセルファイルの移動について UO3 11/11/15(火) 12:09 回答
【70432】Re:エクセルファイルの移動について ピッポ 11/11/16(水) 6:42 発言
【70434】Re:エクセルファイルの移動について UO3 11/11/16(水) 10:13 発言
【70435】Re:エクセルファイルの移動について UO3 11/11/16(水) 11:19 発言

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