次の方法で共有

1004 - BorderクラスのLineStyleプロパティを設定できません。の対応方法は?

Anonymous
2013-09-12T04:36:47+00:00

お世話になります。

今、旧形式(.xls)のエクセル(マクロ埋め込み)を、Excel2013で実行していたところ、時々、以下のエラーが発生するようになりました。

(一度、ファイルを手動で保存したファイルについて、1回目は正常に実行できるのですが、以降、マクロを実行していると以下のエラーが発生します。

一度発生すると、もうエラーしか出なくなります。)

1004 - BorderクラスのLineStyleプロパティを設定できません。

(1004 - BorderクラスのWeightプロパティを設定できません。)

プログラム的には以下の通りです。

range("A3:AD3").select

selection.Borders(xlInsideTop).LineStyle = xlContinuous

selection.Borders(xlInsideTop).Weight = xlHairline

selection.Borders(xlInsideVertical).LineStyle = xlContinuous

selection.Borders(xlInsideVertical).Weight = xlHairline

selection.Borders(xlEdgeBottom).LineStyle = xlContinuous

selection.Borders(xlEdgeBottom).Weight = xlHairline

selection.Borders(xlEdgeRight).LineStyle = xlContinuous

selection.Borders(xlEdgeRight).Weight = xlThin

selection.Borders(xlEdgeLeft).LineStyle = xlContinuous

selection.Borders(xlEdgeLeft).Weight = xlThin

ネット上の情報や、セル単位で実行してみたりしても効果がありません。

(シートの保護はかかっていません。)

どなたかこの現象の対処方法について、何か情報をお持ちでないでしょうか?

開発者テクノロジ | Visual Basic for Applications

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

4 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2013-09-17T00:24:37+00:00

    ご返答ありがとうございました。

    ファイルのデータ載せ替えなどで、対応してみようと思います。

    お手数をおかけしました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2013-09-12T07:33:32+00:00

    昔から使っていたもので、それが突然動かなくなったということなら、まず間違えなくブックが壊れている方向を疑うべきだと思います。

    提示のコード部分は特段の問題はないはずです。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2013-09-12T06:15:17+00:00

    すいませんでした。

    ほんとそうですね。

    ただ、追検証は難しいです。

    機能としては範囲が広く、かつ社外秘にあたってしまうコードなので、公開できません。 

    結局のところ、過去体験した方からの情報をお待ちするという形でしょうか。

    (長年エラーの出ていなかった、頻繁に使用している機能だけに、何が原因か特定も難しそうです。)

    過去、こんな経験でこんな感じで対応できた、といった体験談をいただけると助かるのですが、

    難しいでしょうか。

    こちらがエラーが発生する部分のソースです。

    下記のソースの★の位置で発生しますが、この部分だけではおそらく症状は確認できないと思われます。

            Dim COL_CD As String

            Dim COL_KANRYO As String

            Dim ROW_START As String

            COL_CD = "A"

            COL_KANRYO = "AD"

            ROW_START = "3"

            Dim objRange As Range

            ThisWorkbook.Worksheets(1).Select

            Set objRange = Range(COL_CD & ROW_START & ":" & COL_KANRYO & ROW_START)

            objRange.Borders(xlEdgeTop).LineStyle = xlContinuous ★

            objRange.Borders(xlEdgeBottom).LineStyle = xlDot

            objRange.Borders(xlEdgeLeft).LineStyle = xlContinuous

            objRange.Borders(xlEdgeRight).LineStyle = xlContinuous

            objRange.Borders(xlInsideVertical).LineStyle = xlDot

            objRange.Borders(xlEdgeTop).Weight = xlThin

            objRange.Borders(xlEdgeBottom).Weight = xlHairline

            objRange.Borders(xlEdgeLeft).Weight = xlThin

            objRange.Borders(xlEdgeRight).Weight = xlThin

            objRange.Borders(xlInsideVertical).Weight = xlHairline

            ThisWorkbook.Worksheets(1).Cells(1, 1).Select

    お手数をおかけしました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2013-09-12T05:40:43+00:00

    >xlInsideTop

    こんなBorderIndexは存在しませんから、当然提示のコードは当然1004になります。

    追検証可能で、かつ症状の発生するサンプルコードを出してください。

    こういうケースは決めつけるわけにはいきませんが、実際にエラーが発生している場所ではなく、全然別のところに原因がある場合が多々あります。もしそうだとすると、全然見当違いのところを探していることになります。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません