none
テーブルとして書式設定されたセルに、特定の条件下でRange.Formulaで数式を書き出す挙動がおかしい RRS feed

  • 質問

  • 以下のマクロを動かす時に、特定の条件下で挙動がおかしいです。マクロ実行後、選択された同一列の全てのセルが、1 行目と同じ数式が入力されてしまいます。複数列を選択している場合は、それぞれの列の 1 行目と同じ数式が入力されてしまいます。

    解決方法を教えて下さい。テーブル領域を 1 行拡張して、最下行まで選択させない、ぐらいしかないでしょうか?

    環境 Excel 2007, 2013 (2010は持っていないため確認できていません)

    再現手順

    1. 適当なセル範囲をテーブルとして書式設定

    2. 1 行目に数式が入っていること、かつ、テーブルの最下行まで選択されていること。

    Option Explicit

    Sub test()
        Dim buf As Variant
        Dim i&, j&

        buf = Selection.Formula
        For j = LBound(buf, 2) To UBound(buf, 2)
            For i = LBound(buf, 1) To UBound(buf, 1)
                buf(i, j) = buf(i, j)
            Next i
        Next j
        Selection.Formula = buf
    End Sub

    2014年7月30日 3:12