Excel VBA質問箱 IV

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

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


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

【44871】複数の同一形式のブックのセルデータを別のブックシートにまとめたい yosinobu 06/12/4(月) 23:16 質問[未読]
【44872】Re:複数の同一形式のブックのセルデータを... Kein 06/12/5(火) 1:11 回答[未読]
【44900】Re:複数の同一形式のブックのセルデータを... yosinobu 06/12/5(火) 20:35 お礼[未読]
【44902】Re:複数の同一形式のブックのセルデータを... Kein 06/12/5(火) 20:57 回答[未読]
【44905】Re:複数の同一形式のブックのセルデータを... yosinobu 06/12/5(火) 21:29 お礼[未読]
【45016】Re:複数の同一形式のブックのセルデータを... yosinobu 06/12/10(日) 9:47 質問[未読]
【45023】Re:複数の同一形式のブックのセルデータを... Kein 06/12/10(日) 14:57 回答[未読]
【45027】Re:複数の同一形式のブックのセルデータを... yosinobu 06/12/10(日) 15:54 お礼[未読]
【45032】Re:複数の同一形式のブックのセルデータを... Kein 06/12/10(日) 17:03 発言[未読]
【45033】Re:複数の同一形式のブックのセルデータを... yosinobu 06/12/10(日) 18:01 質問[未読]
【45034】Re:複数の同一形式のブックのセルデータを... かみちゃん 06/12/10(日) 18:09 発言[未読]
【45035】Re:複数の同一形式のブックのセルデータを... yosinobu 06/12/10(日) 18:21 質問[未読]
【45037】Re:複数の同一形式のブックのセルデータを... かみちゃん 06/12/10(日) 18:40 発言[未読]
【45038】Re:複数の同一形式のブックのセルデータを... yosinobu 06/12/10(日) 18:58 質問[未読]
【45039】Re:複数の同一形式のブックのセルデータを... かみちゃん 06/12/10(日) 19:04 発言[未読]
【45070】Re:複数の同一形式のブックのセルデータを... yosinobu 06/12/11(月) 23:51 回答[未読]
【45072】Re:複数の同一形式のブックのセルデータを... かみちゃん 06/12/12(火) 1:52 発言[未読]
【45154】Re:複数の同一形式のブックのセルデータを... yosinobu 06/12/13(水) 19:37 お礼[未読]
【45043】Re:複数の同一形式のブックのセルデータを... Kein 06/12/10(日) 23:06 回答[未読]
【45153】Re:複数の同一形式のブックのセルデータを... yosinobu 06/12/13(水) 19:32 お礼[未読]

【44871】複数の同一形式のブックのセルデータを別...
質問  yosinobu E-MAIL  - 06/12/4(月) 23:16 -

引用なし
パスワード
   複数の同一形式のブック
01abc 02bcd 03cde ・・・・・90xxx
の EXCel ブックがあり
それぞれ sheet1 は、同一形式です。
それぞれのセル A1のデータを
ブックAの sheet1に 転記したい。

    ブック 01abc のデータを ブックAのsheet1 の A1
    ブック 02bcd のデータを ブックAのsheet1 の A2
    と 順序よく転記したい。


    宜しく お願いします。

【44872】Re:複数の同一形式のブックのセルデータ...
回答  Kein  - 06/12/5(火) 1:11 -

引用なし
パスワード
   ブックAに以下のコードを入れ、定数 SFol の値を
リンク元ブックの保存先のパスに変更して、実行してみて下さい。

