Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


46704 / 76732 ←次へ | 前へ→

【34996】Re:罫線の有無による計算式
発言  Ned  - 06/2/17(金) 20:06 -

引用なし
パスワード
   こんにちは。とりあえず、

Sub sample()
  MsgBox test_SEN(ActiveCell, Range("e1").Value _
    , Range("e2").Value, Range("e3").Value, Range("e4").Value)
End Sub

Function test_SEN(自身のCELL As Range, E1 As Double, _
        E2 As Double, E3 As Double, E4 As Double)
'罫線情報取得テスト
  Dim KEISEN_TOP As Long
  Dim KEISEN_LEFT As Long
  Dim KEISEN_BOTTOM As Long
  Dim KEISEN_RIGHT As Long
  Dim shoukei As Double
  shoukei = 0
  KEISEN_TOP = 自身のCELL.Borders(xlEdgeTop).LineStyle
  KEISEN_LEFT = 自身のCELL.Borders(xlEdgeLeft).LineStyle
  KEISEN_RIGHT = 自身のCELL.Borders(xlEdgeRight).LineStyle
  KEISEN_BOTTOM = 自身のCELL.Borders(xlEdgeBottom).LineStyle
  If KEISEN_TOP <> xlNone Then shoukei = shoukei + E1
  If KEISEN_LEFT <> xlNone Then shoukei = shoukei + E2
  If KEISEN_RIGHT <> xlNone Then shoukei = shoukei + E4
  If KEISEN_BOTTOM <> xlNone Then shoukei = shoukei + E3
  test_SEN = shoukei
End Function

などとすれば動くでしょうけど、もう少しすっきりするような気はします。

With 自身のCELL
  If .Borders(xlEdgeTop).LineStyle <> xlNone Then shoukei = shoukei + E1
  If .Borders(xlEdgeLeft).LineStyle <> xlNone Then shoukei = shoukei + E2
  If .Borders(xlEdgeRight).LineStyle <> xlNone Then shoukei = shoukei + E4
  If .Borders(xlEdgeBottom).LineStyle <> xlNone Then shoukei = shoukei + E3
End With

あと、E1:E4までの引数設定についても、配列を使ったほうがいいのでしょうけど?
(今ひとつ詳しくないのでパスします)

4 hits

【34975】罫線の有無による計算式 下働き 06/2/17(金) 13:49 質問
【34996】Re:罫線の有無による計算式 Ned 06/2/17(金) 20:06 発言
【35052】Re:罫線の有無による計算式 下働き 06/2/20(月) 13:14 お礼

46704 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free