ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者:seroteepu 全部の列でSelection.NumberFormatLocal = "0.00"になってしまう
困り度:
  • 困っています
以前こちらでお世話になった者です。
教えていただいたコードを応用したのですが、うまくいきません。
以下のようにすると、最後にすべての列の数値が0.00の形になってしまいます。
どこが悪いのか教えてください。よろしくお願いします。

Sub data_torikomi9_1()

Dim wb As Workbook
Dim Fn As String
Dim myPath As String
Dim dbBkSh As Worksheet
Dim i As Long

For Each wb In Workbooks

If wb.Name <> ThisWorkbook.Name And _
InStr(1, wb.FullName, "form\", 1) > 0 Then 'formを検索
wb.Close '閉じる
End If
Next wb

myPath = ThisWorkbook.Path & "\"
Set dbBkSh = ThisWorkbook.Worksheets("様式9-1")

With dbBkSh.UsedRange
If .Cells(.Cells.Count).Row > 10 Then
.Range("A11", .Cells(.Cells.Count)).Clear
End If
End With

Fn = Dir(myPath & "form\*.xls")
i = 1
'画面のちらつきを抑える
Application.ScreenUpdating = False
Do Until Fn = ""
If Fn <> ThisWorkbook.Name Then
With Workbooks.Open(myPath & "form\" & Fn, , True)
'会社名と企業コード
dbBkSh.Range("E2").Value = .Worksheets("inputform").Range("C2").Value
dbBkSh.Range("B2").Value = .Worksheets("inputform").Range("M2").Value
'A11 - 1
dbBkSh.Range("A10").Offset(i, 0).Value = i
'B11 - 氏名
dbBkSh.Range("A10").Offset(i, 1).Value = .Worksheets("inputform").Range("C7").Value
'C11 - 番号
dbBkSh.Range("A10").Offset(i, 2).Value = .Worksheets("inputform").Range("H29").Value
'D11 - ポイント
dbBkSh.Range("A10").Offset(i, 3).Value = .Worksheets("inputform").Range("H32").Value

.Close False
i = i + 1
End With

End If
Fn = Dir()
Loop

Columns("B:C").Select
Selection.HorizontalAlignment = xlLeft
Columns("C:C").Select
Selection.NumberFormatLocal = "00000"
Columns("A:A").Select
Selection.HorizontalAlignment = xlCenter
Columns("D:D").Select
Selection.NumberFormatLocal = "0.00"
Range("A6").Select
Application.ScreenUpdating = True
Set dbBkSh = Nothing

End Sub
質問投稿日時:09/08/06 19:47
質問番号:5187278
この質問に対する回答は締め切られました。

回答

良回答20pt

回答者:cistronezk http://questionbox.jp.msn.com/qa5182108.html
これと同じということはありませんか?一応ご確認ください。
種類:アドバイス
どんな人:専門家
自信:参考意見
回答日時:09/08/06 21:03
回答番号:No.1
参考URL: http://questionbox.jp.msn.com/qa5182108.html
この回答への補足原因がわかりました。
それらの列の上に、セルを結合した場所があるのがいけないようで、その行を取ったら上手く動作しました。
どうもありがとうございました。
この回答へのお礼ありがとうございます。チェックは入っていませんでした。

Columns("D:D").Select
Selection.NumberFormatLocal = "0.00"
Columns("C:C").Select
Selection.NumberFormatLocal = "00000"

このように順番を変えると、全ての列が「00000」表示になってしまうんです。
あとから書かれた設定に全てがなる、という感じです。