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

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

ただいまの
回答率

90.33%

  • VBA

    1906questions

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

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

解決済

回答 5

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 423

tks522

score 1

 前提・実現したいこと

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/ツールのバージョンなど)

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • hatena19

    2018/06/28 12:59

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

    キャンセル

  • ttyp03

    2018/06/28 13:07

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

    キャンセル

回答 5

checkベストアンサー

+1

普通に使えるはずだが。

WorksheetFunction\.Sinh メソッド \(Excel\)

WorksheetFunction\.Cosh メソッド \(Excel\)

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

検証

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

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

x=700
?WorkSheetFunction.Sinh(X)
 5.07116027367502E+303 
?(Exp(X) - Exp(-X)) / 2
 5.07116027367502E+303 

x = 710
?WorksheetFunction.Sinh(X)
 '実行時エラー'1004': WorksheetFunctionクラスのSinhプロパティを取得できません。

?(Exp(X) - Exp(-X)) / 2
 '実行時エラー'6': オーバーフローしました。


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

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

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

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


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

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

同じタグがついた質問を見る

  • VBA

    1906questions

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