ファイル一覧作成マクロで拡張子を非表示にする方法

このQ&Aのポイント
  • ファイルの一覧を作成するマクロを作成していますが、拡張子を表示させないようにしたいです。
  • 実際に実行してみたところ、「オブジェクトが必要です」というエラーが出てうまくいきません。
  • どのように修正すれば拡張子を非表示にすることができるでしょうか?助けてください!
回答を見る
  • ベストアンサー

ファイルの一覧を作成する

お世話になります。 ファイルの一覧を作成するマクロを作っていますが、 拡張子を表示させないようにしたいのですが ”オブジェクトが必要です”と エラー出てなかなかうまくいきません。 どなたか助けてください。 Sub MakeFileList() Target = InputBox("ディレクトリ名を入力", "ディレクトリの指定", "C:\Windows") Set FS = CreateObject("Scripting.FileSystemObject") Set Fol = FS.GetFolder(Target) Set Fil = Fol.Files ThisWorkbook.Sheets("Sheet1").UsedRange.Delete '見出しを付ける ThisWorkbook.Sheets(1).Range("B2") = "ファイル名" ThisWorkbook.Sheets(1).Range("C2") = "ファイル種別" ThisWorkbook.Sheets(1).Range("D2") = "最終更新日" ThisWorkbook.Sheets(1).Range("E2") = "説明" ThisWorkbook.Sheets(1).Range("B2:E2").Interior.Color = RGB(0, 0, 0) ThisWorkbook.Sheets(1).Range("B2:E2").Font.Color = RGB(255, 255, 255) ThisWorkbook.Sheets(1).Range("B2:Es2").HorizontalAlignment = xlCenter i = 3 For Each Fx In Fil 'ファイル名 sFile = FS.GetBaseName(sFile.Name) 'ファイル名の書き出し ThisWorkbook.Sheets(1).Cells(i, 2) = sFile 'ファイル種別 sFType = Fx.Type '最終更新日時の書き出し ThisWorkbook.Sheets(1).Cells(i, 3) = sFType '最終更新日 sLMod = Fx.DateLastModified ThisWorkbook.Sheets(1).Cells(i, 4) = sLMod i = i + 1 Next End Sub 'ファイル名 sFile = FS.GetBaseName(sFile.Name)の部分で ”オブジェクトが必要です”とエラーが出ます。

質問者が選んだベストアンサー

  • ベストアンサー
  • eden3616
  • ベストアンサー率65% (267/405)
回答No.3

