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

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

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

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

Q&A

解決済

1回答

1562閲覧

VBA エラーについて

退会済みユーザー

退会済みユーザー

総合スコア0

VBA

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

0グッド

0クリップ

投稿2021/10/19 01:20

下記内容で
「アプリケーション定義またはオブジェクト定義エラーです」
となります。
参考書通りに入力しているはずなのですが、何度入力しなおしてもエラーが
でてしまいます。

どなたか、どの部分でエラーが出ているのか教えていただけないでしょうか。
また、どのような確認方法があるかも合わせてご教授いただけると幸いです。

お手数おかけしますがよろしくお願いいたします。

VBA

1Sub データ転機() 2 Dim mypath As String 3 Dim myfile As String 4 Dim tatekaebook As Workbook 5 Dim tbshukei As ListObject 6 Dim mydepartment As String 7 Dim myname As String 8 Dim tbtatekae As ListObject 9 Dim mylistrow As ListRow 10 Dim i As Long 11 12 13 Set tbshukei = ThisWorkbook.Sheets("データ").ListObjects("集計表") '転機先のテーブル集計 14 mypath = ThisWorkbook.Path & "\経費精算ファイル\" 15 myfile = Dir(mypath) 16 17 18 'Do While myfile <> "" 19 Set tatekaebook = Workbooks.Open(Filename:=mypath & myfile) 'コピー元ファイルを全て開く 20 myname = tatekaebook.Sheets("経費精算").Range("B5").Value '氏名を代入 21 mydepartment = tatekaebook.Sheets("経費精算").Range("B4").Value '部署名を代入 22 Set tbtatekae = tatekaebook.Sheets("経費精算").ListObjects("個人立替") 23 For i = 1 To tbtatekae.ListRows.Count 'コピー元から一行の値をコピー先へ転機する 24 Set mylistrow = tbshukei.ListRows.Add '一行追加 25 With mylistrow 26 .Range(1).Value = mydepartment 27 .Range(2).Value = myname 28 .Range(3).Value = tbtatekae.ListRows(i).Range(1).Value 29 .Range(4).Value = tbtatekae.ListRows(i).Range(2).Value 30 .Range(5).Value = tbtatekae.ListRows(i).Range(3).Value 31 End With 32 Next 33 34 tatekaebook.Close 35 myfile = Dir() 36 'Loop 37 38End Sub 39

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

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

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

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

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

jinoji

2021/10/19 02:24

F8キーを押すことで1行ずつ実行できますので、どの行でエラーになってしまうのかを探ってみてください。 あとは、この処理で出てくる具体名(「データ」シート、「集計表」テーブル、「経費精算」シート、「個人立替」テーブルなど)がちゃんと存在するかどうかを確かめるとか。
退会済みユーザー

退会済みユーザー

2021/10/19 07:44

jinoji様 ご返答ありがとうございます。 VBAのファイルが所定のフォルダで作成していないためエラーが出ていました。 ありがとうございます。
guest

回答1

0

ベストアンサー

ステップインしながらデバックすればどこでエラーが出ているかは分かると思います。
「アプリケーション定義またはオブジェクト定義エラーです」
このエラーはその名前のブックやシート、テーブルがないなどの場合が多いと思います。
フォルダ名や作成したテーブルの名前と一致しているか確認されると良いと思います。
私はこちらのコードで動きました。

投稿2021/10/19 06:37

s.kono

総合スコア37

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問