• ベストアンサー

VBAについて。

VBAについて。 セルに羅線を引きたいと思っています。 Range("A1:C5").Borders.LineStyle = True 上記でA1からC5までの格子羅線が作成されます。 例えば、C5を不変にしたいと思っています。 X=1であればC5 X=2であればD5 X=3であればE5 ・ ・ ・ ・ X=24であればZ5 X=25であればAA5 このような処理をするにはどうしたらよいでしょうか?

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

  • ベストアンサー
  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

> 例えば、C5を不変にしたいと思っています。 可変でしょうか Range(Cells(1, 1), Cells(5, x + 2)).Borders.LineStyle = True のようにしてください。

その他の回答 (3)

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.4

Range("A1").Resize(5, x + 2).Borders.LineStyle = True

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

Range("A1:" & y).Borders.LineStyle = True のyのところを文字列でE5などとなるように、Xから導出するロジックを考えることです。 range(Cells(1,1),Cells(k,l)) 式の表現のほうが、表し易ければ、そちらでも良い。 Sub test01() For i = 1 To 40 MsgBox i & "=" & Cells(5, i + 2).Address Next i End Sub で番地文字列は求められると思う。

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

まっとうな回答が#1に出ましたので、別解です。 Sub test() Dim x As Long x = 3 Range("A1:" & columnChar(x + 2) & "5").Borders.LineStyle = True End Sub Private Function columnChar(columnNo As Long) As String Dim strAddress As String strAddress = Columns(columnNo).Cells(1).Address columnChar = Mid(strAddress, 2, InStr(2, strAddress, "$") - 2) End Function '列番号→英字に変換する別方法 'http://support.microsoft.com/kb/833402/ja

関連するQ&A