No2の捕捉です。 ThisWorkbook.Sheets(1).Range("B2:Es2").HorizontalAlignment = xlCenter となっておりますが、「B2:E2」の間違いですよね? 最下のVBAコードは変数の型宣言部を加え、コードを整理しましたのでご参考ください。 以下の3点を変更しております。 (1)無駄な変数への格納を廃止して直接セルへ書き出し   sFile 、sFType 、sLMod の変数を使っていませんので除外しております。 (2)シート名の指定方法を統一   ご提示のコードで前半はSheets("Sheet1")、後半はSheets(1)とされておりますが   前者はシート名がSheet1、後者は左から1番目のシートとなり、意味が異なります。   場合においては誤作動の原因となりますので、前者の方法で統一しております。   (※Sheetsですとグラフシートも対象となりますので、Worksheetsを使用しています) (3)フォルダの参照ダイアログを実装   フォルダパス入力による指定のほか、参照ボタンが利用できるようにShell.Applicationを使用しています。 ■VBAコード Sub MakeFileList()   Dim FS As Object, Shell As Object   Dim fol As Object, fil As Variant, target As String   Dim i As Long, fx As Variant   Set Shell = CreateObject("Shell.Application")   target = Shell.BrowseForFolder(&O0, "ディレクトリの指定", &H1 + &H10, "C:\Windows\").Items.Item.Path   Set FS = CreateObject("Scripting.FileSystemObject")   Set fol = FS.GetFolder(target)   Set fil = fol.Files      '作画停止   Application.ScreenUpdating = False   '見出しを付ける   With ThisWorkbook.Worksheets("Sheet1")     .UsedRange.Delete     With .Evaluate("B2:E2")       .Value = [{"ファイル名","ファイル種類","最終更新日","説明"}]       .Interior.Color = RGB(0, 0, 0)       .Font.Color = RGB(255, 255, 255)       .HorizontalAlignment = xlCenter     End With     i = 3     For Each fx In fil       'ファイル名の書き出し       .Cells(i, 2) = FS.GetBaseName(fx.Name)       'ファイル種別の書き出し       .Cells(i, 3) = fx.Type       '最終更新日の書き出し       .Cells(i, 4) = fx.DateLastModified       i = i + 1     Next fx   End With   '作画開始   Application.ScreenUpdating = True End Sub

coolboy777
質問者

お礼

ありがとうございます。 拡張子も取れて思い通りの結果ができました。 また機会がありましたらよろしくお願いします。

その他の回答 (2)

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.2

型宣言をした方がよいかと思います。 とりあえず動作するようにするには以下の点を変更してみてください。 sFile = FS.GetBaseName(sFile.Name)        ↓ sFile = FS.GetBaseName(Fx.Name)

  • dogs_cats
  • ベストアンサー率38% (278/717)
回答No.1

修正案の一例です。 下記コードはサイトにあったVBA2003仕様のコードの丸写しのようですね。 エラー部分の変数sFileは無くても動きますので、不使用としました。 Fx.name,Fx.Typeでデータ取得は可能でした。私も独学なので、エラー理由までは詳しく書けませんが。 変数 fol,filも無くても可能だと感じました。 For Each fx In filをFor Each fx In Fs.GetFolder(Target).filesにする事で変数は2つ不要になります。 質問者さんの問題ではなく、サイトにこのコードを記載した人の問題なのですが、変数を宣言しなくても事項する事は可能なのですが、他人が見てわかるように、コードの冒頭に変数の型式も一緒に宣言するのがプログラムを作成される方々のルールになっていますので変数の宣言の無いコードをサイトから転用する事は控えた方が良いと思います。 (私は独学のプrグラムを作成するという程の者ではありませんが) 気になった点 1)データ入力シートはSheets(1)に統一しましたが、これはシート名sheet1を示している訳ではありません。一番左にあるシートからインデック番号が割り振られますのでsheet2が一番左にあればSheets(1)はsheet2にデータを記入しにいきます。 出来ればsheet1といった、シート名を指定した方が間違う確率は減るかと思います。 修正されるならシート名も変数に格納する事も可能です。 dim ws as worksheet set ws= thisworkbook.sheets("sheet1") ThisWorkbook.Sheets(1).UsedRange.Deleteは下記の様に短いコードで可能となります。 ws.UsedRange.Delete 2)inputboxのデフォルトのフォルダがC:\windowsになっていますが、本当にこれ良いのでしょうか? 3)シートにファイルデータを記入しますが、フォルダパスを記入していませんが、それで良いのでしょうか?どこのフォルダのファイル一覧であるか記入が必要ではないかと感じました。 Sub MakeFileList() Dim i As Long Dim Target As String Dim Fs, fol, fil As Object Dim fx As Variant Dim sLMod As Date Target = InputBox("ディレクトリ名を入力", "ディレクトリの指定", "C:\Windows") Set Fs = CreateObject("Scripting.FileSystemObject") Set fol = Fs.GetFolder(Target) Set fil = fol.Files ThisWorkbook.Sheets(1).UsedRange.Delete '見出しを付ける ThisWorkbook.Sheets(1).Range("B2") = "ファイル名" ThisWorkbook.Sheets(1).Range("C2") = "ファイル種別" ThisWorkbook.Sheets(1).Range("D2") = "最終更新日" ThisWorkbook.Sheets(1).Range("E2") = "説明" ThisWorkbook.Sheets(1).Range("B2:E2").Interior.Color = RGB(0, 0, 0) ThisWorkbook.Sheets(1).Range("B2:E2").Font.Color = RGB(255, 255, 255) ThisWorkbook.Sheets(1).Range("B2:Es2").HorizontalAlignment = xlCenter i = 3 For Each fx In fil 'ファイル名 'sFile = Fs.GetBaseName(sFile.Name) 'ファイル名の書き出し ThisWorkbook.Sheets(1).Cells(i, 2) = fx.Name 'ファイル種別 sFType = fx.Type '最終更新日時の書き出し ThisWorkbook.Sheets(1).Cells(i, 3) = fx.Type '最終更新日 sLMod = fx.DateLastModified ThisWorkbook.Sheets(1).Cells(i, 4) = sLMod i = i + 1 Next Set Fs = Nothing Set fol = Nothing Set fil = Nothing End Sub

