Excel VBA質問箱 IV

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

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


12529 / 13646 ツリー ←次へ | 前へ→

【9951】フォルダ内の、ファイル全てに対して・・・ テーブル 03/12/24(水) 17:42 質問
【9953】Re:フォルダ内の、ファイル全てに対して・・... INA 03/12/24(水) 23:30 回答
【9954】Re:フォルダ内の、ファイル全てに対して・・... テーブル 03/12/25(木) 12:00 質問
【9955】Re:フォルダ内の、ファイル全てに対して・... INA 03/12/25(木) 13:11 回答
【9956】Re:フォルダ内の、ファイル全てに対して・... テーブル 03/12/25(木) 14:28 質問
【9958】Re:フォルダ内の、ファイル全てに対して・... テーブル 03/12/25(木) 14:50 質問
【9964】Re:フォルダ内の、ファイル全てに対して・... INA 03/12/25(木) 18:44 回答
【9965】Re:フォルダ内の、ファイル全てに対して・... INA 03/12/25(木) 18:49 回答
【10075】Re:フォルダ内の、ファイル全てに対して・... テーブル 04/1/6(火) 11:20 発言

【9951】フォルダ内の、ファイル全てに対して・・・
質問  テーブル  - 03/12/24(水) 17:42 -

引用なし
パスワード
   お世話になっております。テーブルです。
今回の質問は全然わからないので、
どうかご教授の方よろしくお願いたします。

「計算ファイル」から、フォルダAに入っている一個の「ベースファイル」と、フォルダBに入っている(数はランダム)「出力先ファイル」があります。

フォルダAに入っている「ベースファイル」の「B1〜E1」のデータから「A?〜D?」の最終行までのデータと一致するデータを「出力先ファイル」の「B1〜E1」のデータと比べます。
一致するまで全てのファイルの「B1〜E1」を見て、同じ物に対しては、「ベースファイル」の「L1」「M1」の値を、「出力先ファイル」の、「L1」「M1」にその値を出力したいのですが、どなたか教えていただけないでしょうか。

【9953】Re:フォルダ内の、ファイル全てに対して・...
回答  INA  - 03/12/24(水) 23:30 -

引用なし
パスワード
   計算ファイル.xls がマクロブックですか?
ファイル名はベースファイル.xlsですか?
出力先ファイルは、複数とのことですが、フォルダB内の全.xlsファイルという
ことでしょうか?
フォルダの指定は、コードで記述ですか、ユーザーが指定ですか?
シート名は?

具体的な名称などを書かれていませんが、
どこか部分的に分からない箇所の説明をご希望でしょうか?
丸投げでないとしたら、ご自分ではどの程度まで作成できましたか?

【9954】Re:フォルダ内の、ファイル全てに対して・...
質問  テーブル  - 03/12/25(木) 12:00 -

引用なし
パスワード
   ▼INA さん:
>具体的な名称などを書かれていませんが、
>どこか部分的に分からない箇所の説明をご希望でしょうか?

部分的にわからないのですが、
1)ユーザーがマクロbookから、Aフォルダと比較する。B.xlsファイルを選択します。
2)「ユーザーが選択したAフォルダに入っている.xlsファイル全て」に対して、B.xlsファイルと比較します。


3)比較するのは、お互いの「A〜E」のセルが一致した場合に、B.xlsファイルの「F」の列の情報をAフォルダに入っている.xlsファイル全てに対して「F」列に同じように出力したいのです。

1)と2)の個所の説明を希望しています。

【9955】Re:フォルダ内の、ファイル全てに対して・...
回答  INA  - 03/12/25(木) 13:11 -

引用なし
パスワード
   >1)ユーザーがマクロbookから、Aフォルダと比較する。B.xlsファイルを選択します。
「マクロbookから、Aフォルダと比較」?
いまいち文章の意味が分かりません。

>2)「ユーザーが選択したAフォルダに入っている.xlsファイル全て」に対して、
>B.xlsファイルと比較します。
フォルダの選択と、ファイル名の取得は、以下のように出来ます

Dim myObj As Object
Dim myDir As String
Dim myFileName As String
Dim myFileList As String
Dim myFileCount As Long
    
  'フォルダ選択ダイアログの表示
  Set myObj = CreateObject("Shell.Application"). _
  BrowseForFolder(0, "フォルダを選択してください", 0)
  If myObj Is Nothing Then Exit Sub
 
  myDir = myObj.Items.Item.Path
  If Right(myDir, 1) <> "\" Then myDir = myDir & "\"

