Excel VBA質問箱 IV

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

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


2146 / 13645 ツリー ←次へ | 前へ→

【69690】2003のマクロが2010で動きません SOU 11/8/21(日) 21:10 質問[未読]
【69691】Re:2003のマクロが2010で動きません neptune 11/8/21(日) 21:54 発言[未読]
【69692】Re:2003のマクロが2010で動きません SOU 11/8/21(日) 22:08 お礼[未読]

【69690】2003のマクロが2010で動きません
質問  SOU  - 11/8/21(日) 21:10 -

引用なし
パスワード
   初めまして。
以下のマクロが2010で動かないのですが、原因がわかりません。
どなたか教えてください。よろしくお願いします!

Sub 貼り付け()
'
' データ貼り付け Macro
' アンケートから集計表にデータを貼り付けます。
'

'
On Error GoTo en
Application.ScreenUpdating = False
ph = ThisWorkbook.Path
Set fsFile = Application.FileSearch
With fsFile
  .LookIn = ph
  .FileType = msoFileTypeExcelWorkbooks
  If .Execute > 0 Then
  y = MsgBox(.FoundFiles.Count - 1 & "個のファイルのデータを集計表に貼り付けます", 4 + 48)
  If y <> 6 Then End
  For i = 1 To .FoundFiles.Count
  fn = .FoundFiles(i)
  If fn = ThisWorkbook.FullName Then GoTo ne
  Workbooks.Open fn
  fwc = Sheets.Count
  fn = ActiveWorkbook.Name
  ThisWorkbook.Activate
  Sheets("投票結果").Select
  Application.ScreenUpdating = False
  '集計の最終行
  rc = Range("A65536").End(xlUp).Row + 1
  '集計の最終列
  ec = Range("IV1").End(xlToLeft).Column
  '項目名がおなじ場合貼り付け
  For wc = 1 To fwc
    For r = 1 To ec
      For c = 1 To ec
      With ThisWorkbook.Sheets("投票結果")
      If .Cells(1, c) = Workbooks(fn).Sheets(wc).Cells(r, 1) Then
        .Cells(rc, c) = Workbooks(fn).Sheets(wc).Cells(r, 2)
        Else
      End If
      End With
      Next c
    Next r
  '集計の最終行
  rc = Range("A65536").End(xlUp).Row + 1
    Next wc
Windows(fn).Close False
ne:  Next i
  End If
End With
Application.ScreenUpdating = True
Exit Sub
en: MsgBox "予期せぬエラーが発生しました。"
Application.ScreenUpdating = True
End Sub

【69691】Re:2003のマクロが2010で動きません
発言  neptune  - 11/8/21(日) 21:54 -

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

>Set fsFile = Application.FileSearch
多分2010ではFileSearchはサポートされてないはず。
fsoなり、dir関数なりで代用しましょう。

#
>以下のマクロが2010で動かないのですが、原因がわかりません。
等という訳の分からん質問の仕方は止めましょう。
エラー処理を一時無効にするとか、

MsgBox "予期せぬエラーが発生しました。" & vbCrLf _
  & "Err.Number : " & Err.Number & vbCrLf _
  & "説明:" & Err.Description
とかすれば情報は簡単にわかるんですから。

【69692】Re:2003のマクロが2010で動きません
お礼  SOU  - 11/8/21(日) 22:08 -

引用なし
パスワード
   すみません。ありがとうございました。

▼SOU さん:
>初めまして。
>以下のマクロが2010で動かないのですが、原因がわかりません。
>どなたか教えてください。よろしくお願いします!
>
>Sub 貼り付け()
>'
>' データ貼り付け Macro
>' アンケートから集計表にデータを貼り付けます。
>'
>
>'
>On Error GoTo en
>Application.ScreenUpdating = False
>ph = ThisWorkbook.Path
>Set fsFile = Application.FileSearch
>With fsFile
>  .LookIn = ph
>  .FileType = msoFileTypeExcelWorkbooks
>  If .Execute > 0 Then
>  y = MsgBox(.FoundFiles.Count - 1 & "個のファイルのデータを集計表に貼り付けます", 4 + 48)
>  If y <> 6 Then End
>  For i = 1 To .FoundFiles.Count
>  fn = .FoundFiles(i)
>  If fn = ThisWorkbook.FullName Then GoTo ne
>  Workbooks.Open fn
>  fwc = Sheets.Count
>  fn = ActiveWorkbook.Name
>  ThisWorkbook.Activate
>  Sheets("投票結果").Select
>  Application.ScreenUpdating = False
>  '集計の最終行
>  rc = Range("A65536").End(xlUp).Row + 1
>  '集計の最終列
>  ec = Range("IV1").End(xlToLeft).Column
>  '項目名がおなじ場合貼り付け
>  For wc = 1 To fwc
>    For r = 1 To ec
>      For c = 1 To ec
>      With ThisWorkbook.Sheets("投票結果")
>      If .Cells(1, c) = Workbooks(fn).Sheets(wc).Cells(r, 1) Then
>        .Cells(rc, c) = Workbooks(fn).Sheets(wc).Cells(r, 2)
>        Else
>      End If
>      End With
>      Next c
>    Next r
>  '集計の最終行
>  rc = Range("A65536").End(xlUp).Row + 1
>    Next wc
>Windows(fn).Close False
>ne:  Next i
>  End If
>End With
>Application.ScreenUpdating = True
>Exit Sub
>en: MsgBox "予期せぬエラーが発生しました。"
>Application.ScreenUpdating = True
>End Sub

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