![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルマクロの組み方
-
列方向、行方向の定義
-
Excelの行数、列数を増やしたい...
-
最近急にVBAの処理速度が遅くな...
-
土日の列幅の自動変更を教えて...
-
エクセルの列末のデータだけ表...
-
「段」と「行」の違いがよくわ...
-
エクセルマクロでオートフィル...
-
エクセルマクロ
-
エクセル 1つのシートを日付で...
-
エクセルマクロ、アウトライン...
-
VLOOKUPの列番号の最大は?
-
データシートビューのタイトル...
-
Alt+Shift+↑を一括で行うには、...
-
エクセル マクロ 範囲指定で...
-
エクセルで複数列の検索をマク...
-
EXCELマクロ 本日のデータを別S...
-
VBAで自動処理
-
エクセル マクロ 範囲の値を上...
-
outlookのエクスポート機能につ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで離れた列を選択して...
-
「段」と「行」の違いがよくわ...
-
VLOOKUPの列番号の最大は?
-
LEFT関数とIF関数の組み合わせ...
-
VBA 指定した列にある日時デー...
-
Alt+Shift+↑を一括で行うには、...
-
エクセルで住所を県と市・郡と...
-
エクセルで複数列の検索をマク...
-
Excelの行数、列数を増やしたい...
-
VBAで結合セルを転記する法を教...
-
エクセルマクロPrivate Subを複...
-
エクセルマクロの組み方
-
CSVファイルの「0落ち」にVBA
-
列方向、行方向の定義
-
リストからデータを紐付けしたい
-
エクセルのソートで、数字より...
-
Excel文字列一括変換
-
エクセルで最初の行や列を開け...
-
エクセルでセル12個間隔で合...
-
エクセル マクロ 範囲指定で...
おすすめ情報
説明不足すみません。あるセルに値を手入力して指定、結果もどこかのセルに入力されればOKです。