質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

729閲覧

400エラーが出てしまいます

Gamagaeru

総合スコア11

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2021/04/14 05:17

こちらのソースで400エラーが出てしまいます。
誰かお助けください。原因が分かりません。

Sub 単体テスト仕様書マクロ() Dim wFile As String Dim wFilePath As String Dim i As Long 'Excelファイルが存在していたらファイル名を返す wFile = Dir(ActiveWorkbook.Path & "*.xlsx") '先頭行を指定 i = 3 Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets(1) 'カレントディレクトリに存在するExcelファイルを全て読み込む Do While wFile <> "" '開くExcelファイルのフルパスを取得 wFilePath = ActiveWorkbook.Path & "\" & wFile '機能(プログラム)名・テスト件数・完了数・不具合件数を取得し配列に格納する(区切り文字:|) strData = Split(File_Load(wFilePath), "|") '機能(プログラム)名 ws.Cells(i, 1) = strData(0) 'テスト件数 ws.Cells(i, 3) = strData(1) '完了数 ws.Cells(i, 5) = strData(2) '不具合件数 ws.Cells(i, 7) = strData(3) '次のExcelファイルを取得 wFile = Dir() '行数をカウント i = i + 1 Loop End Sub Function File_Load(ByVal wFilePath As String) As String Dim CurBookName As Variant Dim ColNo As Long Dim RowNo As Long Dim strValue As String Dim FoundCell As Range Dim i As Long 'ファイルを開く Workbooks.Open wFilePath '開いたExcelのファイル名を取得 CurBookName = Application.ActiveWorkbook.Name '検索する項目を配列に格納 wItem = Array("機能(プログラム)名", "テスト件数", "完了数", "不具合件数") '検索する For i = LBound(wItem) To UBound(wItem) Set FoundCell = Cells.Find(What:=wItem(i)) If FoundCell Is Nothing Then '検索出来なかった場合 If i = 0 Then strValue = "" Else strValue = strValue & "|" End If Else '検索したセルに移動 FoundCell.Select ColNo = ActiveCell.Column '列番号を取得 RowNo = ActiveCell.Row '行番号を取得 '住所を取得する If i = 0 Then '最初の項目 strValue = Cells(RowNo, ColNo + 1).Value Else '2番目以降の項目は|で区切る strValue = strValue & "|" & Cells(RowNo, ColNo + 1).Value End If End If Next i '結果を返す File_Load = strValue '開いたExcelファイルを閉じる Application.DisplayAlerts = False '確認メッセージの非表示 Workbooks(CurBookName).Close Application.DisplayAlerts = True '確認メッセージの表示 End Function

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sazi

2021/04/14 06:30 編集

回答する人にとって、質問の内容で再現できるのなら回答できますが、質問の内容では対象となるファイルのシートなどの状況は再現できません。 少なくとも、具体的なエラーの内容(エラーコード、メッセージ)と、エラーの発生する箇所がコードのどの部分なのか位は情報提供しないと。
guest

回答1

0

ベストアンサー

フォルダにあるExcelファイルを全部対象にして開いているようですが・・・。
・ファイルの保護がされていたり、
・ファイルを開く権限が設定してあったり、
・シートに保護がかかっている
Excelファイルを開こうとしていませんか?

試していないのでわかりませんが、自分自身を開こうとしても同様の現象になるかもしれません。

あと、最低でも、ソースのどこでエラーが出ているとか、ご自分でデバッグした結果を書いてください。

投稿2021/04/14 05:29

nfox

総合スコア231

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Gamagaeru

2021/04/14 05:39

ファルダにあるExcelファイルすべてを対象にして、 そのすべてのファイルから特定のセルに入っている値を取得してきたいです。 どうしたらよいでしょうか。 よろしくお願いします
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問