質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

5回答

7467閲覧

VBAを使ってsinh,coshを使いたい。

tks522

総合スコア7

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2018/06/28 03:09

編集2018/06/28 03:11

前提・実現したいこと

VBAを用いて下記URLに示す四探針法の計算に必要なRCF(抵抗率補正係数)を求めたいです。
で、そのプログラムを書いているとsinhのプロパティが取得できないといわれています。
どうすればいいでしょうか。
また、余裕があればΣで無限大まで飛ばすプログラムの書き方も教えてほしいです。

http://www.keisokuki-world.jp/user_data/files/MCP.pdf
ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

エラーメッセージ ```WorksheetFunctionクラスのCoshのプロパティが取得できません。 ### 該当のソースコード ```ここに言語名を入力 ソースコード P1 = 2 / Cells(2, 10).Value * Arg8 * WorksheetFunction.Sinh(Cells(2, 11).Value * Arg8)``` ### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョン**ボールドテキスト** ここにより詳細な情報を記載してください。 ### 前提・実現したいこと ここに質問の内容を詳しく書いてください。 (例)PHP(CakePHP)で●●なシステムを作っています。 ■■な機能を実装中に以下のエラーメッセージが発生しました。 ### 発生している問題・エラーメッセージ

エラーメッセージ

### 該当のソースコード ```ここに言語名を入力 ソースコード

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hatena19

2018/06/28 03:59

テンプレートに最初から記述してあるサンプル部分で不必要な部分は削除してください。読みづらいです。
ttyp03

2018/06/28 04:07

「プロパティが取得できない」とはどういうことでしょうか。関数がない?エラーなる?具体的に出力されるメッセージなどを書いてください。あと余計なテンプレートを削除してください。
guest

回答5

0

ベストアンサー

普通に使えるはずだが。

WorksheetFunction.Sinh メソッド (Excel)

WorksheetFunction.Cosh メソッド (Excel)

エラーがでる実際のコードとエラーが出る行、正確なエラーメッセージを提示してください。

検証

Excel の VBA なら、 WorkSheetFunction.Sinh、WorkSheetFunction.Cosh が使えるはず。
それ以外のアプリ(Word, PowerPoint, Access等)だとExcelオプジェクトを開いて上記の関数を呼び出せすことになる。

イミディエイトウィドウで検証してみた。

text

1x=700 2?WorkSheetFunction.Sinh(X) 3 5.07116027367502E+303 4?(Exp(X) - Exp(-X)) / 2 5 5.07116027367502E+303 6 7x = 710 8?WorksheetFunction.Sinh(X) 9 '実行時エラー'1004': WorksheetFunctionクラスのSinhプロパティを取得できません。 10 11?(Exp(X) - Exp(-X)) / 2 12 '実行時エラー'6': オーバーフローしました。

関数の結果が倍精度浮動小数点数の範囲を超えている(オーバーフロー)エラーだと思われる。

投稿2018/06/28 04:35

編集2018/06/28 12:18
hatena19

総合スコア33715

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

VBAのヘルプにある「超越関数」を参照して、Sinh・Coshを自作してはどうでしょうか?

それで上手くいけば良いですし、
上手くいかない場合でもどこでエラーになるのか、何が原因かを特定しやすくなるでしょう。

投稿2018/06/28 11:18

imihito

総合スコア2166

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

単なる関数の限界でしょう?
Cosh,Sinh に710以上の値を渡すと、ご提示のエラーが出ました。

また、時間的に余裕は無いので、
自分で色々と考えてみてください。

投稿2018/06/28 05:23

ExcelVBAer

総合スコア1175

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

VBA は三角関数は用意されていますが、双曲線関数(sinh, cosh, tanh)は持っていません。
ですので双曲線関数の定義

sinh(x) = (e^x - e^(-x)) / 2 cosh(x) = (e^x + e^(-x)) / 2

を用いて、演算する必要があります。
※e は指数関数で、VBA では Exp() 関数となります

投稿2018/06/28 04:34

編集2018/06/28 04:36
tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

sinh coshは、(指数関数を使って)自分で定義する。

投稿2018/06/28 04:27

otn

総合スコア84531

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問