こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

投稿日時 - 2010-03-29 23:29:20

QNo.5788929

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

>うまくいきません

どのように上手く行かないのですか? 何かエラーが出るのですか? それともまるで答えを拾ってこないといった事ですか?
折角実際に動かしているマクロまでご相談に書いたのに,肝心の具体的な症状のご説明が無いのは,いかにも不足です。

またエラーが起きてデバッグできればまだしも「エラー無く動くのに意図した結果が現れなくて"上手く動かない"マクロ」では,「デバッグ」をご自分の手で行って,マクロの一行一行の動作をきちんと追いかけてみる事が絶対に必須です。
そもそもその状況で,screenupdatingを抑制してそういう所だけ上手くやろうなんて100日早いと言うモノですね。(冗談です)


デバッグとは。
VBE画面を出して
マクロのコードを表示して
表示メニューからローカルウィンドウを出しておいて
ツールバーの所でデバッグツールバーを出して
ステップ実行のボタンを連打して,若しくはF8キーを連打して
マクロの進行を一行ずつ追いかけながら,どこで「意図と外れた動作に流れているのか」見つけ出す事です

すると例えば,そもそも「最初のDir(*.xls)の所から一つも目的のブックを拾えていない」とか,「ブックはちゃんと開いているのにTotalに数字が乗って来ない」とか,どこがおかしいのかあなたの目でも必ず判ります(何しろあなたがご自分で書いたマクロなのですから)。

具体的なおかしな箇所を見つけ出せたら半分解決も同然ですが,そこでなお対処が不明の時は,その時こそ具体的な症状を挙げてまた皆さんのアドバイスを求めてみたらどうでしょう。

投稿日時 - 2010-03-30 00:24:46

あなたにオススメの質問