[Excel関数]正四角錐台の体積や表面積を計算するRSQPYRAMIDFカスタムワークシート関数群

2020年12月13日

説明

RSQPYRAMIDFカスタムワークシート関数群は、正四角錐台の体積や表面積などを計算します。正四角錐台とは、正方形と合同な4つの三角形で構成されたピラミッド型(正四角錐)から、先端を水平に切り取った立体です。

RSQPYRAMIDFカスタムワークシート関数群には、下記の関数が含まれます。ワークシート関数だけで(VBAを使用せずに)同じことをしたい場合はコチラの記事を参照して下さい。

関数名機能関数名の由来
RSQPYRAMIDFEDG正四角錐台の下底及び上底の長さと高さから、正四角錐台の斜辺を計算します。Regular SQuare PYRAMID Frustum EDGe
RSQPYRAMIDFSLA正四角錐台の下底及び上底の長さと高さから、正四角錐台の側面の高さを計算します。Regular SQuare PYRAMID Frustum SLAnt
RSQPYRAMIDFLAT正四角錐台の下底及び上底の長さと高さから、正四角錐台の側面積を計算します。Regular SQuare PYRAMID Frustum LATeral surface area
RSQPYRAMIDFSUR正四角錐台の下底及び上底の長さと高さから、正四角錐台の表面積を計算します。Regular SQuare PYRAMID Frustum SURface area
RSQPYRAMIDFVOL正四角錐台の下底及び上底の長さと高さから、正四角錐台の体積を計算します。Regular SQuare PYRAMID Frustum VOLume

動作例

計算式

項目計算式
$$ 斜辺(e) $$$$ e=\sqrt{\frac{1}{4}cot^2(\frac{π}{4})\cdot(a-b)^2+h^2} $$
$$ 側面の高さ(s) $$$$ s=\frac{\sqrt{4e^2+(a-b)^2}}{2} $$
$$ 側面積(F) $$$$ F=2(a+b)\sqrt{\left(\frac{a-b}{2}\right)^2+h^2} $$
$$ 表面積(S) $$$$ S=F+a^2+b^2 $$
$$ 体積(V) $$$$ V={\large\frac{1}{3}}(a^2+ab+b^2)h $$

構文

関数名第1引数第2引数第3引数戻り値
RSQPYRAMIDFEDG下底の長さ上底の長さ高さ斜辺
RSQPYRAMIDFLAT下底の長さ上底の長さ高さ側面の高さ
RSQPYRAMIDFSUR下底の長さ上底の長さ高さ表面積
RSQPYRAMIDFSLA下底の長さ上底の長さ高さ側面積
RSQPYRAMIDFVOL下底の長さ上底の長さ高さ体積
引数説明引数の指定既定値
下底の長さ正四角錐台の下底の長さを数値で指定します。必須(無し)
上底の長さ正四角錐台の上底の長さを数値で指定します。必須(無し)
高さ正四角錐台の高さを数値で指定します。必須(無し)

コード

下記のコードを全てコピーし、標準モジュール等に貼り付けて下さい。下記のコード表示欄の右上に「Copy」ボタンがありますのでご使用下さい。なお、標準モジュールが何だか分からない方は、 Excelのカスタムワークシート関数を使用する方法 を参照して下さい。
' [Excel関数]正四角錐台の体積や表面積を計算するRSQPYRAMIDFカスタムワークシート関数群 
' Copyright (c) 2020-2024  黒箱 
' This software is released under the MIT License;. 
' このソフトウェアはMITライセンスの下でリリースされています。 


'* @fn Public Function RSQPYRAMIDFEDG(ByVal a As Variant, ByVal b As Variant, ByVal h As Variant) As Variant
'* @brief 正四角錐台の下辺及び上底の長さと高さから正四角錐台の斜辺の長さを求めます。
'* @param[in] a 正四角錐台の下辺の長さの長さを指定します。
'* @param[in] b 正四角錐台の上底の長さの長さを指定します。
'* @param[in] h 正四角錐台の高さを指定します。
'* @return Variant 正四角錐台の斜辺の長さを返します。
'* @note 関数名の由来:Regular SQuare PYRAMID Frustum EDGe
Public Function RSQPYRAMIDFEDG(ByVal a As Variant, ByVal b As Variant, ByVal h As Variant) As Variant
'Const c As Double = (1 / 4) * (1 / (Tan((4 * Atn(1)) / 4))) ^ 2 ' ((1 / (Tan((4 * Atn(1)) / 4))) ^ 2) == 1
Const c As Double = 1 / 4
    RSQPYRAMIDFEDG = (c * (a - b) ^ 2 + h ^ 2) ^ 0.5
