• ベストアンサー

エクセル2007 VBA 線の種類を変数に置き換え

線の種類を変数に置き換える場合、罫線だと上手くいったのですが、 外枠の線の種類を変数で指定する場合の記載方法がわかりません。。。 外枠線の種類を変数に置き換える場合の記述方法を教えて頂けませんでしょうか。 ■罫線(成功) nL = Selection.Borders.LineStyle nW = Selection.Borders.Weight □外枠線(失敗) nL = Selection.BorderAround_LineStyle nW = Selection.BorderAround_Weight 何卒宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

たぶん、 BorderAround_LineStyle こういう書き方はないでしょう。勝手な書き方をしてできないといわれてもね。 BorderAroundは、セル範囲の周りに罫線を書けというメソッドなので、それを変数に入れようとしても入らないでしょう。 BorderAroundはメソッドなので、書くことはできるが、これでプロパティの取得はできません。線種などの取得は、質問の(成功)にあるように、Bordersコレクションを使うでしょう。 Selection.Borders(xlEdgeTop).LineStyle とか。 二重の無理に見えるが。

jjnnkk
質問者

お礼

ご回答ありがとうございます。 知識が浅いため、とんちんかんな質問をしてしまい申し訳ありません。 その中でも、やりたい事を汲み取って頂きましてありがとうございます。 また、Selection.Borders(xlEdgeTop).LineStyle と 具体的な記載ありがとうございます。 xlEdgeTop、xlEdgeBottom、xlEdgeRight、xlEdgeLeftを それぞれ指定します。 ありがとうございました!!

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

エクセルには「外枠線」という値(プロパティ)はありません。 あくまでも上下左右(および右斜めと左斜め)の4本(+2本)の集合(コレクション)があるだけです。 ただし、いわばエクセルのサービス機能として、 nL = selection.borders.linestyle という書き振りで「今選ばれているセルの4辺がみな同じ種類の場合に限り」共通の線種を取得あるいは設定する事ができます。 その意味では、あなたの「成功」が、実際には「外枠」を返していると見ることもできます。 ちなみに4辺の1つでも異なる線種が存在しているとか、セル範囲を選択しているときに選択セルの中のどこか一つでも違う線種が紛れている(選択された範囲のセル1つずつの4辺が完全に同一ではない)と、これはnullを返します。 改めて、あなたが欲しかった「罫線」と「外枠線」のそれぞれの意味をキチンと理解してから、実際にヤリタイ事を実現してください。

jjnnkk
質問者

お礼

ご回答ありがとうございます。 つたない質問内容で失礼いたしました。 そもそも、「外枠」として指定しているわけではなかったこと、 4辺が同じ種類の場合に限り、など、色々な事を教えてくださってありがとうございます! 「外枠」にあたる線を、ひとつづつ指定するようにします。 ありがとうございました。

関連するQ&A