'##################################
' フォルダ内のExcelファイル検出
'##################################

  
  myFileName = Dir(myDir & "*.xls")
  
  Do While myFileName <> ""
    If myFileName = ThisWorkbook.Name Then myFileName = ""
    myFileList = myFileList & Chr(13) & myFileName
    myFileCount = myFileCount + 1
    myFileName = Dir()
  Loop

 If myFileCount = 0 Then
   MsgBox "ファイルは見つかりませんでした。マクロを終了します。", 48
   Exit Sub
 ElseIf vbNo = MsgBox(myFileCount & " 個の .xls ファイルが見つかりました。マクロを実行しますか?" _
                   & Chr(13) & myFileList, 4, "ファイル確認") Then
   MsgBox "キャンセルしました。"
   Exit Sub
 End If
 
 
 MsgBox "マクロを実行します。"

【9956】Re:フォルダ内の、ファイル全てに対して・...
質問  テーブル  - 03/12/25(木) 14:28 -

引用なし
パスワード
   INAさん、いつもいつも、ありがとうございます。
やりたい事が教えてもらったコードで、できます。

もう一つ質問なのですが、ユーザーが指定したフォルダ内の全ての.xlsファイルの「A〜E」列と、シート上の「A〜E」列が同じかどうか、一個づつ比較したいのですが。
どうすれば、シート上の「A〜E」の値と、ユーザーが指定したフォルダ内の全ての.xlsファイル上の「A〜E」の値と比較する事ができるのでしょうか? 大変恐縮ですが、よろしくお願いたします。

【9958】Re:フォルダ内の、ファイル全てに対して・...
質問  テーブル  - 03/12/25(木) 14:50 -

引用なし
パスワード
   ▼テーブル さん:

>もう一つ質問なのですが、ユーザーが指定したフォルダ内の全ての.xlsファイルの「A〜E」列と、シート上の「A〜E」列が同じかどうか、一個づつ比較したいのですが。

書き忘れです。「A1〜E1」が一つのデータですので、 「A1〜E1」同士を比較し、同じ物が見つかるまで、フォルダ内のEXCEL全てに対して検索を行いたいです。

【9964】Re:フォルダ内の、ファイル全てに対して・...
回答  INA  - 03/12/25(木) 18:44 -

引用なし
パスワード
   まずは、全部のファイルに対してではなく、
1個のファイルに対しての比較を考えてみて下さい。
これができたら、あとは

指定フォルダ内のブックを開く
 ↓
マクロブック?と上記の開いたブックを比較する。
このときシート名が必要です。
 ↓
見つからなければ、開いたブックを閉じる。
 ↓
最初に戻る。

をループ文の中で繰り返します。

見つかったときの処理は、IF文で条件分岐すればできます。

【9965】Re:フォルダ内の、ファイル全てに対して・...
回答  INA  - 03/12/25(木) 18:49 -

引用なし
パスワード
   まず比較するのは、
マクロブックの?シート と 指定フォルダ内のブックの?シートですか?

比較するのは、
マクロブックのA1〜E1 と
指定フォルダ内のブックのA1〜E1・・・A列最終行〜E列最終行のデータですか?

それとも、マクロブックのA1〜E1・・・A列最終行〜E列最終行と
指定フォルダ内のブックのA1〜E1・・・A列最終行〜E列最終行のデータを
総当たりで比較ですか?
それとも、同じ行同士の比較ですか?

あとセルのデータは、具体的に何になりますか?

【10075】Re:フォルダ内の、ファイル全てに対して...
発言  テーブル  - 04/1/6(火) 11:20 -

引用なし
パスワード
   ▼INA さん:
明けましておめでとうございます。
年末年始とも実家に帰っていたために、ネットを使う事ができませんでした、
せっかくレスをして頂いたのに、返事が遅れてしまい申し訳ありません。
今年もよろしくお願いたします!

>まず比較するのは、
>マクロブックの?シート と 指定フォルダ内のブックの?シートですか?

マクロブックの、"Sheet1"と 指定フォルダ内のブックの、"Sheet1"です。


>比較するのは、
>マクロブックのA1〜E1 と
>指定フォルダ内のブックのA1〜E1・・・A列最終行〜E列最終行のデータですか?
>それとも、マクロブックのA1〜E1・・・A列最終行〜E列最終行と
>指定フォルダ内のブックのA1〜E1・・・A列最終行〜E列最終行のデータを
>総当たりで比較ですか?
>それとも、同じ行同士の比較ですか?
>
>あとセルのデータは、具体的に何になりますか?

説明不足で申し訳ありません。
マクロブックのA1〜E1・・・A列最終行〜E列最終行と
指定フォルダ内のブックのA1〜E1・・・A列最終行〜E列最終行のデータの
総当たり比較です。

セルのデータは、半角英大文字+数字になります

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