End Function



'* @fn Public Public Function RSQPYRAMIDFLAT(ByVal a As Variant, ByVal b As Variant, ByVal h As Variant) As Variant
'* @brief 正四角錐台の下辺及び上底の長さと高さから正四角錐台の表面積を求めます。
'* @param[in] a 正四角錐台の下辺の長さの長さを指定します。
'* @param[in] b 正四角錐台の上底の長さの長さを指定します。
'* @param[in] h 正四角錐台の高さを指定します。
'* @return Variant 正四角錐台の表面積を返します。
'* @note 関数名の由来:Regular SQuare PYRAMID Frustum LATeral surface area
Public Function RSQPYRAMIDFLAT(ByVal a As Variant, ByVal b As Variant, ByVal h As Variant) As Variant
    RSQPYRAMIDFLAT = 2 * (a + b) * (((a - b) / 2) ^ 2 + h ^ 2) ^ 0.5
End Function



'* @fn Public Function RSQPYRAMIDFSUR(ByVal a As Variant, ByVal b As Variant, ByVal h As Variant) As Variant
'* @brief 正四角錐台の下辺及び上底の長さと高さから正四角錐台の表面積を求めます。
'* @param[in] a 正四角錐台の下辺の長さの長さを指定します。
'* @param[in] b 正四角錐台の上底の長さの長さを指定します。
'* @param[in] h 正四角錐台の高さを指定します。
'* @return Variant 正四角錐台の表面積を返します。
'* @note 関数名の由来:Regular SQuare PYRAMID Frustum SURface Area
Public Function RSQPYRAMIDFSUR(ByVal a As Variant, ByVal b As Variant, ByVal h As Variant) As Variant
    RSQPYRAMIDFSUR = RSQPYRAMIDFLAT(a, b, h) + a ^ 2 + b ^ 2
End Function


'* @fn Public Function RSQPYRAMIDFSLA(ByVal a As Variant, ByVal b As Variant, ByVal h As Variant) As Variant
'* @brief 正四角錐台の下辺及び上底の長さと斜辺から正四角錐台の側面の高さを求めます。
'* @param[in] a 正四角錐台の下辺の長さの長さを指定します。
'* @param[in] b 正四角錐台の上底の長さの長さを指定します。
'* @param[in] h 正四角錐台の高さを指定します。
'* @return Variant 正四角錐台の側面の高さを返します。
'* @note 関数名の由来:Regular SQuare PYRAMID Frustum SLAnt
Public Function RSQPYRAMIDFSLA(ByVal a As Variant, ByVal b As Variant, ByVal h As Variant) As Variant
    RSQPYRAMIDFSLA = ((4 * RSQPYRAMIDFEDG(a, b, h) ^ 2 + (a - b) ^ 2)) ^ 0.5 / 2
End Function


'* @fn Public Function RSQPYRAMIDFVOL(ByVal a As Variant, ByVal b As Variant, ByVal h As Variant) As Variant
'* @brief 正四角錐台の下辺及び上底の長さと高さから正四角錐台の体積を求めます。
'* @param[in] a 正四角錐台の下辺の長さの長さを指定します。
'* @param[in] b 正四角錐台の上底の長さの長さを指定します。
'* @param[in] h 正四角錐台の高さを指定します。
'* @return Variant 正四角錐台の体積を返します。
'* @note 関数名の由来:Regular SQuare PYRAMID Frustum VOLume
Public Function RSQPYRAMIDFVOL(ByVal a As Variant, ByVal b As Variant, ByVal h As Variant) As Variant
Const c As Double = 1 / 3
    RSQPYRAMIDFVOL = c * (a ^ 2 + a * b + b ^ 2) * h
End Function

プログラムの利用について

本プログラムのライセンスは「The MIT License」を適用しています。

本プログラムは無償で利用できますが、本プログラム内の著作権表示及びライセンス表示は削除せずに表示しておいて下さい。

必須ではございませんが、本ホームページのプログラムを書籍またはホームページ等で一般公開したい方は、お問い合わせフォームよりご連絡頂けると幸いです。

スポンサーリンク