Sub MyData_Link()
  Dim i As Integer
  Dim MyF As String, LkSt As String
  Const SFol As String = _
  "C:\Documents and Settings\User\My Documents\Exl_Files"
 
  For i = 1 To 90
   MyF = Dir(SFol & "\" & Format(i, "00") & "*.xls")
   With Worksheets("Sheet1").Cells(i, 1)
     If MyF = "" Then
      .Value = "File_NotFound"
     Else
      LkSt = "='" & SFol & "\[" & MyF & "]Sheet1'!$A$1"
      .Formula = LkSt
      .Value = .Value
     End If
   End With
  Next i
  MsgBox "全てのデータを転記しました", 64
End Sub

【44900】Re:複数の同一形式のブックのセルデータ...
お礼  yosinobu E-MAIL  - 06/12/5(火) 20:35 -

引用なし
パスワード
   ▼Kein さん:
  丸投げした形になり申し訳ありませんでした。
  また、夜分にもかかわらずありがとうございました。
 当方、同一ブックなら出来るのですが、ブックを異にする場合の考え方がわかりませんでした。
 本当にありがとうございました。
 なお、質問は、単一セルのデータでしたが、
    複数の場合は、
 for i のループの中に
 セル deita1 = range("a1")
    deita2 = range("a2")
    deita3 = range("a3")   
として
    集計する sheet1 の同一行に転記するには、
   range(banchia) = deita1  
   range(banchib) = deita2  
   range(banchic) = deita3
 のような 構文は、出来ないでしょうか。


はなはだかってなお願いですみませんが、宜しくお願いします。


>Sub MyData_Link()
>  Dim i As Integer
>  Dim MyF As String, LkSt As String
>  Const SFol As String = _
>  "C:\Documents and Settings\User\My Documents\Exl_Files"
> 
>  For i = 1 To 90
>   MyF = Dir(SFol & "\" & Format(i, "00") & "*.xls")
>   With Worksheets("Sheet1").Cells(i, 1)
>     If MyF = "" Then
>      .Value = "File_NotFound"
>     Else
>      LkSt = "='" & SFol & "\[" & MyF & "]Sheet1'!$A$1"
>      .Formula = LkSt
>      .Value = .Value
>     End If
>   End With
>  Next i
>  MsgBox "全てのデータを転記しました", 64
>End Sub

【44902】Re:複数の同一形式のブックのセルデータ...
回答  Kein  - 06/12/5(火) 20:57 -

引用なし
パスワード
   >sheet1 の同一行に転記
つまり「リンク元の A1:A3 の値を行列変換して、転記先シートの n行のA:C列に」
という意味でしょうか ? それなら If MyF 〜 End If の部分を

If MyF = "" Then
  .Value = "File_NotFound"
Else
  LkSt = "='" & SFol & "\[" & MyF & "]Sheet1'!"
  .Formula = LkSt & "$A$1"
  .Offset(, 1).Formula = LkSt & "$A$2"
  .Offset(, 2).Formula = LkSt & "$A$3"
  .Resize(, 3).Value = .Resize(, 3).Value
End If

と、変更して下さい。

【44905】Re:複数の同一形式のブックのセルデータ...
お礼  yosinobu E-MAIL  - 06/12/5(火) 21:29 -

引用なし
パスワード
   ▼Kein さん:
>ありがとうございました。
早速 実施したいと思います。

また、何かありましたら、ご指導お願いします。
それでは、失礼します。

【45016】Re:複数の同一形式のブックのセルデータ...
質問  yosinobu E-MAIL  - 06/12/10(日) 9:47 -

引用なし
パスワード
   ▼Kein さん:
>>一度御礼送信しましたが、再々質問よろしいでしょうか。?

 ブックが、"01*.xls" から "90*.xls" まであります。同一ファイルです。
 それぞれの sheets1(A) のデータ a1,a2,b1,b2,c1,c2 を

 集計する ブック名  "集計.xls" の sheets名 "一覧" の 
 
 "01*.xls" のデータであれば、 
 sheets 一覧 の 8行目の b8.d8.f8.g8.i8.l8
というように 列を行変換出来ない場合は、どのようにすればよいでしょうか?
 出来れば、for next で マクロ行が長くなってもかまいませんので、
 
 具体的な内容が不明でしたことをお詫びしますのでよろしくお願いします。


 

【45023】Re:複数の同一形式のブックのセルデータ...
回答  Kein  - 06/12/10(日) 14:57 -

引用なし
パスワード
   Sub MyData_Link()
  Dim i As Integer
  Dim Sh As Worksheet
  Dim MyF As String, LkSt As String
  Const SFol As String = _
  "C:\Documents and Settings\User\My Documents\Exl_Files"
 
  Set Sh = Worksheets("一覧")
  For i = 1 To 90
   MyF = Dir(SFol & "\" & Format(i, "00") & "*.xls")
   With Sh.Range(Sh.Cells(i + 7, 2), Sh.Cells(i + 7, 12))
     If MyF = "" Then
      .Cells(1).Value = "File_NotFound"
     Else
       LkSt = "='" & SFol & "\[" & MyF & "]Sheet1'!"
      .Cells(1).Formula = LkSt & "$A$1"
      .Cells(3).Formula = LkSt & "$A$2"
      .Cells(5).Formula = LkSt & "$B$1"
      .Cells(6).Formula = LkSt & "$B$2"
      .Cells(8).Formula = LkSt & "$C$1"
      .Cells(11).Formula = LkSt & "$C$2"
      .Value = .Value
     End If
   End With
  Next i
  Set Sh = Nothing
  MsgBox "全てのデータを転記しました", 64
End Sub

で、どうでしょーか ?

【45027】Re:複数の同一形式のブックのセルデータ...
お礼  yosinobu E-MAIL  - 06/12/10(日) 15:54 -

引用なし
パスワード
   ▼Kein さん:
>たびたびもう仕分け有りませんでした。

早速 実施したいと、思います。

愚問ですが、構文の中の、 with sh.range(sh.Cells(i + 7,2)とは、

 参照ブックが、01 の場合の 転記行が、01 + 7 = 8行で、,2 とは、B列を
 意味すると理解してよいですか?(素人みたいですみません)

本当にありがとうございました。
          

【45032】Re:複数の同一形式のブックのセルデータ...
発言  Kein  - 06/12/10(日) 17:03 -

引用なし
パスワード
   >参照ブックが、01 の場合の転記行が、01 + 7 = 8行で、,2 とは、B列を意味する
そのとうりです。

【45033】Re:複数の同一形式のブックのセルデータ...
質問  yosinobu E-MAIL  - 06/12/10(日) 18:01 -

引用なし
パスワード
   ▼Kein さん:
>>教えていただいた構文を実際の内容に置き換えたのですが、
 うまくいきません。
  どこが、謝っているのでしょうか?
 
  大変申し訳ございませんが、宜しくお願いします。

  全て notfound c列に表示されます。
   
Sub Macro1()
Dim i As Integer
Dim Sh As Worksheet
Dim MyF As String, LkSt As String
Const SFol As String = _
"C:\C:\Documents and Settings\安部 義信\デスクトップ_
\授業料調査集計 \Exl_Files"

Set Sh = Worksheets("集計")
For i = 1 To 94
  MyF = Dir(SFol & "\" & Format(i, "00") & "*.xls")
  With Sh.Range(Sh.Cells(i + 6, 2), Sh.Cells(i + 6, 15))
  
  If MyF = "" Then
  .Cells(2).Value = "File_notfound"
  
  Else
   LkSt = "=" & SFol & "\ [ " & MyF & "] アンケート"
   .Cells(5).Formula = LkSt & "$c$7"
   .Cells(6).Formula = LkSt & "$e$7"
   .Cells(7).Formula = LkSt & "$e$8"
   .Cells(8).Formula = LkSt & "$f$7"
   .Cells(9).Formula = LkSt & "$f$8"
   .Cells(10).Formula = LkSt & "$g$7"
   .Cells(11).Formula = LkSt & "$g$8"
   .Cells(12).Formula = LkSt & "$h$7"
   .Cells(13).Formula = LkSt & "$h$8"
   .Cells(14).Formula = LkSt & "$i$7"
   .Cells(15).Formula = LkSt & "$i$8"
   
   .Value = .Value
   End If
  End With
Next i
Set Sh = Nothing
MsgBox "全てのデータを転記しました", 64
End Sub

【45034】Re:複数の同一形式のブックのセルデータ...
発言  かみちゃん  - 06/12/10(日) 18:09 -

引用なし
パスワード
   こんにちは。かみちゃん です。

横から失礼します。

>  全て notfound c列に表示されます。

以下のコードは、合っていますか?

Const SFol As String = _
"C:\C:\Documents and Settings\安部 義信\デスクトップ_
\授業料調査集計 \Exl_Files"

C:\C:\とは?
半角全角スペースなども気になります。

【45035】Re:複数の同一形式のブックのセルデータ...
質問  yosinobu E-MAIL  - 06/12/10(日) 18:21 -

引用なし
パスワード
   ▼かみちゃん さん:
>C:\C:\Documents ・・・・

は、誤りでした

"C:\Documents ・・・・
として 実行しました。(コピーするとき間違えました。)

申し訳ありませんが、宜しくお願いします。


こんにちは。かみちゃん です。
>
>横から失礼します。
>
>>  全て notfound c列に表示されます。
>
>以下のコードは、合っていますか?
>
>Const SFol As String = _
>"C:\C:\Documents and Settings\安部 義信\デスクトップ_
>\授業料調査集計 \Exl_Files"
>
>C:\C:\とは?
>半角全角スペースなども気になります。

【45037】Re:複数の同一形式のブックのセルデータ...
発言  かみちゃん  - 06/12/10(日) 18:40 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>>C:\C:\Documents ・・・・
>
>は、誤りでした
>
>"C:\Documents ・・・・
>として 実行しました。(コピーするとき間違えました。)

どうしても、フォルダの指定が怪しい感じがします。
以下のようにして、フォルダの存在チェックをしてみたらいかがでしょうか?

Sub Test()
 Const SFol As String = _
  "C:\Documents and Settings\安部 義信\デスクトップ\授業料調査集計 \Exl_Files"
 If Dir(SFol, vbDirectory) = "" Then
  MsgBox "フォルダが見つかりません" & vbCrLf & SFol
 Else
  MsgBox "フォルダが見つかりました" & vbCrLf & SFol
 End If
End Sub

あとは、
01*.xls、02*.xls・・・94*.xlsのファイルと同じフォルダにマクロのブックを
入れて、
MyF = Dir(SFol & "\" & Format(i, "00") & "*.xls")
は、
MyF = Dir(ThisWorkbook.Path & "\" & Format(i, "00") & "*.xls")
としてみるといかがでしょうか?
ThisWorkbookを記述したマクロを実行するときは、新規ブックの場合は、一度保存しておく必要があります。

【45038】Re:複数の同一形式のブックのセルデータ...
質問  yosinobu E-MAIL  - 06/12/10(日) 18:58 -

引用なし
パスワード
   ▼かみちゃん さんへ
>ご指導のとおりでした。(ファイルは見つかりませんでした)

どうも私の質問が、わかりにくかったようでしたので、

再質問よろしいでしょうか?

全体の構成を箇条書きにしました。

1 作業領域(転記元& 転記先)同じ デスクトップ の 
  フォルダー名 授業料調査集計
2 転記元のデータは、
  ブック名 → 01* 〜 90*
  シート名 アンケート 
  セルは、 c7,e7,e8,f7,f8
3 転記先は、
  転記元の 01+6 行目の それぞれ E列からI列です。

  以上箇条書きにしました。

  当方生半可の知識しかないので 宜しくお願いします。

【45039】Re:複数の同一形式のブックのセルデータ...
発言  かみちゃん  - 06/12/10(日) 19:04 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>>ご指導のとおりでした。(ファイルは見つかりませんでした)
>
>どうも私の質問が、わかりにくかったようでしたので、

再質問の前に「フォルダ指定」を直せばいいだけなのでは?

それとも、デスクトップパスがうまく取得できないということでしょうか?
デスクトップパスは、PCとログインユーザー名によって変わりますけど、大丈夫ですか?

あと、01*.xls〜94*.xlsと同一フォルダにマクロブックを入れてみたらいけないのですか?

【45043】Re:複数の同一形式のブックのセルデータ...
回答  Kein  - 06/12/10(日) 23:06 -

引用なし
パスワード
   >私の質問が、わかりにくかった
そうではなく、応用もできないのに初めから実際の状況を説明せず、
例題ばかり内容をコロコロ変えて書いたのが間違いなのです。
最初の[44871]の文章を読み返してみて下さい。そこから何回内容が
変わってますか ?
>生半可の知識しかない
のを自覚していたら、ヒントぐらいの回答では応用できそうにない、
と思わなかったですか ?
ま、何はともあれ今回が最後の回答にしますから、そのつもりで。

Sub Macro1()
  Dim i As Integer, j As Integer
  Dim Sh As Worksheet
  Dim AdAry As Variant
  Dim MyF As String, LkAry(0 To 4) As String
  Const SFol As String = _
  "C:\Documents and Settings\安部 義信\デスクトップ\授業料調査集計\"

  Set Sh = Worksheets("集計")
  AdAry = Array("R7C3", "R7C5", "R8C5", "R7C6", "R8C6")
  For i = 1 To 94
    MyF = Dir(SFol & Format(i, "00") & "*.xls")
    With Sh.Range(Sh.Cells(i + 6, 5), Sh.Cells(i + 6, 9))
     If MyF = "" Then
       .Cells(1).Value = "File_NotFound"
     Else
       For j = 0 To 4
        LkAry(j) = ExecuteExcel4Macro("'" & SFol & _
        "[" & MyF & "]アンケート'!" & AdAry(j))
       Next j
       .Value = LkAry(): Erase LkAry
     End If
    End With
  Next i
  Sh.Activate: Set Sh = Nothing: Erase AdAry
  MsgBox "全てのデータを転記しました", 64
End Sub

【45070】Re:複数の同一形式のブックのセルデータ...
回答  yosinobu E-MAIL  - 06/12/11(月) 23:51 -

引用なし
パスワード
   ▼かみちゃん さんへ

>exl_files を *.xls へ変更したら出来ました。

myF=Dir(SFol & "\" & Format(i,"00")&"*.xls")

のところで、止まってしましまた。

 ここは、ブック名 01*.xls 〜90*.xls を
 読み込むところでないかと おもうのですが、
 ブック名を 01* → 1 に変更した方がよいのでしょうか。?
 その場合、ここの構文も変更するとおもうのですが、

次のようでは、
  myF=Dir(SFol & "\" & Format(i)&"*.xls")
いかがでしょうか?

【45072】Re:複数の同一形式のブックのセルデータ...
発言  かみちゃん  - 06/12/12(火) 1:52 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>exl_files を *.xls へ変更したら出来ました。

まず、お願いなのですが、ご自身の発言と引用の発言を分けていただけないでしょうか?

それで、今回は、どこの記述をどのように変更したのでしょうか?
まさか、SFolの内容ですか?
だったら、明らかに間違いです。

>myF=Dir(SFol & "\" & Format(i,"00")&"*.xls")
>
> のところで、止まってしましまた。

止ってしまったとは、エラーですか?
メッセージは、どうなっているのですか?それくらいはしっかり書けませんか?
ちなみに、そのときの変数SFolの内容はわかっていますか?
まさか"〜*.xls"などではないですよね?

変数 i が 1のときの次のコードで生成される文字列はどうなると思いますか?
SFol & "\" & Format(i,"00")&"*.xls"

たぶん、私の想像どおり、パスの設定に問題があると思います。

処理したいブックと同じフォルダにマクロの書かれたブックを入れて試せば、
こんな問題に悩まなくて済むのに・・・(独り言)

【45153】Re:複数の同一形式のブックのセルデータ...
お礼  yosinobu E-MAIL  - 06/12/13(水) 19:32 -

引用なし
パスワード
   ▼Kein さん:

>>kein さんへ

御礼が遅くなり誠に申し訳ございませんでした。

 自分の頭の中が、整理不十分でしたことを、

 併せてお詫び申し上げます。

 重ねて お詫びと、御礼を申し上げます。

【45154】Re:複数の同一形式のブックのセルデータ...
お礼  yosinobu E-MAIL  - 06/12/13(水) 19:37 -

引用なし
パスワード
   ▼かみちゃん さん:
>かみちゃん さんへ

 私の生半可な知識では、ついて行けないことが、十分分かりました。

  いろいろありがとうございました。

  状況説明が、私の中頭で整理不十分でしたことで、不愉快な思いをされましたことを深くお詫びしますと、同時にいろいろありがとうございました。

 御礼を申し上げます。

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