• 締切済み

Excelのブック間の串刺し計算について

Excelのブック間の串刺し計算について VBA超初心者です。同じフォルダ内にファイルがいくつかあり、同じ形式で、sheet1のB4のセルに計があったとして、それをブック間で串刺し集計したいのですが、うまくいきません。どこが悪いのかもわからず、困り果ててます。ご指導お願いします。 Sub BookShuukei() Dim FileName As String Dim Total As Integer Dim OpenedBook As Workbook Dim IsBookOpen As Boolean FileName = Dir("*.xls") Application.ScreenUpdating = False Do While FileName <> "" If FileName <> ThisWorkbook.Name Then IsBookOpen = False For Each OpenedBook In Workbooks If OpenedBook.Name = FileName Then IsBookOpen = True Exit For End If Next If IsBookOpen = False Then Workbooks.Open (FileName) End If Total = Total + Workbooks(FileName).Sheets(1).Range("B4").Value If IsBookOpen = False Then Workbooks(FileName).Close End If End If FileName = Dir() Loop Application.ScreenUpdating = True MsgBox (Total) End Sub

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

>うまくいきません どのように上手く行かないのですか? 何かエラーが出るのですか? それともまるで答えを拾ってこないといった事ですか? 折角実際に動かしているマクロまでご相談に書いたのに,肝心の具体的な症状のご説明が無いのは,いかにも不足です。 またエラーが起きてデバッグできればまだしも「エラー無く動くのに意図した結果が現れなくて"上手く動かない"マクロ」では,「デバッグ」をご自分の手で行って,マクロの一行一行の動作をきちんと追いかけてみる事が絶対に必須です。 そもそもその状況で,screenupdatingを抑制してそういう所だけ上手くやろうなんて100日早いと言うモノですね。(冗談です) デバッグとは。 VBE画面を出して マクロのコードを表示して 表示メニューからローカルウィンドウを出しておいて ツールバーの所でデバッグツールバーを出して ステップ実行のボタンを連打して,若しくはF8キーを連打して マクロの進行を一行ずつ追いかけながら,どこで「意図と外れた動作に流れているのか」見つけ出す事です すると例えば,そもそも「最初のDir(*.xls)の所から一つも目的のブックを拾えていない」とか,「ブックはちゃんと開いているのにTotalに数字が乗って来ない」とか,どこがおかしいのかあなたの目でも必ず判ります(何しろあなたがご自分で書いたマクロなのですから)。 具体的なおかしな箇所を見つけ出せたら半分解決も同然ですが,そこでなお対処が不明の時は,その時こそ具体的な症状を挙げてまた皆さんのアドバイスを求めてみたらどうでしょう。

関連するQ&A