coolboy777
質問者

お礼

ありがとうございます。 また機会がありましたらよろしくお願いします。

coolboy777
質問者

補足

ありがとうございます。 一覧の作成はできますが ファイル名にある拡張子を表示しない方法はありますでしょうか。

関連するQ&A

  • エクセルでサイズ名の一覧を出したい

    現在、下記のコードでフォルダ内のデータベースを作成しています。 これに、『ファイルのサイズ』を加えたいのですが、何処に何を入れれば良いかがよくわかりません。 どなたか回答出来る方がいらっしゃれば、宜しくお願いします。 《現在使用しているコード》 Sub MakeFileList() Target = InputBox("ディレクトリ名を入力", "ディレクトリの指定", "C:\Windows") Set FS = CreateObject("Scripting.FileSystemObject") Set Fol = FS.GetFolder(Target) Set Fil = Fol.Files ThisWorkbook.Sheets("一覧").UsedRange.Delete '見出しを付ける ThisWorkbook.Sheets(1).Range("B2") = "ファイル名" ThisWorkbook.Sheets(1).Range("C2") = "ファイル種別" ThisWorkbook.Sheets(1).Range("D2") = "最終更新日" ThisWorkbook.Sheets(1).Range("E2") = "説明" ThisWorkbook.Sheets(1).Range("B2:E2").Interior.Color = RGB(0, 0, 0) ThisWorkbook.Sheets(1).Range("B2:E2").Font.Color = RGB(255, 255, 255) ThisWorkbook.Sheets(1).Range("B2:Es2").HorizontalAlignment = xlCenter i = 3 For Each Fx In Fil 'ファイル名 sFile = Fx.Name 'ファイル名の書き出し ThisWorkbook.Sheets(1).Cells(i, 2) = sFile 'ファイル種別 sFType = Fx.Type '最終更新日時の書き出し ThisWorkbook.Sheets(1).Cells(i, 3) = sFType '最終更新日 sLMod = Fx.DateLastModified ThisWorkbook.Sheets(1).Cells(i, 4) = sLMod i = i + 1 Next End Sub

  • フォルダ名をだすには

    以下のコードでファイル名一覧がだせる。しかしフォルダ名がでない フォルダ名をだすには、どうすればいいか。  sub macro1() Target = InputBox("ディレクトリ名を入力", "ディレクトリの指定", "C:\Windows") Set FS = CreateObject("Scripting.FileSystemObject") Set Fol = FS.GetFolder(Target) Set Fil = Fol.Files ThisWorkbook.Sheets("Sheet1").UsedRange.Delete '見出しを付ける ThisWorkbook.Sheets(1).Range("B2") = "ファイル名" ThisWorkbook.Sheets(1).Range("C2") = "ファイル種別" ThisWorkbook.Sheets(1).Range("D2") = "最終更新日" ThisWorkbook.Sheets(1).Range("E2") = "説明" ThisWorkbook.Sheets(1).Range("B2:E2").Interior.Color = RGB(0, 0, 0) ThisWorkbook.Sheets(1).Range("B2:E2").Font.Color = RGB(255, 255, 255) ThisWorkbook.Sheets(1).Range("B2:Es2").HorizontalAlignment = xlCenter i = 3 For Each Fx In Fil 'ファイル名 sFile = Fx.Name 'ファイル名の書き出し ThisWorkbook.Sheets(1).Cells(i, 2) = sFile 'ファイル種別 sFType = Fx.Type '最終更新日時の書き出し ThisWorkbook.Sheets(1).Cells(i, 3) = sFType '最終更新日 sLMod = Fx.DateLastModified ThisWorkbook.Sheets(1).Cells(i, 4) = sLMod i = i + 1 Next End Sub

  • Excelマクロ 最後に画像を貼付けたい…

    Excelにファイル名、情報、画像を表示するマクロを作成したいと いろいろ探し、以下の参考マクロを探しました。 Sub MakeFileList() Target = InputBox("ディレクトリ名を入力", "ディレクトリの指定", "C:\Windows") Set FS = CreateObject("Scripting.FileSystemObject") Set Fol = FS.GetFolder(Target) Set Fil = Fol.Files ThisWorkbook.Sheets("Sheet1").UsedRange.Delete '見出しを付ける ThisWorkbook.Sheets(1).Range("B2") = "ファイル名" ThisWorkbook.Sheets(1).Range("C2") = "ファイル種別" ThisWorkbook.Sheets(1).Range("D2") = "最終更新日" ThisWorkbook.Sheets(1).Range("E2") = "説明" ThisWorkbook.Sheets(1).Range("B2:E2").Interior.Color = RGB(0, 0, 0) ThisWorkbook.Sheets(1).Range("B2:E2").Font.Color = RGB(255, 255, 255) ThisWorkbook.Sheets(1).Range("B2:Es2").HorizontalAlignment = xlCenter i = 3 For Each Fx In Fil 'ファイル名 sFile = Fx.Name 'ファイル名の書き出し ThisWorkbook.Sheets(1).Cells(i, 2) = sFile 'ファイル種別 sFType = Fx.Type '最終更新日時の書き出し ThisWorkbook.Sheets(1).Cells(i, 3) = sFType '最終更新日 sLMod = Fx.DateLastModified ThisWorkbook.Sheets(1).Cells(i, 4) = sLMod i = i + 1 Next End Sub   あと、最後の"F列"にファイル名の画像を貼付けたいのですが どのようにしたら良いのでしょうか? 教えてください。

  • 画像のプロパティー書き出し

    Excelに画像(例:001.bmp)のプロパティー情報の書き出し方を 教えてください。 "全般"タブの書き出し方はだいたい調べて解りました。 *下記コード参考 "概要"タブの書き出し方がわかりません。 下記のように入力するにはどうしたら良いのでしょうか? 教えてください。 *参考コード* ThisWorkbook.Sheets(1).Range("A1") = "パス" ThisWorkbook.Sheets(1).Range("B1") = "ファイル名" ThisWorkbook.Sheets(1).Range("C1") = "ファイル種別" ThisWorkbook.Sheets(1).Range("D1") = "最終更新日" ThisWorkbook.Sheets(1).Range("E1") = "フルパス" ~省略~ ThisWorkbook.Sheets(1).Cells(i, 1) = Target 'ファイル名 sFile = Fx.Name 'ファイル名の書き出し ThisWorkbook.Sheets(1).Cells(i, 2) = sFile 'ファイル種別 sFType = Fx.Type '最終更新日時の書き出し ThisWorkbook.Sheets(1).Cells(i, 3) = sFType '最終更新日 sLMod = Fx.DateLastModified ThisWorkbook.Sheets(1).Cells(i, 4) = sLMod 'フォルダフルパス SFull = Target & "\" & sFile ThisWorkbook.Sheets(1).Cells(i, 5) = SFull

  • Excel VBA 別ブックへの登録

    お世話になります。 今お仕事でExcelのVBAで同じフォルダ内の別ブックにデータを書き込みたくて いろいろやって見たのですが、上手くできません。 お力を頂ければと・・・・ <詳細> やりたいこと サーバー内に各個人の見積フォルダがあり、そのフォルダの中に見積作成と見積データの各ファイルが2つあります。 見積作成で作成したデータが登録ボタン(VBA)により見積データに登録されるようにしたい。 今までは同じブック内の別シートへデータを登録していました。 今回は同じフォルダ内の別ファイルへのデータ登録です。 ここまではできました・・・・ Sub 見積データ取得() Dim wSheet As ThisWorkbook Dim idx As String 'データ保存用シートを取得 Workbooks.Open Filename:=ThisWorkbook.Path & "見積データ.xls" Set wSheet = ThisWorkbook.Sheets(見積作成.xls) '空白行を取得 idx = CStr(wSheet.UsedRange.Row(wSheet.UsedRange.Rows.Count).Row + 1) '明細を取得 Dim wRange As Range Set wRange = ThisWorkbook.Sheets("見積作成").Range("B7:Q175") Dim i As Integer For i = 1 To wRange.Rows.Count If wRange.Cells(i, 6).Value <> "" Then '作成日 wSheet.Range("A" & idx).Value = ThisWorkbook.Sheets("見積作成").Range("H2").Value '見積NO wSheet.Range("B" & idx).Value = ThisWorkbook.Sheets("見積作成").Range("H5").Value '見積名 wSheet.Range("C" & idx).Value = ThisWorkbook.Sheets("見積作成").Range("C1").Value '提出先NO wSheet.Range("D" & idx).Value = ThisWorkbook.Sheets("見積作成").Range("B3").Value '提出先 wSheet.Range("E" & idx).Value = ThisWorkbook.Sheets("見積作成").Range("C3").Value '提出先フリガナ wSheet.Range("F" & idx).Value = ThisWorkbook.Sheets("見積作成").Range("Y5").Value '担当者 wSheet.Range("G" & idx).Value = ThisWorkbook.Sheets("見積作成").Range("H1").Value '備考欄 wSheet.Range("S" & idx).Value = ThisWorkbook.Sheets("見積作成").Range("C31").Value 'メーカー名 wSheet.Range("H" & idx).Value = wRange.Cells(i, 10).Value '商品NO wSheet.Range("I" & idx).Value = wRange.Cells(i, 1).Value '商品名 wSheet.Range("J" & idx).Value = wRange.Cells(i, 2).Value '入数 wSheet.Range("K" & idx).Value = wRange.Cells(i, 9).Value '数量 wSheet.Range("L" & idx).Value = wRange.Cells(i, 3).Value 'A価 wSheet.Range("M" & idx).Value = wRange.Cells(i, 5).Value '金額 wSheet.Range("N" & idx).Value = wRange.Cells(i, 6).Value 'C価 wSheet.Range("O" & idx).Value = wRange.Cells(i, 14).Value 'D価 wSheet.Range("P" & idx).Value = wRange.Cells(i, 16).Value '数量 'wSheet.Range("K" & idx).Value idx = CStr(CInt(idx) + 1) End If Next でも上手くいきません・・・ よろしくお願いいたしますm(_ _)m

  • エクセルのマクロでファイル名変更

    Dim フォルダ パス = ActiveWorkbook.Path 本体 = ActiveWorkbook.Name 変更1 = Sheets(1).Range("B2") フォルダ = パス & "\" & 変更1 ' & "\" 拡張子 = Sheets(1).Range("B3") 語句1 = Sheets(1).Range("B5") 語句2 = Sheets(1).Range("C5") aa = 1 '7777777777 指定フォルダの書き出し 7777777777 Dim myFileName As String Sheets(1).Select Range("B7:B1000").Clear Range("D7:E1000").Clear 'Rows("2:10000").ClearContents '隠しファイルとシステムファイルも表示 myFileName = Dir(フォルダ & "\" & "*." & 拡張子, vbHidden + vbSystem) Sheets(1).Select While myFileName <> vbNullString Cells(Rows.Count, 2).End(xlUp).Offset(1).Value _ = myFileName myFileName = Dir() Wend 下端 = Range("B" & Rows.Count).End(xlUp).Row rrname = 1 For a = 7 To 下端 If rrname < 10 Then Cells(a, 4) = "第00" & rrname & "話" & Cells(a, 3) & "." & 拡張子 ElseIf rrname >= 10 Then Cells(a, 4) = "第0" & rrname & "話" & Cells(a, 3) & "." & 拡張子 ElseIf rrname >= 100 Then Cells(a, 4) = "第" & rrname & "話" & Cells(a, 3) & "." & 拡張子 End If rrname = rrname + 1 Next a For b = 7 To 下端 旧ファイル名 = Cells(b, 2).Value 新ファイル名 = Cells(b, 4).Value Name フォルダ & "\" & 旧ファイル名 As フォルダ & "\" & 新ファイル名 Next b でファイル名変更マクロを作成したのですが、『ファイル名または番号が不正です』とエラーが返ってきますが、何が悪いのでしょうか?

  • excel  vba  シートの取り扱い

    Sub   aaa() Worksheets.Add ActiveSheet.Name = "Namefile" ((質問)ここへ適当なコードを追加することによって 以下のThisWorkbook.Sheets(1)というのを、上で追加した Namefileシートを処理することとしたい。 つまり  Namefileシート=ThisWorkbook.Sheets(1) どうすればいいか。よろしくお願いします。) ThisWorkbook.Sheets(1).UsedRange ThisWorkbook.Sheets(1).UsedRange.Delete ThisWorkbook.Sheets(1).Range("B2") = "ファイル名" ThisWorkbook.Sheets(1).Range("C2") = "最終更新日" End Sub

  • オブジェクトが定義されていません

    以下のコードを実行すると「オブジェクトが定義されていません」とエラー表示されます。 オフィス2003、エクセルVBAです。 Withの使い方がまちがっているのでしょうか? 分かる方教えてください。 お手数をおかけしますがよろしくお願いします。 intGyou = Int(intDeley(i) * 2) With ThisWorkbook.Sheets(\"default\") If intDeley(i) = 0 Then .Range(\"Y7:Y1446\").Copy _ .Range (\"Z7:Z1446\") Application.CutCopyMode = False Else .Range(.Cells(intGyou + 7, 25), .Cells(1446, 25)).Copy _ .Range (\"Z7\") .Range(.Cells(7, 25), .Cells(intGyou + 6, 25)).Copy _ ThisWorkbook.Sheets(\"default\").Range(.Cells(1447 - intGyou, 26), .Cells(1446, 26)) Application.CutCopyMode = False End If End With

  • フォルダ内全ファイルからデータを取得する方法

    お力をお貸しください。 下記のようなコードを書きました。*ドライブにあるフォルダ内全ファイルからデータを取得して、一つの表にまとめようとしています。 が、Workbooks.Open sFileで、「ファイルが存在しません」というエラーがでます。 変数を確認しましたが、きちっと呼び込んでいるのに、ファイルが存在しないとなるのが分かりません。 ここで、データの最終行を取得するのに、ややっこしいコードを書いているのは、データが虫食い状態で、全部のセルが埋まっているのはC列しかないため、このようなことになっています。 よろしくお願いします。 Sub Macro1() Dim FName As String, FPath As String, cnt As Long, r As Long, m As Long, MyMonth As String Dim LastRows As Long Set Wsh = CreateObject("Wscript.Shell") Set Wsh = Nothing m = Range("A1").Value - 1 MyMonth = m & "月" FPath = "*:\" & MyMonth & "\" ChDir FPath FName = FPath & "*.xls" sFile = Dir(FPath  & "*") ' 画面更新オフ Application.ScreenUpdating = False With ThisWorkbook.Sheets(1) LastRows = Cells(Rows.Count, 1).End(xlUp).Row + 1 Do While sFile <> "" If sFile <> ThisWorkbook.Name Then Workbooks.Open sFile cnt = Cells(Rows.Count, 3).End(xlUp).Row + 1 ActiveSheet.Range("A1:" & "M" & cnt).Copy Destination:=ThisWorkbook.Sheets(1).Cells(LastRows, 1) ActiveWorkbook.Close SaveChanges:=False sFile = Dir() End If Loop End With '画面更新オン Application.ScreenUpdating = True ''名前をつけて保存 ' ' Application.DisplayAlerts = False ' Filedate = Format(Date, "yyyymm") ' ActiveWorkbook.SaveAs Filename:=FPath & "\" & Filedate & ".xls" ' Application.DisplayAlerts = True ' ''画面更新オン 'Application.ScreenUpdating = True ' ' End Sub

  • ワイルドカードを用いたセルの値加算&貼り付け

    こんにちは! 下記動きを実現したく、他の質問で方々からご教示いただいた内容をヒントに 下記マクロを組んでみたのですが、実現したい動きになりませんでした。。 知識のある方がいらっしゃれば、間違いを指摘いただけると嬉しいです! <実現したい動き> このファイルの貼り付け先シートのRange(Cells(6, 5), Cells(32, 30))に、 下記条件を満たす全ての値を加算のうえ、ペーストする。 「指定フォルダ」に格納されている、ファイル名に「あいう」を含むファイル(※)の、「指定シート」のRange(Cells(6, 5), Cells(32, 30))に存在する値 ※「あいう」の前後は不一致OK。複数存在し、ファイル数は可変。 <下記マクロを動かした結果> 該当ファイルは複数格納されているが、そのうちの1ファイルのみの値がコピペされている。 Sub マクロ() ' Dim folder As String Dim dws As Worksheet Dim sfile1 As String Dim swb1 As Workbook Dim adr As String Dim c As Integer folder = "C:\Users\指定フォルダ\" Set dws = ThisWorkbook.Worksheets("貼り付け先シート#1") Range(Cells(6, 5), Cells(32, 30))=0 sfile1 = Dir(folder & "*あいう*.xlsm") If sfile1 = "" Then Exit Sub Set swb1 = Workbooks.Open(folder & sfile1) adr = Range(Cells(6, 5), Cells(32, 30)).Address(0, 0, 1) swb1.Sheets("あいう").Range(adr).Copy dws.Range(adr).PasteSpecial Paste:=xlPasteValues, Operation:=xlAdd Application.CutCopyMode = False swb1.Close False End Sub

専門家に質問してみよう