• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA アクティブセルに対しての作業に関して)

VBAアクティブセルに対しての作業に関する質問

このQ&Aのポイント
  • VBAのアクティブセルに対する作業について質問があります。具体的には、アクティブセルを指定した段階で、セルの値をコピーして、オフセットした位置にペーストしたい場合と、オフセットした位置までフィルダウンさせたい場合のVBAのやり方やプログラムの表記について教えてください。
  • 具体的な操作例として、アクティブセルを指定した段階で、セルの値をコピーして、オフセットした位置にペーストする場合、最初にアクティブセルからコピーし、オフセットした位置までペーストする方法を教えてください。
  • また、アクティブセルを指定した段階で、セルの値をコピーして、オフセットした位置までフィルダウンさせる場合、具体的な操作例やVBAのプログラムの組み合わせ方についても教えてください。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 (1)のVBAの一例としては以下の様なVBAとなります。 Sub QNo9157101_VBA_アクティブセルに対しての作業に関して1() Const OffsetValueCell = "O1991" Dim buf As Variant, myOffset As Long buf = Range(OffsetValueCell).Value If buf <> "" And IsNumeric(buf) Then _ myOffset = Int(buf) With Application .ScreenUpdating = False .Calculation = xlManual End With If buf = myOffset And myOffset + ActiveCell.Row >= 1 _ And myOffset + ActiveCell.Row <= Rows.Count Then ActiveCell.Offset(myOffset).Value = ActiveCell.Value Else MsgBox OffsetValueCell _ & "セルに入力された値が、現在選択されている" _ & "セルの行番号に対して有効な範囲にありません" End If With Application .Calculation = xlAutomatic .ScreenUpdating = True End With End Sub  (2)のVBAの一例としては以下の様なVBAとなります。 Sub QNo9157101_VBA_アクティブセルに対しての作業に関して2() Const OffsetValueCell = "O1991" Dim buf As Variant, myOffset As Long buf = Range(OffsetValueCell).Value If buf <> "" And IsNumeric(buf) Then _ myOffset = Int(buf) With Application .ScreenUpdating = False .Calculation = xlManual End With If buf = myOffset And myOffset + ActiveCell.Row >= 1 _ And myOffset + ActiveCell.Row <= Rows.Count Then Range(ActiveCell, ActiveCell.Offset(myOffset)).Value = ActiveCell.Value Else MsgBox OffsetValueCell _ & "セルに入力された値が、現在選択されている" _ & "セルの行番号に対して有効な範囲にありません" End If With Application .Calculation = xlAutomatic .ScreenUpdating = True End With End Sub

関連するQ&A

専門家に質問してみよう