
No.2ベストアンサー
- 回答日時:
標準モジュールに登録してください。
C1に例えば20を指定してください。結果はD1に表示されます。
Option Explicit
Public Sub 線形補間()
Dim maxrow As Long
Dim wrow As Long
Dim maxVal As Variant
Dim minVal As Variant
Dim givVal As Variant
Dim p0 As Long '補間開始行
Dim p1 As Long '補間終了行
Dim X As Variant '補間開始からの増分比
Dim ws As Worksheet
Set ws = ActiveSheet
maxrow = ws.Cells(Rows.Count, "A").End(xlUp).Row
minVal = ws.Cells(1, "A").Value
maxVal = ws.Cells(maxrow, "A").Value
givVal = ws.Cells(1, "C").Value
If givVal < minVal Or givVal > maxVal Then
MsgBox ("指定値が範囲外")
Exit Sub
End If
For wrow = 1 To maxrow
If ws.Cells(wrow, "A").Value <= givVal Then
p0 = wrow
End If
If ws.Cells(wrow, "A").Value >= givVal Then
p1 = wrow
Exit For
End If
Next
'補間不要の場合
If ws.Cells(p1, "A").Value = givVal Then
ws.Cells(1, "D").Value = ws.Cells(p1, "B").Value
Exit Sub
End If
X = (givVal - ws.Cells(p0, "A").Value) / (ws.Cells(p1, "A").Value - ws.Cells(p0, "A").Value)
ws.Cells(1, "D").Value = ws.Cells(p0, "B").Value + (ws.Cells(p1, "B").Value - ws.Cells(p0, "B").Value) * X
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) エクセル関数のスペシャリストの方、教えてください。 写真のように A列にはデータ C列にはデータの中 7 2022/04/09 00:15
- Excel(エクセル) エクセルでエラーを無視して一番左側のセルの値を返したい 2 2023/07/27 13:06
- Visual Basic(VBA) VBAで大量データの処理 3 2022/11/15 21:53
- Microsoft ASP プログラミング関係で質問です。 3 2022/10/11 16:06
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- Excel(エクセル) 【Excel】指定した文字列に該当する行を重複しないようにリスト 3 2022/03/30 12:27
- Excel(エクセル) 数列の数値補間 2 2022/10/27 16:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「段」と「行」の違いがよくわ...
-
列方向、行方向の定義
-
EXCELを最大にて開いた際、特定...
-
VBAで結合セルを転記する法を教...
-
【Excel VBA】列幅の設定
-
VBA 列の削除を何回か繰り返す...
-
エクセル マクロ 指定範囲内...
-
VBA 配列について
-
エクセルマクロでオートフィル...
-
列を1つずつ非表示にしたい
-
エクセルマクロ
-
マクロセルの値によってセルの...
-
エクセルVBAで値のカウントをし...
-
エクセルで最初の行や列を開け...
-
該当データのみを抽出したい。
-
゙逆゙ のやつってどうすれば ゙順...
-
エクセルのソートで、数字より...
-
LEFT関数とIF関数の組み合わせ...
-
Excelの計算式で質問です。
-
エクセル 任意の列数で分割する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「段」と「行」の違いがよくわ...
-
エクセルで離れた列を選択して...
-
VLOOKUPの列番号の最大は?
-
LEFT関数とIF関数の組み合わせ...
-
VBA 指定した列にある日時デー...
-
Excelの行数、列数を増やしたい...
-
CSVファイルの「0落ち」にVBA
-
列方向、行方向の定義
-
エクセルのソートで、数字より...
-
Excel文字列一括変換
-
VBAで別ブックの列を検索し、該...
-
エクセル マクロ 範囲の値を上...
-
VBAで重複データを合算したい(...
-
エクセル マクロ 範囲指定で...
-
VBAで結合セルを転記する法を教...
-
エクセルで最初の行や列を開け...
-
エクセルマクロPrivate Subを複...
-
土日の列幅の自動変更を教えて...
-
最近急にVBAの処理速度が遅くな...
-
エクセルでセル12個間隔で合...
おすすめ情報
説明不足すみません。あるセルに値を手入力して指定、結果もどこかのセルに入力されればOKです。