次の方法で共有

Excel2010 セルの罫線の種類を調べたい

Anonymous
2013-10-24T05:47:03+00:00

Excel2010で、セルの罫線の種類を調べたいと思い、

\[エクセルVBA\]あるセルにおける罫線の種類を調べるには、どうしたら良いですか?

を参考に、マクロを

Sub KeisenCheck()

With Range("A1").Borders

Debug.Print .LineStyle

Debug.Print .Weight

Debug.Print .ColorIndex

End With

End Sub

と、記述してみたのですが、マクロを実行してみると、うんともすんともいいいません。エラーの表示もなく、ダイアログボックスも表示されません。

上記のページでは、Borders(xlEdgeBottom)になっていますが、Bordersで、すべての罫線が確認できると思うのですが、Bordersにしてみても、Borders(xlEdgeBottom)にしてみても、実行すると何も起こりません。

なぜ、質問者は、できたのか、

この記述では、A1セルだけ、と思うのですが、他のセルでも確認するには、どのように、マクロを記述すればよいのか、

返り値として、設定値が返ってきているのに気付いたと成功した質問者は、言っていますが、成功すれば、どこに戻り値が表示されるのでしょうか?

お教えください。

よろしくお願いします。

Microsoft 365 と Office | Excel | 家庭向け | Windows

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

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

質問作成者が受け入れた回答

Anonymous
2013-10-25T07:13:47+00:00

もしかして、VBAまるでご存じないのでしょうか?

マクロ記録ないしはあちこちからコードを拾ってきてそのまま使っているという状態でしたら、まず、VBAの書籍なりなんなりを一冊購入して勉強してください。

私は議論の材料としてサンプルコードは出しますが、丸ごとコードを示せと言う質問には答えないことにしています。

もし、IF文の書き方が分からないということでしたら、正にその範疇に入っちゃいます。

現時点で、.Borders(xlEdgeBottom)でLineを取得しているわけですから、”下”ということは分かっているわけです。ですから

wWeightName=”下” &  .Weight 

とすれば、wWeightName に ”下1” と言う文字列が入ります。

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

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

質問作成者が受け入れた回答

Anonymous
2013-10-24T10:34:02+00:00

どういう条件にしたいのかで変わってきますが、例えば選択セルに対して実行ということなら

With句を

With Selection.Borders

に書き換えるだけでOKです。

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

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

17 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2013-10-24T08:55:40+00:00

    MsgboxはNull は表示できないということだけです。(うっかりしてました。Nullがでてくるのを確認してなかったです)

    ColorIndexは自動と色なしの二つしかありません。

    ですから色を見るならColorを使ってください。

    例えば罫線色が赤なら255とでてくるはずです。

    参考まで

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

    0 件のコメント コメントはありません
  2. Anonymous
    2013-10-24T08:17:33+00:00

    y sakuda  様

    早々の、ご回答ありがとうございます。

    「その1」

    Sub KeisenCheck()

    With Range("A1").Borders

    MsgBox .LineStyle

    MsgBox .Weight

    MsgBox .ColorIndex

     End With

     End Sub

    これでやると、

    実行時エラー '94':Null の使い方が不正です。

    と表示されます。

    「その2」

    Sub KeisenCheck()

    With Range("A1").Borders

     Debug.Print .LineStyle

     Debug.Print .Weight

     Debug.Print .ColorIndex

     End With

     End Sub

    これでやると、イミディエイトウィンドウに、

    Null

    Null

    -4105

    と表示されます。

    xlColorIndexAutomatic = -4105 です。ColorIndex の定数でセルの色の設定における[自動]にあたります。

    ということで、罫線の色は〚自動〛にしていますので、結果を示しているみたいです。

    それで、試しに、上下左右の罫線の太さを同じにしてみました。LineStyleと、Weightは数字を示しました。

    結果は、返してきています。しかし、ColorIndexは、罫線の色を変えても、-4105としか表示されませんでした。

    非常に、使いづらいです。もっと、調べてみます。

    お陰様で、ちょっと、勉強になりました。

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

    0 件のコメント コメントはありません
  3. Anonymous
    2013-10-24T06:40:44+00:00

    イミディエイトウィンドウを表示してからやって見てください。

    それがめんどうくさければ、

    Debug.Print .LineStyle

    msgbox .Linstyle

    等に変えてください。

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

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